我想将一个视频剪辑(MP4,yuv420p)从30帧每秒转换为24帧每秒。帧数正确,因此我的输出应该从30 fps的20分钟变为24fps的25分钟。其他所有内容都应保持不变。
无论我尝试什么ffmpeg命令,都无法成功将帧速率转换而同时保持相同的持续时间,要么改变持续时间而不改变帧速率,要么改变帧速率而改变帧数。
因此,我一直在尝试诸如:
ffmpeg -y -r 30 -i seeing_noaudio.mp4 -r 24 seeing.mp4
(我是在Windows上进行此操作,但通常会在Linux上进行)。这会转换帧速率,但会丢失一些帧,因此总持续时间不会改变。
或者我尝试过
ffmpeg -y -i seeing_noaudio.mp4 -filter:v "setpts=1.25*PTS" seeing.mp4
更改视频的持续时间而不更改帧率。
我应该能够通过一个单独的FFmpeg命令完成这个操作,而无需重新编码甚至像一些人建议的那样返回原始帧。
请帮忙。
-y
标志表示“无需询问即覆盖输出文件”。我不得不去查找它的含义,以确保我没有误解什么。我认为这与手头的问题无关,因此应该删除以简化每个人的事情。 - osullic-r
,文档中说:“作为输入选项,忽略文件中存储的任何时间戳,并生成假定恒定帧速率fps
的时间戳。作为输出选项,复制或删除输入帧以实现恒定的输出帧速率fps
。” - osullic