原文地址:open video codecs and quality
系列地址:颠覆网络35天
====================================
这篇文章是Greg Maxwell最初发表在在whatwg邮件列表上回应来自Google的Chris DiBona的一篇评论。在这次讨论中针对的编码同我们在Firefox 3.5中包含的编码是一样的,并且这种编码也是Mozilla、Wikipedia等很多机构一直投入很多精力研究和实现的。
最新的Chrome开发渠道的Nightly构建开始支持这些编码,在不久的将来,Opera也会提供支持。在安装Xiph Qt组件之后,Theora和Vorbis在Safari上也能够使用。很快,我们就能够在所有现代浏览器上完全支持这些开放的视频编码,开发人员对视频的引用仅仅需要使用HTML 5的video标签。
Greg在文章中不会包含很多营销辞令。这也不是一次针对高清视频的比较。相反,我们试图做一次非常诚实的比较,开放视频的编码如何迎战目前最常用的视频格式──他们正在被世界上最大的视频服务网站广泛使用。我想你会在最后同意Greg的结论,尤其是在使用音频时,Vorbis真的超人一等。
接下来就是Greg的文章。
目标
在2009年6月13日,来自Google的Chris DiBona在WhatWG邮件列表中说了一句惊世骇俗的结论:
“如果Youtube决定切换到theora格式但是还想保持在现有视频质量的话,他会占用全世界所有的带宽”
不幸的是,开放式视频格式日渐频繁的提交到FUD上去,以至于人们更愿意相信这种大胆的结论而不愿意去证明真实性。
在这篇文章中,我会展示上面这个结论是多么不公平、不合理、不切实际。使用简单的测试用例,我就可以向大家证明Theora格式非常具有竞争力甚至要比目前在Youtube上发布的某些格式要先进很多。
Theora并不是目前为止最有效的视频编码。但是他也并不坏,甚至要比很多目前被广泛使用的视频编码好很多。同时,Theora在计算复杂性方面还具有很大的潜力,而且是完全开源的项目。虽然Theora并不能代表解决比特率和质量问题的最优方案,但是Theora编码器在最近获得了很大的改进和提升。
结果
我们来比较两种不同格式和比特率的视频输出,一个是499kbit/sec H.264+AAC,另一个是327kbit/sec H.263(Sorensen Spark)+MP3输出,在下面的下载部分您可以下载到。Youtube编码后的视频在这里。因为Youtube可能会改变比特率或者网页中的视频播放器不显示比利率,我这里也提供编码后的文件。
~499kbit/sec对比
YouTube

下载 (H.264+AAC; 17MB)
Ogg/Theora+Vorbis

下载/观看 (Ogg/Theora+Vorbis; 17MB)
~327kbit/sec对比
YouTube

下载 (H.263+MP3; 12MB)
Ogg/Theora+Vorbis

下载 / 观看 (Ogg/Theora+Vorbis; 12MB)
在Theora+Vorbis测试用例中使用了稍微低一点的比特率,用来避免由于输出文件过大带来的质量改进方面的问题。
同样,我们也需要比较音频。即便在音频上没有差异,图像的比较也可以作为视频质量比较的某个标准,虽然不太精确。
方法
为了避免在选择H.264编码器和编码选项上可能出现的偏差,我使用了Youtube自己的H.264编码器。虽然不是最好的方法──因为Youtube不接受无损输入,但是他接受任意大小的比特率输入。
我利用Blender基金会的“Big Buck Bunny”作为我的测试用例。
我也选择使用包含音频轨道的测试用例。目前还没有人实现了不包括音频的HTML5 video标签,当然都是同时实现Theora和Vorbis。Vorbis顶尖水准的性能大大提升整体Ogg/Theora+Vorbis解决方案的性能。
- 从media.xiph.org获取无损640×360的“Big Buck Bunny”源PNG和FLAC文件。
- 使用ImageMagick的转换应用抽样图片到480×270。
- 使用gstreamer的jpegenc制作quality=100的mjpeg + PCM音频流。结果是差不多1.5GB大小的文件,但是拥有超过20Mbit/sec左右的比特率。
- 把文件截断到Youtube的1GB限制,结果为input_mjpeg.avi (706MB)。
- 上传到Youtube然后等待转码。
- 下载Youtube生成的FLV和H.264文件。(我使用keepvid下载的。)
- 使用libtheora 1.1a2 和 Vorbis aoTuv 5.7制作相应499kbit/sec比特率的文件,使用的源文件为input_mjpeg.avi。
- 重新取样上传到Youtube的文件到400×226。
- 使用libtheora 1.1a2 和 Vorbis aoTuv 5.7制作相应327kbit/sec比特率的文件,使用源文件为刚才重新取样缩小的样本input_mjpeg.avi。
我后来发现,Youtube有时也提供额外大小的视频。我使用youtube-dl应用,该应用可以显示Youtube为我的文件都提供什么样大小的视频。
我的结论
在低比特率下比较视频应该是不太现实的,而即便是Youtube的高比特率选项也不足以提供很好的质量。最主要的挑战就是在这些比特率下的文件都会有问题,所以评论人员只能在小矮人中选高个。
我相信同Youtube 327kbit/sec这个比特率上,Theora+Vorbis的结果要好很多。也有其他一些人表达了类似的想法,我希望你也能够有这样的结论。我们也一直在告诉人们其实Theora要比H.263好很多,尤其是在低比特率情况下。而Youtube在某些情况下仅仅才使用H.263的子集。
在低比特率情况下,Vorbis的性能和质量要远远高于MP3。例如,在低比特率Youtube片段开始有一段蟋蟀的声音完全听不见,而在Ogg/Theora+Vorbis版本中非常清楚。
在499kbit/sec H.264的测试用例中,我相信在仔细的比较下,很多人会更喜欢H.264的视频。不过,这个差别并不是那么明显。当然,Youtube可能采取了不同的处理流程,或者可能使用牺牲掉一些质量来换取其他特性的编码选项(例如更好的定位播放、编码速度等)。但是总的来说,Youtube使用开放的视频格式来替代掉现在的方案并不会造成问题,也不会造成视频质量或者比特率的丢失。
不过真得建议您亲身观看和聆听一下~~
Trackbacks/Pingbacks (2)
[…] 两天前,我们在博客上发布了Greg Maxwell比较了Youtube和Theora在相同比特率下低和中解析情况下视频的质量。最终测试的结果表明Theora在低比特率情况下要更好一些。结论就是Theora格式完全适合于类似于Youtube这样的视频网站。 […]
[…] 两天前,我们在博客上发布了Greg Maxwell比较了Youtube和Theora在相同比特率下低和中解析情况下视频的质量。最终测试的结果表明Theora在低比特率情况下要更好一些。结论就是Theora格式完全适合于类似于Youtube这样的视频网站。 […]