无损通用视频格式

mrk*_*kva 16 video ffmpeg video-editing

我正在尝试为 1280x720 25fps 视频找到最合适的无损视频格式。视频有4分钟。声音将是 320 kbps mp3,这没什么大不了的。理想条件:

  • 无损(可以是感知无损的)
  • 容器+编解码器可以在大多数平台上播放
  • Container + codec 可以在现代 DVD 播放器上播放(支持 DVD 以外的其他格式)
  • 大小小于 700 MB

这甚至可能吗?已经挣扎了三天,没有任何令人满意的结果,甚至获得了 12 GB 的文件(似乎很多 - 3 GB/分钟)。

evi*_*oup 27

我所知道的最好的实际的、数学上无损的格式是 huffyuv,但这会产生非常大的文件,并且与很多文件不兼容。为了记录,ffmpeg可以这样做:

ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi
Run Code Online (Sandbox Code Playgroud)

X264 是开源的 h.264 编码器,具有无损模式。这可以放入 MP4 容器中,并且应该与过去几年制造的大多数硬件兼容。第一个命令将提供快速的编码速度,但文件较大;第二个命令将花费更长的时间,但文件大小应该是快速编码文件的一半左右(尽管它仍然会很大):

ffmpeg -i input -c:v libx264 -crf 0 -preset ultrafast -c:a libmp3lame -b:a 320k output.mp4

ffmpeg -i input -c:v libx264 -crf 0 -preset veryslow -c:a libmp3lame -b:a 320k output.mp4
Run Code Online (Sandbox Code Playgroud)

如果这不能为您提供足够小的文件,那么 18 的 crf 通常被认为是“视觉无损”:

ffmpeg -i input -c:v libx264 -crf 18 -preset veryfast -c:a libmp3lame -b:a 320k output.mp4
Run Code Online (Sandbox Code Playgroud)

我通常建议使用非常快的预设来使用 x264 进行编码,根据我的经验,它提供了最佳的速度/大小权衡(超快和非常快之间的文件大小有很大的下降,比这更慢并且增量更大)。一般建议是使用您可以处理的最慢的预设,预设是:超快、超快、非常快、更快、快、中、慢、慢、非常慢。

有关x264 编码的更深入指南,请参见此处

  • 不要建议将 `veryfast` 作为有损 x264 的良好默认值。`medium` 是一个很好的中间立场,但我通常使用 `veryslow` 来对任何东西进行最终编码。此外,`huffyuv` 甚至不是很快,除了兼容性之外,我不会推荐它。 (2认同)