H.264配置文件之间有什么区别?


56

我是在After Effects CS5中渲染视频的,当我对其进行格式化时,我选择了H.264编解码器,并且采用这种格式,它的配置文件包含“基线”,“主要”和“高”。

因此,我做了一些测试-使用Baseline和High渲染两个文件。我唯一注意到的是视频大小较小,“高”则提供较小的文件大小。

我只是想知道有什么区别,哪一个对质量最好,对文件大小最好。

Answers:


78

什么是个人资料?

H.264配置文件或多或少定义了编码器在压缩视频时可以使用的“风铃” –编码器可以启用许多H.264功能。允许启用的配置由配置文件定义。配置文件可确保具有不同解码功能的设备之间的兼容性。有了配置文件,编码器和解码器就可以同时使用的功能集达成共识。

不同的配置文件有什么作用?

有关详细列表,请参阅Wikipedia上的H.264配置文件

通常,基准配置文件仅将编码器限制为某些基本功能。即使使用较低计算能力的设备(例如较旧的智能手机),也可以轻松播放以基线配置文件编码的视频。例如,Android和iOS手机只能播放以基准配置文件编码的视频,而不能播放HighMain。近年来,情况有所改变,越来越多的电话可以实际播放主视频或高清晰度视频,但官方建议仍未提及

主要针对低成本应用程序,此配置文件最通常用于视频会议和移动应用程序。它对应于“基准”,“主要”和“高级”配置文件中共有的特征子集

MainHigh只是向其中添加功能。特别是高调经常用于广播:

广播和光盘存储应用程序的主要配置文件,尤其是高清电视应用程序(例如,这是Blu-ray Disc存储格式和DVB HDTV广播服务采用的配置文件)。

例如,仅在配置文件及更高版本中允许使用B切片。它们可以用来节省带宽,但更难解码,因此某些设备可能不支持它们。

这与质量有什么关系?

轮廓仅间接影响质量。与较低配置文件相比,较高配置文件的某些功能可以使您以较低的文件大小获得相同的质量。

例如,CABAC熵编码(MainHigh)比CAVLCBaseline)更有效。它在计算上也更加密集。因此,如果您给编码器指定一定的比特率来使用,那么与使用CAVLC相比,使用CABAC可以创建质量更好的视频,因为它可以实现更好的压缩。

这也解释了为什么使用“ 高级”配置文件可以实现较小的文件大小-显然,您以某种方式设置了恒定的质量水平,编码器可以使用更高级的压缩技术来创建质量与“ 基准”配置文件相同但质量更小的视频文件。尺寸。

所以……您应该使用哪一个?

一些基本规则:

  • 基准资料(如果您定位到旧的移动设备)
  • 如果您要定位网络流媒体,长期存储,PC或Mac,蓝光创作等,请选择“ 主要”或“ 高级”配置文件。

8
自从撰写本文以来,几乎所有智能手机(包括Android和其他设备)现在都发挥着主要作用,而且许多智能手机都发挥了很高的作用。例如,大多数声称播放高清内容的设备都支持高配置文件支持。您几乎可以肯定地依靠main或更高。Baseline是H.264的严重残缺版本,专为过去数十年的受限设备而设计。
thomasrutter

并非每个人都有最新的智能手机。Android 仍建议使用Baseline配置文件。这同样适用于iOS的。当然,某些(最新)设备支持更高的配置文件,但是如果您想与低端硬件保持兼容,则必须选择该配置。但我修改了答案以反映您的意思。
slhck 2014年

有趣的是-内置播放器已经为我提供了一段时间的支持,但是您的观点是正确的-您不能依靠它。但是,您可以依赖第三方软件播放器来进行主要配置和高级配置,例如MX Player之类的播放器只要具有基于ARM的功能和足够高的CPU性能,就可以对高级配置文件提供软件支持。
thomasrutter 2014年

请注意,自2016年起,Google相册在进行备份时会将在Android Nexus 6上以“高级”配置文件录制的上传视频转换为“基准”配置文件(以“高质量”“免费无限制存储”备份模式)
nealmcb

仍然是我在2017年在ffmpeg上阅读的最佳信息。
typeoneerror
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.