【问题标题】:Increase fps in record video ffmpeg在录制视频ffmpeg中增加fps
【发布时间】:2016-11-07 10:56:16
【问题描述】:

我需要从 2 个摄像头以 30 fps 全高清录制 2 个视频。 我使用 ffmpeg 和 wrapper - Aforge for c#。

初始化设备:

        _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);
        }

和初始化文件编写器

            _videoFileWriter = new VideoFileWriter();
            _videoFileWriter.Open(_fileName, _videoCaptureDevice.VideoResolution.FrameSize.Width,
                _videoCaptureDevice.VideoResolution.FrameSize.Height, 30, VideoCodec.MPEG4, 10 * 1000 * 1000);

现在 _videoCaptureDevice.VideoResolution.FrameSize 等于 1280x720 和 640x480(用于第二个设备)。但是我已经有录音的问题了。 480p 的最大 fps 为 24,720p 的最大 fps 为 13-14(当我尝试同时从 2 个摄像头录制视频时)

如何增加呢? 还是不可能?也许更强大的计算机会解决这个问题(我有 Pentium(R) Dual-Core CPU 2.50Ghz 和通常的视频卡(Geforse 8500 GT),用于使用两个显示器,通常是 hdd,usb 2.0)?

我会很高兴任何帮助(可能是另一个库,但不是语言 (c#))

PS 我已经使用 Emgu.CV 并面临类似的问题..

【问题讨论】:

    标签: c# video ffmpeg aforge


    【解决方案1】:

    帧率受硬件限制。

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

    请注意,AForge 始终使用可能导致过采样的所有分辨率的最高值(例如:AForge 以 60Hz 生成帧,但相机在给定分辨率下仅支持 15Hz,因此图像大多是重复的。请参阅here

    还可以使用process explorerprofiler来查看你的CPU到底有多忙以及它在做什么。

    【讨论】:

      猜你喜欢
      • 2019-05-28
      • 1970-01-01
      • 2023-03-19
      • 2015-12-19
      • 2018-05-17
      • 1970-01-01
      • 2015-12-04
      • 2015-06-14
      • 2013-09-28
      相关资源
      最近更新 更多