FFMPEG 调用输出视频比特率 >15mbps 的 mp4

FFMPEG 调用输出视频比特率 >15mbps 的 mp4

我正尝试将一段 30 秒 1920x1080 @ 23.976fps 的 h264 mp4 动画视频发送给一个分销商,该分销商严格要求视频比特率必须大于 15Mb/s。

动画细节很少,动作也很少,大面积都是纯色。压缩效率很高。事实上,压缩效率很高,以至于很难让视频比特率达到分销商的规格。

使用 ffmpeg 3.0,我成功使用以下调用使视频数据速率达到 15Mb/s 以上:

ffmpeg -i foo.mov -c:v libx264 -preset veryslow -crf 0 -c:a aac -b:a 320k foo.mp4

但是当我升级到 ffmpeg 4.1.3 时,该调用不再达到预期的结果,因此我切换到:

ffmpeg -i foo.mov -c:v libx264 -b:v 50000K -c:a aac -b:a 320k foo.mp4

它通常可以达到 15Mb/s 以上的速度,但对于所有输入文件来说并非始终一致。

我努力了

-profile:v high444

-level 5.0

-tune animation

-minrate 20000K

但没有一种方法可以让压缩机不再那么高效。

我有一个新的动画视频,它抵制所有 ffmpeg 3 和 ffmpeg 4 调用,以使其视频速率超过 15Mb/s。(我成功的秘诀是在通过 ffmpeg 运行源文件之前将源文件的分辨率提高到 3840x2160,但似乎应该有更好的方法。)

所以我的问题是:在 ffmpeg 调用中还要指定哪些其他参数来微观管理压缩器以提高视频数据速率?

答案1

不要使用恒定/可变速率流程,尝试质量目标。我认为 Superuser 上的以下帖子可能正是您所需要的。

FFmpeg 中使用“-vb”和“minrate”/“maxrate”设置的可变比特率

答案2

解决方案是添加-intra第二个命令:在我的测试文件上,数据速率从 11.9 Mb/s 上升到 32.7 Mb/s

ffmpeg -i foo.mov -c:v libx264 -intra -b:v 50000K -c:a aac -b:a 320k foo.mp4

相关内容