video - ffmpeg 将 mov 转换为 mp4 而不会降低比特率

标签 video ffmpeg compression codec

我正在尝试将 mov 视频转换为 mp4,但我不希望发生任何压缩。我在 Mac 上使用 Quicktime 录制了它,并以最高的未压缩质量进行了录制。当我运行 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
  • 您可能会注意到颜色保真度略有下降,但它是广泛兼容性所必需的。
  • 您可以省略 -vf format=yuv420p如果您要上传到 YouTube。

  • 流复制
    ProRes 在 MP4 中不兼容,所以你不能只做 stream copy (如复制和粘贴)。但是,对于那些发现这个问题,并且具有兼容格式并且只想将容器从 MOV 更改为 MP4 的人:
    ffmpeg -i input.mov -c copy output.mp4
    
    另见
  • FFmpeg Wiki: H.264
  • 关于video - ffmpeg 将 mov 转换为 mp4 而不会降低比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66248307/

    相关文章:

    linux - ffmpeg - 忽略第一张图像的图像集中的幻灯片

    unix - 什么是最好的 Unix 压缩实用程序?

    c# - 具有多个视频帧的DirectShow变换过滤器-与音频同步

    python - 如何在 Django 中运行 FFMPEG 命令?

    django - Python-Django : Streaming video/mp4 file using HttpResponse

    使用 NVENC 时 FFMpeg 质量下降

    video - FFMpeg 视频定格动画

    html - 减少 HTML 文件大小 - 不仅仅是最小化?

    compression - 我没有得到 Golomb/Rice 编码 : It does make more bits of the input, 还是它?

    javascript - 无法播放通过 JS 创建的嵌入在 iframe 中的 youtube 视频