ffmpeg 在不降低比特率的情况下将 mov 转换为 mp4

ffmpeg convert mov to mp4 without reduction of bit rate

我正在尝试将 mov 视频转换为 mp4,但我不想进行任何压缩。我用 Quicktime 在 Mac 上录制了它,并以最高的未压缩质量录制了它。当我运行ffmpeg -i。我得到:

    Stream #0:0(und): Video: prores (apcn / 0x6E637061), yuv422p10le(bt709), 1280x720, 72073 kb/s, 30.09 fps, 30 tbr, 30k tbn, 30k tbc (default)

注意 kb/s 是 72,073。我想保留这个比特率。

我尝试了几种不同的转换命令,包括:

ffmpeg -i input.mov output.mp4

和:

ffmpeg -i input.mov -qscale 0 output.mp4

两者都有效,但都会导致比特率损失。查看有关两者结果的信息

    Stream #0:0(und): Video: h264 (High 4:2:2) (avc1 / 0x31637661), yuv422p, 1280x720, 4569 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)

如何转换为 mp4 并且仍然有 ~72,000 kb/s?这可能吗?

您是在将苹果与橙子进行比较。 ProRes和H.264是两种完全不同的格式,所以比较码率没有意义。你真正要问的是...

如何在没有质量损失的情况下将 ProRes 转换为 H.264 (MP4)?

只需使用 -crf 设置质量。 0 的值是无损的,18 看起来是无损的但实际上不是。

视觉无损

ffmpeg -i input.mov -crf 18 output.mp4

无损

输出文件会很大,你的播放器可能不喜欢。

ffmpeg -i input.mov -crf 0 output.mp4

兼容性

如果您需要在非基于 FFmpeg 的播放器中播放输出,请添加 -vf format=yuv420p :

ffmpeg -i input.mov -crf 18 -vf format=yuv420p output.mp4
  • 您可能会注意到颜色保真度略有下降,但这是广泛兼容性所必需的。
  • 如果您要上传到 YouTube,则可以省略 -vf format=yuv420p

流复制

ProRes 与 MP4 不兼容,因此您不能只执行 stream copy(如复制和粘贴)。然而,对于那些发现这个问题,并且有兼容格式,并且只想将容器从 MOV 更改为 MP4 的人:

ffmpeg -i input.mov -c copy output.mp4

另见