【发布时间】:2018-01-09 18:58:56
【问题描述】:
我正在尝试将视频剪辑(MP4、yuv420p)从 30 fps 转换为 24 fps。帧数是正确的,所以我的输出应该从 30fps 的 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标志表示“不询问就覆盖输出文件”。我必须去找出那意味着什么,以确保我没有误解这里的东西。我认为这对手头的问题无关紧要,因此应该删除以简化每个人的事情。 -
对于
-r,文档说,“作为输入选项,忽略存储在文件中的任何时间戳,而是在假设恒定帧速率fps的情况下生成时间戳。作为输出选项,复制或删除输入帧以实现恒定的输出帧速率fps。"
标签: ffmpeg