如何生产高质量的H.264视频文件
H.264是唯一可以在所有计算机、移动设备和OTT播放器上播放的压缩技术. 这使得生产高质量的H.264文件兼容您的目标播放设备的基本技能. 帮助您获得和/或完善此技能是本文的重点.
我们将从兼容性元素开始, 因为如果文件不能在你的目标设备上播放, 质量有多好真的不重要. 然后我们来解决这个问题, 帧率, 以及编码文件的数据速率, 因为如果你做错了, 在H上做文章.264编码参数的文件也不重要. 然后我们将介绍如何选择正确的编码工具和H.264编解码器以及如何快速调整x264编码参数以获得最佳质量的文件.
确保兼容性
最基本的H.264相关的编码参数是配置文件和级别. 短暂的, 配置文件控制在生成编码文件时使用的编码算法和技术. Baseline配置文件生成一个可以在CPU和内存最小的设备上播放的文件, 而High profile使用最先进的技术,需要更强大的播放平台. 大多数编码工具为选择概要文件提供了一个简单的控件,如 图1 (选自电视流节目).
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/101507-TuneUp-Figure-1-ORG.jpg)
图1. 在Telestream Episode中选择配置文件
在H.264标准,允许设备制造商支持H.264播放用的不贵, 高效配置, 就像最初的具有视频功能的ipod中使用的那样, 只能玩H.使用基线配置文件编码的264视频. 在光谱的另一端, 最近5到6年生产的电脑和所有OTT设备都可以播放使用High profile编码的视频.
使更精确的目标播放功能, 级别为每个配置文件中的分辨率和数据速率等参数设置最大值. 这显示在 表1,显示所有支持视频的苹果设备支持的配置文件和级别. 在第一列, 你可以看到最初的iPod, 通过5g版本, 只能播放使用基线配置文件编码到1级的视频.这意味着320x240分辨率,30 FPS,最大数据速率为768 KBPS. 与此形成鲜明对比的是, 就像电脑和OTT设备一样, 最新的苹果设备几乎可以播放任何你想播放的文件.
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/101508-TuneUp-Table-1-ORG.jpg)
看左边第二列, 如果你想让你的视频在版本4或更低的iphone上播放, 您需要使用基线配置文件在640x480x30fps的最大配置下生成这些流.5 mbps. 事实上,在 技术说明TN2224, 苹果在为设备交付制作HTTP 在线直播。 (HLS)自适应文件方面的开创性参考, 苹果建议使用基线配置文件编码所有640x360或更小的流, 使用Main和High配置文件编码的更高分辨率文件. 请注意,这是HLS规范的一部分, 设备在检索文件之前检查流配置, 所以他们不会试图检索一个他们不能播放的文件.
不幸的是, Android制造商的广度使得将播放功能整合到表1中几乎是不可能的. 而不是, Google保证每台Android设备都能播放以500Kbps编码的480x360x30fps的文件.264播放硬件加速,大多数设备提供. 换句话说, 而最新的Android设备能够播放使用Main和High配置文件编码的文件, 谷歌不能保证这一点. 事实上, 谷歌支持的媒体格式文档 声明使用基线配置文件以2Mbps编码的1280x720x 30fps视频不会在所有Android设备上播放.
出于这个原因, 当生成Android交付的单个文件时, 大多数来源建议在支持的最大配置(480x360x30 fps @ 500Kbps)下进行编码, 基线配置文件). 从Android版本3开始.0及以上支持HLS播放, 您也可以使用TN2224中提供的Apple模式来高效地交付给这些Android设备. 这是, 只要您使用Baseline配置文件以500Kbps的速度以480x360x30fps编码至少一个流, 你将拥有一个可供Android设备播放的流媒体, 并使用HLS协议, Android设备将能够检索任何它可以播放的高质量文件.
底线? 如果产生一个单一的文件移动播放, 您应该使用基线配置文件来确保通用播放. 如果生成用于移动播放的自适应文件组, 您应该使用Baseline概要文件对低分辨率文件进行编码, 苹果在TN2224中提供的建议是一个很好的开始.
这引发了一个更大的问题:如果您确实使用Baseline配置文件生成用于移动播放的文件, 您是否也应该使用High profile专门为计算机和OTT播放创建文件,以提供最高的质量? 根据我的经验, 使用High和Baseline配置文件编码的文件之间的质量差异通常比您想象的要小. 出于这个原因, 您应该比较使用High和Baseline配置文件编码的文件的质量,以确保额外的编码周期值得付出努力.
配置文件
一旦你确保了兼容性,就该把注意力转移到质量上了. The most critical element here is the configuration of your video file(s); specifically the resolution, 帧率, 数据速率. 如果这些错误,你的文件将看起来很糟糕,即使所有其他编码选项都是完美的.
作为背景,与所有流媒体视频编解码器一样,H.264是有损编解码器,这意味着你对视频文件压缩得越多,质量损失就越大. 你如何确保你的视频不会过度压缩? 通过监控一个被称为比特每像素的度量.
简单地说,每像素的位数是应用于文件中每个像素的数据量. 公式是每秒数据速率, 除以每秒的像素数, 通过将宽度乘以分辨率乘以帧速率(数据速率/宽度x高度x帧速率)来计算. 例如,假设您以800Kbps的速度编码了一个640x360x30 fps的文件. 每像素的位数为0.116,除以800,000/(640x360x360),即800,000/6,912,000. 或者,你可以 将文件加载到MediaInfo,并让免费的跨平台工具为您计算每像素的位数(图2),并提供了一堆其他有意义的编码细节.
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/101510-TuneUp-Figure-2-ORG.jpg)
图2. 在Telestream Episode中选择配置文件
帧率为640x360x30, 大多数生产商使用大约700Kbps到1Mbps的数据速率, 哪个提供的每像素位值在0之间.1和0.15. 在这个范围的高端,ESPN将其高运动体育内容编码为1.4Mbps,或者0.203位/像素. 如果你的视频是块, 像素化, 到处都是文物, 你的编码是每像素位值0.1或以下,提高数据速率以使质量符合要求. 如果您的每像素位数值超过0.2, 您很有可能以更低的数据速率产生视觉上相似的结果, 节省带宽成本并支持向移动设备传输. 尝试以较低的数据速率编码并查看.
因为编解码器在更高的分辨率下效率更高, 保持同等质量所需的每像素位数值随着帧大小的增加而下降. 例如,在他们的720p流中,ESPN编码为2.8Mbps,或者0.每像素102位,大约是640x360文件每像素位值的一半. 这种提高效率的数学表示是用幂来量化的 .75法则,它涉及到分数指数,我无法口头解释. 你可以 阅读更多相关内容.
为本文的目的, 要明白,随着决心的增加, 提供同等质量下降所需的每像素位数值. 作为指导,请考虑中的数据 表2,从我的书里 为多屏幕传送制作流媒体视频; 哪个显示了分辨率下的数据速率和所示的每像素位值,都是29.97帧/秒. 红色方块表示每个分辨率的适当数据速率, 你们看到了吗, 随着分辨率的增加,每像素位值下降. 再一次。, 如果你的数据速率比显示的要低得多,而且质量不过关, 提高数据速率,直到质量足够. 如果您的数据速率高得多, 尝试使用较低的数据速率,看看是否可以生成看起来相同但更有效和更具成本效益的较低数据速率流.
![](http://dzceab466r34n.cloudfront.net/Images/ArticleImages/InlineImages/101509-TuneUp-Table-2-ORG.jpg)
选择合适的编码工具
一旦获得了正确的配置文件和配置,就可以开始研究H了.264 -具体参数. 使用Final Cut Pro X (FCPX)的流媒体专业人士的绝对数量保证了相当多的制作人使用FCPX的配套产品进行编码, 苹果公司的压缩机. 虽然压缩机本身是有能力的,股票苹果H.264编解码器所包含的产品是非常不合格的.
顺便说一下背景,H.264是一个标准, 所以不像专有的编解码器,如On2的VP6或微软的Windows Media视频编解码器, 多方可以创建自己的编解码器. 如你所见,MainConcept是Rovi公司的德国子公司. (前身为Macrovision),制作了H.264编解码器在许多高级编码工具中使用, 而开源的x264编解码器也得到了广泛的支持. 苹果公司创造了第一批H.264编解码器,这在当时很有竞争力. 然而,从那时起,其他开发人员已经优化了他们的H.264编解码器, 而苹果, 大概是专注于更有利可图的领域, 让它的编解码器衰落吧, 而且它的质量现在也没有竞争力.
相关文章
通过桌面访问观众, 笔记本电脑, 手机, 平板电脑, 和机顶盒都从同样的步骤开始:将视频编码为H.264.
2014年7月30日
FFmpeg可能是免费下载的,但仍然需要付费. Robert Reinhardt解释了为什么这种编码器并不适合每个公司.
2014年1月21日
这个消息对内容所有者来说是好消息,但对编码/解码供应商来说就不那么好了, 但让每个人都能感受到这个问题将如何发展.
2014年1月17日
或者,我在流媒体西部的HEVC演讲中学到了什么
11月25日
今天的视频编码器大多是相似的,大多数是好的, 流媒体东部的罗伯特·莱因哈特说. 尽管如此,还是有一些功能需要寻找.
7月16日
H的背后.264,世界上最流行的视频编解码器,包括编码参数和版税问题
4月4日
提及的公司及供应商