关于AForge录像,保存后文件长度和录制时长不一致的问题

时间:2022-05-08 19:46:16
最近在用AForge做一个监控的案例,发现例如设置3分钟录制时间,大多情况是2分59秒这样,但是偶尔也会出现录制时长为2分10秒或者2分30秒的情况。咨询下大佬们时长不一致可能是因为什么原因?frame_rate目前设置为30.





            //[640,480][800,448][864,480][1024,576][960,720][800,600][1600,896][1712,960][1280,960] [1920,1080] 
            int width = videoSource.VideoCapabilities[0].FrameSize.Width;   
            int height = videoSource.VideoCapabilities[0].FrameSize.Height;  
            int fps = 30;

            string path = "D:\\视频监控";
            fileName = System.DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".mp4";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            path = path + "\\" + fileName;
            writer = new VideoFileWriter();
            writer.Open(path, width, height, fps, VideoCodec.MPEG4);

            this.is_record_video = true;
            aTimer.Enabled = true;
            aTimer.Interval = MonitorMaxSecond * 500;
        //    lblmontior.Text = "视频监控中";
            IsTimeOut = true;
            videoSource.Start();

4 个解决方案

#1


应该是底层音视频文件的时间戳计算有问题,不是很准确,再就是在结束的时候MUXER到文件的时候,buffer处理有问题,duration处理的不对

#2


底层处理有问题,不建议用AForge和FFMPEG做录像,都会有这种时间问题。

#3


引用 2 楼 qq_29862715 的回复:
底层处理有问题,不建议用AForge和FFMPEG做录像,都会有这种时间问题。


麻烦问下有其他比较好的推荐么?

#4


引用 1 楼 OExpress 的回复:
应该是底层音视频文件的时间戳计算有问题,不是很准确,再就是在结束的时候MUXER到文件的时候,buffer处理有问题,duration处理的不对


这就比较尴尬了,多谢提醒,我看下这两点相关的逻辑吧,不然只能换一种解决方案了。

#1


应该是底层音视频文件的时间戳计算有问题,不是很准确,再就是在结束的时候MUXER到文件的时候,buffer处理有问题,duration处理的不对

#2


底层处理有问题,不建议用AForge和FFMPEG做录像,都会有这种时间问题。

#3


引用 2 楼 qq_29862715 的回复:
底层处理有问题,不建议用AForge和FFMPEG做录像,都会有这种时间问题。


麻烦问下有其他比较好的推荐么?

#4


引用 1 楼 OExpress 的回复:
应该是底层音视频文件的时间戳计算有问题,不是很准确,再就是在结束的时候MUXER到文件的时候,buffer处理有问题,duration处理的不对


这就比较尴尬了,多谢提醒,我看下这两点相关的逻辑吧,不然只能换一种解决方案了。