哪些 H.264/H.265 视频压缩参数可以提供 DVD 同等质量且压缩效果更好?

哪些 H.264/H.265 视频压缩参数可以提供 DVD 同等质量且压缩效果更好?

我有一盒 DVD 视频光盘,我想将其处理掉,同时将视频转换为 MP4 文件并存储在硬盘上。

考虑到现代 H.264 AVC 和 H.265 HEVC 压缩算法优于 DVD 标准 MPEG2,我希望通过压缩视频来节省硬盘空间,同时节省约 99% 的 DVD 原始质量。

什么

  • H.264(FFMPEG+libx264)压缩参数
  • H.265(FFMPEG+libx265)压缩参数

我应该怎样做才能达到我的目标?

我所说的参数是指 CBR/CRF 值、预设(请不要使用 veryslow/placebo)、标志等。

PS:我更愿意使用 来限制这种情况-pix_fmt yuv420p-profile:v baseline -level 3.0以确保文件在所有设备上都能正常播放,包括依赖旧硬件解码器芯片的旧设备。使用略微增加的 I 帧频率(使用参数-g)也是可取的,以促进低速和高延迟媒体的使用。

对于 HEVC,我也更喜欢使用能够确保在支持它的设备上流畅地进行硬件加速播放的参数,但我并不想关注这个限制,因为我还没有看到任何提供硬件加速 H.265 解码的设备。

答案1

请注意,为此,您应该始终使用最新的 ffmpeg 版本,最好自己编译。这使您可以访问最新的 libx265 和 libfdk-aac 进行音频编码。

此外,如果您将 DVD 的速率从约 10 MBit/s 提高到 H.264 视频的 1-2 MBit/s 左右,将 H.265 视频的速率提高到 0.5-1 MBit/s,数​​据速率节省将非常显著。按照以下步骤更改质量可能会影响比特率,但数据减少仍然会非常显著。

H.264

对于质量/速率控制,您需要使用CRF模式在 libx264 中,使用 CRF 而不是恒定比特率。使用 CRF 可确保保持平均质量,与原始视频分辨率或其复杂性无关。恒定比特率只有在受到传输介质(例如硬盘速度、互联网吞吐量)限制时才真正有用。

选择 CRF 值是比较棘手的部分。它要求您查看输出。libx264 的默认值 (23) 在大小和质量之间提供了相当好的权衡。但考虑到您的原始源已经压缩(并且压缩程度不是很高),好的为了提高质量(与蓝光相比),您可能需要将 CRF 改得稍微低一些,例如 20。这会使所需比特率增加约三分之一。

根据您想要等待的时间选择预设。slow这里似乎是一个很好的值。

ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4

如果没有 libfdk-aac,则可以使用内置的 ffmpeg AAC 编码器。使用-c:a aac -strict experimental -b:a 128k代替-c:a libfdk_aac -vbr 4

H.265

研究表明与 H.264 相比,使用 HEVC 可节省高达 74% 的比特率。这是基于超高清序列的主观观看数据。当然,这取决于源内容的时间复杂度,对于难以编码的序列,节省的数据量不会那么高。无论哪种方式,您都可以可以放心地说减少 50% 的数据是绝对可能的。

libx265 的默认 CRF 为 28。使用相同的源内容,与 CRF 为 23 的 libx264 相比,其比特率大约是后者的一半。这与实际比特率无关,即,如果 H.264 版本需要 1.5 MBit/s,那么 H.265 将使用大约 750 kBit/s,但另一个序列的比特率为 750 kBit/s,而另一个序列的比特率为 350 kBit/s。我在 DVD-PAL 分辨率的几个序列上运行了它,但无法分辨出质量方面的差异。

ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4

欲了解更多信息,请参阅以下相关资源:

相关内容