我有一个 29.97003 FPS 的延时视频。没有音频。视频太快了。我想将其从 10 秒延长到 20 秒,同时保持每帧的帧率为 15 FPS。
我如何使用 FFMPEG 来实现这一点?
它很短,文件大小很小。可以重新编码,我不在乎。我在想,如果没有快速解决方案,我可以将帧提取到 JPG 文件中,并使用不同的 FPS 编码新视频。我试图避免这种情况。
编辑:我尝试过这个:https://stackoverflow.com/a/45465730/1442225
ffmpeg -y -i input.mp4 -vf \"setpts=2*PTS\" -r 15 -codec:v h264 output.mp4
看起来它做了正确的事情。output.mp4 的长度增加了一倍,但帧数相同。只有文件大小缩小到原来的 25% 以下。我使用了相同的 vcodec。我确实希望文件大小保持几乎相同。
答案1
首先需要从mp4容器中取出原始视频数据,然后将其放入新的容器中,同时设置新的fps值。
首先:ffmpeg -i input.mp4 -c:v copy -f h264 input.h264
进而:ffmpeg -r 15 -i input.h264 -c:v copy output.mp4
注意:只要你不使用-c:v copy
(在你编辑时使用的-codec:v h264
与 相同-c:v h264
),FFmpeg 就会总是重新编码输入,以便输出具有不同的大小。