ffmpeg:使用-vcodec mjpeg但不使用-vcodec副本捕获时帧率低

时间:2016-09-23 09:19:35

标签: ffmpeg mjpeg

我正在尝试从网络摄像头捕获视频,我发现当我使用-vcodec copy选项时,它的效果非常好(远比我尝试过的任何其他软件好得多)。但是,我希望我的文件稍微小一点,而且我尝试压缩视频的每一次尝试都会导致视频非常突然。例如,如果我将输出vcodec切换到mjpeg,它会从报告15 fps变为3到4 fps之间的报告。难道我做错了什么??以下是与-vcodec copy

的通话
ffmpeg -y -f dshow -vcodec mjpeg -s 1184x656 -framerate 25 -i video="HD 720P Webcam" -vcodec copy test.avi

- 这让我获得15 fps。但如果我改为mjpeg,我只得到3-4 fps:

ffmpeg -y -f dshow -vcodec mjpeg -s 1184x656 -framerate 25 -i video="HD 720P Webcam" -vcodec mjpeg test.avi

-framerate 25-r 25置于test.avi之前的实验尝试也无助于此情况。在尝试使用mpeg4libx264时,我没有获得更流畅的视频。只有copy选项给了我流畅的视频(顺便说一下,我正在拍我的手弹钢琴,因此视频中有很多快动作。)

帮助!!!!谢谢......

2 个答案:

答案 0 :(得分:1)

我不明白为什么帧速率会下降太多,但您可以尝试使用2通道方法,首先使用-vcodec副本录制它(当您粘贴在问题中时)

ffmpeg -y -f dshow -vcodec mjpeg -s 1184x656 -framerate 25 -i video="HD 720P Webcam" -vcodec copy test.avi

然后在完成后将其转码为mjpeg(如下所示):

ffmpeg -i test.avi -vcodec mjpeg test.mjpeg

注意:我实际上没有测试过任何上述命令行。

答案 1 :(得分:0)

听起来您的网络摄像头正在输出可变的帧速率流。在您的copy个捕获文件中尝试以下操作。

ffmpeg -i test.avi -vcodec libx264 -r 30 test.mp4

(你应该避免捕获到AVI,改为使用MKV)