如何使用 Avidemux 重新压缩具有类似质量的 H264 视频?

如何使用 Avidemux 重新压缩具有类似质量的 H264 视频?

我用手机拍摄了许多视频,这些视频的长度相当大(例如,1920×1080 的 3 分钟视频超过 400MB)。

我猜想这是因为手机更看重电池寿命和质量而不是存储空间,所以我认为我可以通过 Avidemux 来重新编码它们并减小它们的大小,同时又不会过多地损害它们的质量。我意识到一些质量下降是不可避免的。但由于压缩空间很大,我认为应该可以避免大量的可察觉的降解。

视频以 H264/AAC 编码,放在 MP4 容器中。我可以直接在 Avidemux 中复制音频。但是,如何推导出 H264 编码器的一些近似值以保持视频质量?我认为 H264 格式不会保留有关其输入参数的信息。可以选择一种质量级别,使文件大小完全膨胀而没有任何增益,也可以选择一种质量级别,使视频变得很糟糕;有没有办法分析输入,找出一个“最佳点”,即视频大小减小而不会对质量产生太大影响?

我意识到这个问题有一定的主观性;认为是“可察觉的”质量下降?但是,鉴于视频编码器传统上是通过感知质量来参数化的,是否有可能得出一些基本参数的近似范围?

答案1

有多个命令行或 GUI 工具可以显示 H264 视频的一些简化的编码参数,ffmpeg例如mediainfo

$ mediainfo myvideo.mp4
[... look for the "Video" section ...]
Format profile                           : High@L4
Bit rate                                 : 17.0 Mbps

$ ffprobe -show_streams myvideo.mp4
[... look for a [STREAM] header followed by codec_type=video ...]
profile=High
level=40
bit_rate=16996359

注意中的profile和参数。不要担心比特率,它实际上并没有告诉你文件大小没有告诉你的任何信息。我levelffmpeg思考level的输出ffmpeg是真实值的 10 倍(即40意味着级别 4、41意味着 4.1,等等)。

Avidemux 允许您使用简化的设置,您可以设置这些设置并将更精细的设置保留为 Avidemux 的默认设置。

Avidemux 截图

我认为这些是相应的设置:

  • 使用高级配置未选中。
  • 轮廓高。
  • IDC级别为 4。

使用较慢的预设值将提高这些参数内的质量(直到一定程度)。

您还可以使用两遍编码来进一步减小文件大小。我不知道有什么好方法可以预测合理的文件大小,但 1920×1080 的两遍平均比特率最好在 6-8Mbps 之间。不要以原始文件大小为目标或比特率:您最终只会得到一个相同大小的文件。

就我而言,只需在质量等级 20(Avidemux 的默认设置)下进行一次单次编码,文件大小就会减半,使用 Bino 和 Kinovea 进行比较,我发现两者并无差异,即使是运动模糊或高对比度帧也是如此。在 7Mbps 下进行两次编码(这是单次编码的结果),文件大小会降低 40%。

相关内容