如何编码到WebM
即使你不相信HTML5的宣传, 迟早的事, 你需要开始将一些视频编码为WebM格式. 也许是为了内部实验,为了按次付费或订阅项目(H.264可能产生版税), 因为你决定全身心投入HTML5视频, 或者因为谷歌昨天宣布它将停止支持H.Chrome中的264. 不管是什么原因, 总有一天你会坐在办公桌前或泳池边, 你会想“我必须把一些视频编码成WebM格式."
如果那一天到来, 在你的记忆库里为这篇文章设置一个书签, 因为这都是关于WebM的编码. 我将从WebM与H的比较开始.就质量而言是264, 只是为了设定期望, 然后简要回顾了几种免费和收费的编码工具的质量和性能.
作为基准, 我将把这些工具的输出质量与谷歌生成的WebM文件进行比较, 使用自己的命令行编码工具. 我自己并不是命令行爱好者, 但在大多数情况下, 它提供了很少有基于gui的编码工具可以匹配的控制和输出质量级别,对于需要将编码构建到更大规模工作流中的用户来说是理想的. 你会看到, 我测试过的大多数基于gui的工具在质量上都不尽如人意, 生成请求的目标数据速率, 或以其他方式. 但是有一个工具可以匹配谷歌的输出质量,并且通过WebM的编码接口提供了几乎所有可用的控件.
WebM质量:设定期望
我写了两篇关于WebM的文章 流媒体,两次都将WebM的质量与H.264. 在 第一篇文章,与H.Sorenson Squish制作的264和WebM文件,我总结道:“这加起来是什么? 我选H.264仍然提供更好的质量,但在大多数应用程序中差异并不明显."
在 第二篇文章该研究将索伦森挤压生成的WebM文件与H.使用x264编解码器生成的264文件, 我说, “当WebM第一次被宣布时, 我比较了WebM文件和H文件.由Sorenson Squish制作的264文件,并得出结论:“我会说H.264仍然提供更好的质量,但在大多数应用程序中差异并不明显.“现在我花了很多时间制作这两种格式,并得出了相同的结论."
2010年底,我主持了一个H.264与WebM技术在流媒体西部的决赛会. 为了确保我实现了绝对最好的WebM质量的比较, 谷歌好心地请VP8编解码器的首席工程师使用www上找到的示例命令行编码器将我的测试文件编码为我的标准编码参数.webmproject.org/tools/encoder-parameters. 我又把它和H比较了一下.使用x264和MainConcept编码器生成的264文件. 不出所料,我的结论没有改变,我说:“H.可能在质量上有一点优势,但在商业上无关紧要."
您可以在此下载带有并排帧比较的演示文稿 rb.ecohomemade.com/Conferences/West2010. 你可以在我的比较中查看实际的SD文件 www.doceo.com/SD_Comps.html 和高清文件 www.doceo.com/HD_Comps.html. 显然,您需要使用与WebM兼容的浏览器来查看WebM文件.
公平地说,与H相比,WebM确实有几个明显的缺点.264, 包括较慢的编码时间, 更高的CPU解码要求, 以及有限的浏览器和设备支持. 不过,本文讨论的是如何生成WebM,而不是是否应该使用WebM. 因此,我提出这些与质量相关的发现来设定期望.
具体来说,如果你正在生产H.264视频, 以相同的基本参数(分辨率)制作的WebM视频, 帧率, 数据速率)看起来应该是差不多的. 如果你是从WebM的老大哥VP6切换过来的,它应该看起来更好.
话虽如此,当我看到这里讨论的编码工具时,我问了两个基本问题. 编码工具能否生成与我的标准测试参数匹配的文件? 和, 如果可以的话, 与谷歌自己的工程师使用命令行编码器制作的质量相比,质量如何?
继续往下读,找出答案吧. 我将从免费和免费软件工具开始,然后移动到桌面编码器,如Telestream集 Pro和索伦森挤压.
微型视频转换器
我之所以包含这个工具,是因为当您研究WebM编码时,它会经常出现. 基本上,它是免费的,易于使用,并且足以快速免费查看WebM. 但它对于严肃的编码并不有用,因为没有编码参数—您只需输入文件, 选择预设, 然后开始编码.
![图1](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9964.jpg)
图1. Miro视频转换器易于使用
实际的编码参数与我的测试参数相当接近, 640x480片段的SD编码速率为554Kbps(我测试为468Kbps),720p时为071Kbps(我测试为800Kbps). 但是Miro在两种编码中都使用了160Kbps的立体声音频(我用32Kbps的单声道来录制SD剪辑,用128Kbps的立体声来录制HD剪辑). 为了达到目标数据速率,Miro还减少了重要的帧数, 导致在高动作序列的视频非常不稳定.
编码器失败时,产生我的SD测试剪辑从预缩放, 预隔行原始版本, 所以我输入了原来的DV文件. Miro以与输入文件相同的分辨率输出, 所以我不能让它从720x480缩放到640x480, 要实现正确的正方形像素宽高比,哪些是必要的. 而且它没有去隔行,进一步降低了高运动输出. 长话短说, 如果您决定使用此工具, 你应该去隔行,把你的镜头预先调整到你的最终目标.
一个很酷的功能允许您单击按钮(隐藏在预设下拉列表中) 图1)查看用于编码和实时日志文件的FFMPEG命令行参数. 但是,总的来说,如果您正在寻找用于产品编码的工具,那么Miro不是最佳选择.
Firefogg
Firefogg是另一个经常被提及的免费WebM编码酷,它比Miro做得更多, 但它仍然属于技术示范范畴, 再一次。, 由于缺乏对输出参数的控制. 继续关注这个, 虽然, 因为只要有几个快速的解决办法, 它对于小容量的WebM编码非常有用.
架构上, Firefox是一个Firefox扩展和客户端编码器, 也就是说, 不过你需要将文件加载到Firefox中进行编码, 实际上,您不会将源文件传输到任何地方, 就像你对true做的那样, 基于云计算的编码器. 所以没有文件上传延迟. 而不是, 来安装firefox, 下载一个小插件, 在Firefox中安装编码器和所有编码控件.
中显示了最重要的控件 图2. Start by choosing a WebM preset; there are two. 第一个, 哪一个的最大水平像素分辨率是480, 不会工作,因为我生产我的SD测试文件在640x480. 所以我选择了No. 2,否则输入如图所示参数. 请注意,虽然有视频比特率设置, 没有音频设置, 所以我无法拨入必要的32Kbps数据速率. 还缺少vp8特定的编码控件.
![WebM图2 WebM图2](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9965.jpg)
图2. 火狐有简单易用的控制,但软管
更重要的是, 尽管请求一个640x480的输出文件, Firefogg以1080x810分辨率和410Kbps生成了我的640x480 SD输入文件, 不是请求的468Kbps. 而帧质量在这些参数下表现良好, Firefogg在高运动序列期间丢弃帧以实现数据速率, 导致播放明显不稳定.
![图3](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9966.jpg)
图3. 命令行编码器在这一帧中产生了明显更高的质量.
HD的结果更令人满意, 使用Firefogg以828Kbps的数据速率制作视频, 而不是要求的800, 和112Kbps音频, 稍微低于我想要的128Kbps, 但它无法在编码参数中指定. 视频质量很好, 明显低于谷歌使用命令行界面提供的, 但如果没有并排比较,还不足以让观众注意到. 所示的框架 图3 是最糟糕的情况,firefox在低动作序列上几乎与谷歌相匹配.
如前所述,Firefogg有两个预设:一个为SD,一个为HD. 虽然我不能使用SD预设我的测试, 我用高清预设运行了一个测试编码,发现在468Kbps的480x360输出分辨率下,质量相当不错.
长话短说, 如果你能忍受Firefogg无法精确控制你的音频数据速率,并且可以解决关于SD文件输出分辨率的小问题, 值得一看. 我发现的另外两个免费的基于gui的替代品——来自wildform的miro和Flix WebM——肯定也有它们自己的问题, 所以firefox可能是除了命令行编码之外最好的免费选择.
Wildform的Flix WebM
我测试的最后一个基于gui的免费编码器是Wildform的Flix WebM for Windows. 尽管弗里斯在on2产品方面有着丰富的传统, 是当时市场上最好的VP6编码器之一, 我的两台测试机器上的WebM编码性能非常糟糕, 编码时间很长, 完全无法达到目标数据速率或呈现请求的音频参数, 还有一些奇怪的声音. 在测试状态下(0.9 beta),这个工具是不可用的.
这是一个完全的耻辱,因为使用Flix Pro的VP6编码专业人士绝对没有新程序的学习曲线. 像之前一样, 你加载和命名文件的前选项卡,然后切换到Vid/Aud选项卡微调你的编码参数. 虽然编码参数显示在 图4 毫无疑问看起来很奇怪(720p视频分辨率到105Kbps)?),当我请求一个800Kbps的文件时,Flix WebM生成了一个比特率为9055 kbps的文件.
当我请求128Kbps立体声音频时,音频结果更加奇怪, 我得到了500Kbps的音频,不知何故混合了我的两个测试文件的音频. 以为我不小心打开了另一个文件, 我一直在寻找另一个要关闭的浏览器窗口, 但并不是这样——两种音频流都以某种方式进入了一个编码文件.
![Web M图4 Web M图4](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9967.jpg)
图4. Flix WebM熟悉的编码接口
通过操纵请求的数据速率到异常低的目标和补偿音频比特率过剩, I 认为 我制作的文件达到了我的视频测试目标. 例如, 图5 显示了我用150Kbps的视频数据速率和32Kbps的音频数据速率对一个文件进行编码的MediaInfo分析. 456Kbps的视频数据速率已经足够接近我的468Kbps的目标来做出质量判断, 而且非常好. 但是如果你不能忍受172Kbps的音频,这个文件仍然是不可用的.
![图5 图5](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9968.jpg)
图5. MediaInfo是任何WebM制作人的必备工具.
然后是编码速度. 我没有进行正式的速度测试,因为我不喜欢在我的生产电脑上加载太多的软件. 但在我的12核惠普Z800工作站上, Flix WebM花了96分钟来生成一个文件,而firefox只需要20分钟就能渲染出来, “挤压”用了16分钟就完成了. 当我尝试在八核Z800液冷工作站上将相同的文件编码为类似的参数时, 花了161分钟. 虽然您可以加载程序的多个实例以并行编码, 考虑到无意的音频混音,这似乎是一个冒险的策略.
只是为了让你知道,我输入了一个关于这些问题的支持票. 公司回信说, 告诉我这个程序还在测试阶段,并要求我在发布之前不要评论它. 考虑到这个产品是公开的,而且我投入了时间来测试它, 我决定把这篇小评论包括进来. 但一旦发布,我会再看一看. 我最好的建议是在Wildform解决报告的问题之前不要进行beta测试.
Telestream集
Telestream集有一个非常简单的WebM编码接口,可以产生非常高质量的文件, 但它在谷歌浏览器上有一些令人担忧的交互播放问题. 我打字的时候,电视直播正在追踪, 虽然, 所以我猜这个问题会在短期内得到解决.
在价格方面, 《百家乐软件》有三个版本:, 专业版($995), 和插曲引擎(3美元),995). Episode支持最少的高端格式,并一次对每个文件进行编码,或者串行编码. 插曲Pro可以输入和输出专业格式,如MXF, GXF, IMX, 和MPEG-2传输流并并行编码两个文件. 插曲引擎可以编码尽可能多的文件,同时你在首选项中指定, 哪一个受限于计算机的核数. 我测试了Episode Pro.
正如前面提到的, Episode Pro的WebM编码接口非常简单, 根本没有特定于webm的编码参数. 您可以选择正常的参数,如数据速率, 关键帧间隔, 和比特率控制(VBR或CBR), 但差不多就是这样了.
This doesn't mean that Episode doesn't use WebM's encoding intricacies; it just means that Episode deploys them behind the scenes and shields you from the complexity. 作为一个流媒体视频顾问, 当然, 我讨厌这种方法——更复杂意味着更多的客户. 但是对于用户来说, 它是理想的, 特别是因为Episode的输出质量非常接近谷歌生成的命令行输出.
![图6 图6](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9969.jpg)
图6. Episode Pro的文件与谷歌通过命令行编码工具生成的文件无法区分.
需要说明的是,尽管大多数对比框看起来都像 图6,如果你在足够多的地方仔细观察,命令行会胜出. 但在实时回放时,网络浏览者不会注意到有什么不同. 如果观看者在Chrome中播放视频, 然而, 把播放头拖到视频中的不同位置, 在某一时刻, 他们最后看到的东西看起来像 图7. 有趣的是, Opera浏览器和Firefox都没有出现这个问题, 但它在Windows和Mac电脑上的Chrome浏览器都没有失败.
![图7 图7](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9970.jpg)
图7. 如果你拖播放头周围的WebM视频制作的插曲Pro在谷歌浏览器, 这是你会看到的.
幸运的是, Telestream能够复制这个问题,并在我们发稿时与谷歌进行了核实. 请回到StreamingMedia.请在阅读本文后查看此问题是否/何时解决.
索伦森挤压
回顾《百家乐软件app最新版下载》之前, 看起来我注定要报告命令行编码是唯一能与谷歌的质量相媲美的方法. 幸福的, 虽然生孩子并不容易, 我能够通过使用Squeeze广泛的webm相关编码控制来复制谷歌的质量. 虽然不是免费的, 如果您正在寻找一个基于gui的WebM编码工具,它可以很好地访问WebM的编码控件, 非常高质量的流, 编码速度快, 是挤吗?.
我测试了售价799美元的Squeeze 7版. 虽然技术上还在测试阶段, 我在这个程序中没有遇到任何技术问题, WebM输出质量实际上优于版本6.5、最后发布的版本.
Squeeze接口实现了参考命令行编码器中可用的大多数WebM编码选项. 如果您检查编码参数www.webmproject./tools/encoder-parameters与所示的 图8,您将看到大多数功能都可以在Squeeze界面中理解.
![图8 图8](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9971.jpg)
图8. Squeeze的全面的WebM编码接口
在我最初尝试使用Squeeze时, 我的测试编码基于WebM预设, 更改主要是为了纳入我的数据速率目标. 生成的质量很好,但与谷歌命令行文件相差甚远. 在我的审查期间,Sorenson正在创建WebM文档并修改其预设. 用后来的预设和一点调整, 我能够制作出最高质量的文件, 编码时间是评测中最快的.
如果您使用测试文件的时间足够长, 你知道总会有特定的框架和区域将假选手和竞争者区分开来, 这个框架显示在 图9 就是这样吗?. 在现场, 滑板手刚跑完一圈,正站在栅栏前, 所以这个场景结合了快速运动和精细的细节. 这两个文件的画面是我所见过的最接近的,几乎无法区分. 扫描HD和SD测试文件的整个过程产生了相同的结果.
![图9 图9](http://rb.ecohomemade.com/Images/ArticleImages/ArticleImage.9972.jpg)
图9. Squeeze最接近于匹配命令行编码器提供的帧质量.
我想这没什么好惊讶的. 执行编码的谷歌工程师说,他一字不差地使用了WebM项目网站上的建议, 就像我完成挤压的设置时做的那样吗. 虽然我使用挤压界面来应用相同的参数, 它们是相同的参数, 结果几乎相同. 基本上, 如果您想在一个漂亮的GUI界面中包装命令行编码器的精度和灵活性, 是挤吗?.
如果你不想花这枚硬币, 请放心,通过使用WebM项目网站上提供的命令行编码工具,您可以生成相同质量的代码. 谷歌很好地记录了各种选项,并提供了示例参数, 所以你应该没有问题开始或迅速取得良好的结果.
1月时 是否经常为行业杂志和网站就数字视频相关主题发表文章. 他的博客地址是 www.streaminglearningcenter.com.
相关文章
IE9用户现在可以同时流式传输H.264和WebM内容,在谷歌的一点帮助下.
3月16日
HTML5和HTML5视频的解释, 包括历史, 专利问题, 以及苹果目前的使用情况, 微软, 谷歌, Adobe, 和其他人.
2011年3月10日
MPEG LA对专利的要求可能会对WebM格式造成严重损害,并导致业界对H标准的标准化.264. 让我们希望!
2011年3月7日
《索伦森挤压》的最新版本并不完美, 但它仍然是市场上最好的桌面转码工具.
1月25日
第四个曲目,专门针对HTML5,已经添加,没有额外的费用.
2011年1月21日
HTML5视频世界是碎片化的, 但最近的一个网络研讨会解释了内容提供商如何为它做最好的准备.
1月19日
专家们抨击谷歌放弃H.在Chrome浏览器中支持WebM,支持264. 但是如果全h.264世界并不像人们说的那样美好?
1月18日
与WebM, 谷歌没有创造任何新的收入机会, 开拓新市场或扩大蛋糕的规模. 他们只是让你的份额变得更贵了, 所有这些都是对“开放编解码器技术”的高度追求."
1月12日
该标准机构永久延长了从2015年起对用户免费的互联网视频免版税许可
8月26日
谷歌决定以WebM的形式开放VP8的源代码,这是另一场编解码器大战的序幕. 我们来看看编码效率, 输出质量, 以及播放WebM和H所需的CPU马力.264.
7月30日
提及的公司及供应商