无损 HEVC 和 FFV1 之间的巨大文件大小差异

Gér*_*gam 2 video ffmpeg lossless h.265

我使用 FFmpeg 制作了一个包含静态图像 (input.jpg \xe2\x89\x88 1 MB) 和音乐 (input.wav \xe2\x89\x88 20 MB) 的音乐视频。为什么使用无损 HEVC 编解码器生成的视频 (output.mkv \xe2\x89\x88 70 MB) 和使用 FFV1 编解码器生成的视频 (output.mkv \xe2\x89\x88 10GB)?

\n\n

发出的命令

\n\n
    \n
  • 对于无损 HEVC:
  • \n
\n\n
ffmpeg -loop 1 -i input.jpg -i input.wav \\\n       -c:v hevc -crf 0 -c:a flac -s 3840x2160 -r 60 -shortest output.mkv\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  • 对于 FFV1:
  • \n
\n\n
ffmpeg -loop 1 -i input.jpg -i input.wav \\\n       -c:v ffv1 -c:a flac -s 3840x2160 -r 60 -shortest output.mkv\n
Run Code Online (Sandbox Code Playgroud)\n\n

看起来要么为无损 HEVC 提供的参数不正确(从某种意义上说不是真正无损),要么 FFV1 是一个糟糕的编解码器。

\n

Gya*_*yan 5

FFV1 采用帧内编码,因此每个帧的压缩独立于其他帧;HEVC 通常是帧间编码的。

假设您使用的是 libx265,则必须添加-x265-params lossless=1真正的无损模式(-crf 0不是)。在编码结束时,x265 应打印一行显示lossless compression ratio.

x265 比 x264 具有更好的帧内预测,​​我预计 FFV1,因此无损压缩更有效。但解码需要更多资源。