无损通用视频格式

无损通用视频格式

我正在努力寻找最合适的无损视频格式为 1280x720 25fps 视频。视频时长 4 分钟。声音为 320 kbps mp3,没什么大不了的。理想条件:

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

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

答案1

我所知道的最好的实际、数学上无损格式是 huffyuv,但它会产生非常大的文件,并且兼容性很差。顺便说一下,ffmpeg 可以使用以下方法实现:

ffmpeg -i input -c:v huffyuv -c:a libmp3lame -b:a 320k output.avi

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

如果这还不能给你一个足够小的文件,那么 18 的 crf 通常被认为是“视觉无损”:

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

我通常建议使用 veryfast 预设来对 x264 进行编码,根据我的经验,它提供了最佳的速度/大小权衡(superfast 和 veryfast 之间的文件大小有很大的下降,任何比这更慢的速度都会增加更多)。一般建议使用您可以处理的最慢预设,预设为:ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow。

这里以获得有关 x264 编码的更深入指南。

答案2

这些天我喜欢网页

ffmpeg -i input.avi -c:v libvpx-vp9 -lossless 1 output.webm

为了更快地进行转换,对于多核处理器,我读到建议使用比实际核心少一个的线程。因此,对于 8 核处理器,您可以像这样指定 7 个线程:

ffmpeg -i input.avi -c:v libvpx-vp9 -threads 7 -lossless 1 output.webm

答案3

# 容器

要与 DVD 播放器完全兼容,您需要使用 MPEG-2 格式、容器、限制和编解码器。我猜,“现代播放器”意味着“mp4”兼容性,它基本上和主要是 mp4 文件播放器 - H.264、MPEG-4、AVC => libx264
阅读更多:https://de.wikipedia.org/wiki/H.264

# 视频

看一下https://trac.ffmpeg.org/wiki/Encode/H.264,特别是关于“配置文件”和“级别”的部分,为了兼容性
使用-profile:v high -level 4.0应该这样做

# 声音的

避免使用有损编解码器重新编码音轨 - 任何 mp3 格式都是有损的,即使是 320kbps。
改用-c:a copy

到目前为止,它对我来说效果很好。没有同步问题。
音频流不受关键帧的约束。可以进行精确剪切。
如果您的音轨以 44kHz 采样率录制,请使用最大 256kbps

如果您需要满足某些先决条件,请仅在视频的最终编码中使用有损编解码器。

我听说过一些音频同步问题,但看起来主要问题是受保护的材料(!)。

# 最后

我更喜欢这样:
ffmpeg -i input -c:v libx264 -crf 5 -preset faster -profile:v high -level 4.0 -c:a copy output.mp4

相关内容