2016-11-07 150 views
0

我需要以全高清30 fps的速度从2个摄像机录制2个视频。 我使用ffmpeg和包装 - Aforge for c#。在录制视频中增加fps ffmpeg

初始化设备:

 _videoCaptureDevice = new VideoCaptureDevice(deviceName); 
     _videoCaptureDevice.VideoResolution = _videoCaptureDevice.VideoCapabilities[0]; 
     _videoCaptureDevice.DesiredFrameRate = _fps; 
     _videoSourcePlayer.VideoSource = _videoCaptureDevice; 
     _videoCaptureDevice.NewFrame += _videoCaptureDevice_NewFrame; 
     _videoSourcePlayer.Start(); 

节省帧

 if (_videoRecordStatus == VideoRecordStatus.Recording) 
     { 
      _videoFileWriter.WriteVideoFrame(eventArgs.Frame); 
     } 

和init文件写入器

​​

现在_videoCaptureDevice.VideoResolution.FrameSize等于1280×720 640×480和(为第二装置)。但是我在录制时遇到了问题。对于480p和480p最大fps是24和13-14对于720p(当我试图同时记录来自2个摄像机的视频时)

如何增加它? 或者这是不可能的?也许更强大的电脑将解决这个问题(我有Pentium(R)双核CPU 2.50Ghz和通常的视频卡(Geforse 8500 GT)与两个显示器,通常HDD,USB 2.0)工作?

我会很高兴的任何帮助(也许另一个库,而不是语言(C#))

PS 我已经使用Emgu.CV和面临的问题simular ..

回答

0

帧率被限制硬件。

使用AMCapGraphEdit检查你的相机真的支持。这取决于选择的分辨率和输出格式(更高的分辨率 - >更低的帧格式)。

请注意,AForge总是使用所有可能导致过采样的分辨率的最高值(例如:AForge以60Hz产生曝光,但摄像机在给定分辨率下仅支持15Hz,因此图像将大部分是重复的。见here

还可以使用的Process Explorer探查看多忙你的CPU确实是和它在做什么。