开放视频编解码器和质量

这是 Greg Maxwell 撰写的一篇博文的转载(经许可),该博文是对 Google 的 Chris DiBona 在 WhatWG 邮件列表 中的评论做出的回应。讨论的编解码器与我们即将包含在 Firefox 3.5 中的编解码器相同,并且也是 Mozilla、维基百科和其他机构一直在投资的编解码器

最近的 Google Chrome 开发者版支持这些编解码器,Opera 的未来版本也将支持它们。如果您安装了 Xiph Qt 组件,则 Theora 和 Vorbis 也可在 Safari 中使用。我们正迅速达到所有现代浏览器都支持这些开放编解码器并完全支持 video 标签 的程度。

您会注意到 Greg 的博文没有营销文档的语气——它并非旨在如此。这也不是对高清尺寸、高比特率视频的比较。相反,它试图对开放编解码器与世界上最大的视频网站上常用的格式和尺寸相比的表现给出诚实的比较。我认为您会同意 Greg 在文档末尾得出的结论,尤其是在 Vorbis 真正闪耀的音频方面。

以下是 Greg 的博文。

目的

2009 年 6 月 13 日,Google 的 Chris DiBona 在 WhatWG 邮件列表上做出了 一个引人注目的声明

“如果 [youtube] 切换到 Theora 并维持当前 YouTube 质量的哪怕一点表象,它将占用互联网上大部分可用的带宽。”

不幸的是,开放视频格式经常受到 FUD 的影响,以至于人们愿意相信这种大胆的断言,而不会要求提供证据。

在本比较中,我将证明这一说法是不公平和不合理的。通过一个简单的测试用例,我表明 Theora 具有竞争力,甚至优于 Google 今天在 YouTube 上分发的某些文件。

Theora 目前并不是最有效的视频编解码器。但它绝非糟糕,并且远优于许多其他广泛使用的选项。根据传统标准,Theora 具有竞争力。它还具有不受限制、计算复杂度合理以及完全开源的巨大优势。人们常常对 Theora 未能提供比特率与质量方面的最新技术的正确观察感到困惑,并将其理解为 Theora 表现不佳,而实际上它的表现相当不错。此外,Theora 编码器最近得到了很大改进,因此一些旧问题不再适用。

虽然不同的文件可能会产生不同的结果,但 WhatWG 上提出的指控非常广泛,因此我相信简单的比较可以可靠地证明其谬误。

我不认为 Chris 试图欺骗任何人,只是他与许多其他人一样,是过时和/或不准确信息的受害者。汽车爱好者可能会对两辆汽车之间 5 马力的差异大惊小怪,但对于大多数购车者来说,这些原始性能差异并不相关,甚至对于赛车的人来说也不是最重要的标准。同样,影音发烧友会挑剔压缩格式的质量,这种挑剔对于艺术的进步非常重要。但我认为,人们将这些微小的差异误认为与他们自己的编解码器选择相关的差异。

结果

通过下载服务可以获得 499kbit/sec 的 H.264+AAC 输出和 327kbit/sec 的 H.263(Sorensen Spark)+MP3 输出。YouTube 编码的文件可在 YouTube 网站 上获得。由于 YouTube 上的文件可能会更改,并且 Web 播放器不会公开底层比特率,因此我提供了两个编码文件。

~499kbit/sec 比较

YouTube

下载 (H.264+AAC; 17MiB)

Ogg/Theora+Vorbis

下载 / 观看 (Ogg/Theora+Vorbis; 17MiB)

~327kbit/sec 比较

YouTube

下载 (H.263+MP3; 12MiB)

Ogg/Theora+Vorbis

下载 / 观看 (Ogg/Theora+Vorbis; 12MiB)

Theora+Vorbis 测试用例使用了略低的比特率,以避免出现由于较大输出导致的质量改进问题。
为了进行公平的比较,您必须同时比较音频。即使没有音频差异,静止图像比较也是视频质量的糟糕替代品。
我仅提供此随机帧静止图像比较,因为我希望人们在没有证据表明结果有趣的情况下不会费心观看示例。

方法

为了避免在选择 H.264 编码器和编码选项时出现任何可能的偏差,并最大程度地提高与此特定问题的相关性,我使用了 YouTube 本身作为 H.264 编码器。这并非理想之选,因为 YouTube 不接受无损输入,但它接受任意高比特率输入。

我利用 Blender 基金会的 大雄兔 作为我的测试用例,因为它具有明确的许可状态,因为它是一个现实世界的测试用例,并且因为我以无损格式拥有它。我不知道有任何理由表明此特定剪辑会偏向 Theora 或 H.264。

我选择使用带声道的测试用例,因为大多数实际使用都包含声音。没有人会在没有音频的情况下实现 HTML5 视频,也没有人在没有 Theora 或 Vorbis 的情况下实现另一个。Vorbis 处于领先地位的性能是整体 Ogg/Theora+Vorbis 解决方案的贡献因素。

  • media.xiph.org 获取无损 640×360 大雄兔源 PNG 和 FLAC。
  • 使用 ImageMagick 的 convert 实用程序将图像重新采样到 480×270。
  • 使用 gstreamer 的 jpegenc,生成质量为 100 的 mjpeg + PCM 音频流。结果约为 1.5Gbytes,比特率约为 20Mbit/sec。
  • 截断文件以使其低于 YouTube 1Gbyte 的限制,生成 input_mjpeg.avi (706MiB)。
  • 将文件上传到 YouTube 并等待其转码。
  • 使用众多 Web 下载服务之一下载 YouTube 生成的 FLV 和 H.264 文件。(我使用了 keepvid
  • 使用 libtheora 1.1a2 和 Vorbis aoTuv 5.7 从上传到 YouTube 的同一文件 (input_mjpeg.avi) 生成与 youtube 499kbit/sec 比特率相当的文件。
  • 将上传到 YouTube 的文件重新采样到 400×226。
  • 使用 libtheora 1.1a2 和 Vorbis aoTuv 5.7 从 input_mjpeg.avi 的 400×226 降采样副本生成与 youtube 327kbit/sec 比特率相当的文件。

我后来发现 YouTube 有时会提供其他尺寸。我尝试了 youtube-dl 实用程序,它表明我的文件不可用这些其他尺寸。否则,我还会将它们包含在本比较中。

Theora 编码使用了 250 帧的关键帧间隔。使用的 theora 1.1a2 编码器软件可从 theora.org 获取。使用的 Vorbis 编码器可从 aoTuV 网站获取。未执行任何软件修改。

我的结论

在低比特率下比较视频可能很困难,即使 YouTube 的更高比特率选项也无法达到良好的质量。主要挑战在于,所有这些速率下的文件都将存在问题,因此评论者常常被迫决定哪两种完全不同的缺陷更糟糕。有时人们会得出不同的结论。

也就是说,我相信 Theora+Vorbis 的结果远优于 YouTube 327kbit/sec。其他一些人也向我表达了相同的观点,而且我希望您也会得出同样的结论。这并不奇怪,因为我们一直在告诉人们 Theora 优于 H.263,尤其是在较低比特率下,而 YouTube 仅使用 H.263 的子集。

低比特率情况还受益于 Vorbis 相比 MP3 的显著优势。例如,低速率 YouTube 剪辑中开头处的蟋蟀声音听不见,但在 Ogg/Theora+Vorbis 版本中听起来很好。

在 499kbit/sec H.264 的情况下,我相信在仔细比较后,许多人会更喜欢 H.264 视频。但是,差异并不算太大。我预计大多数休闲用户不太可能表达偏好或抱怨质量,如果一个被替换为另一个,并且我已经让几个人对文件进行了随意比较并表示漠不关心。由于 Theora+Vorbis 提供了如此可比的结果,我认为我可以自信地说,互联网即将灭亡的报道被大大夸大了。

当然,YouTube 可能正在使用劣质的处理链或编码选项,这些选项会牺牲质量以换取其他一些理想的特性(如更好的寻道粒度、编码速度或特定的速率控制模式)。但即使如此,我们也可以得出结论,采用开放的、不受限制的格式来补充或替代其当前产品不会导致质量或比特率方面的问题。

但请——亲自看看和听听。

——Greg Maxwell

关于 Christopher Blizzard

一次发布,让网络更美好。

更多 Christopher Blizzard 的文章……


27 条评论

  1. […] Ogg 家族与 YouTube 目前使用的 H.263 的比较。 http://ur1.ca/5pre 我希望 Google 能支持开放 […]

    2009 年 6 月 15 日 07:40

  2. 问题

    我不知道 Youtube 是使用 1 通道还是 2 通道。如果视频以 2 通道 @ 高配置文件级别 5.1 进行编码,我认为结果可能会略有 (?) 不同。

    2009 年 6 月 15 日 08:43

  3. Christopher Blizzard

    @问题 - 这不是关于如何从编码器中挤出每一丁点的问题。完全不是重点。它是关于 YouTube 今天如何进行编码以及我们的编码器与人们对特定带宽预期看到的编码相比如何。推测 YouTube 如何改进其编码很好,但这并不是我们现在关心的。他们如何编码就如何编码。

    2009 年 6 月 15 日 08:54

  4. CHL

    我认为 Google 宣称的是,由于他们已经将所有视频存储在 H.263/H.264(或任何非 Theora 格式)中,重新编码将引入更多压缩伪像,并且减少这些伪像的唯一有效方法是以不切实际的高比特率重新编码为 Theora。

    2009 年 6 月 15 日 09:16

  5. Christopher Blizzard

    @CHL Google 完全没有这样宣称。他们说,使用和交付 Theora 需要以比等效的 H.263 和 H.264 高得多的比特率对视频进行编码。而此演示表明并非如此——大致相同。

    2009 年 6 月 15 日 11:08

  6. Maik Merten

    有些人喜欢指出 YouTube 很可能没有使用“最佳编码选项”(超高质量设置或 2 通道编码)。但是,这样做的原因是合理的:YouTube 每分钟都要编码海量的内容,因此他们需要快速的编码器,并且负担不起将输出调整到最大质量(例如,进行 2 通道或 3 通道编码会使编码时间翻倍/三倍——H.264 编码*非常*占用处理资源)。这完全是关于以可承受的成本提供“足够好”质量的经济学。看来 Theora 也可以提供不错的质量/计算比,因为 Theora 的计算复杂度较低(因此您不必降低编码质量以获得可承受的速度)。

    这并不意味着 H.264 作为一种压缩格式在可实现的压缩性能方面受到质疑,它只是指出在在线流媒体的经济学中,其他因素也起着重要作用。

    2009 年 6 月 15 日 12:22

  7. Michael Kozakewich

    看起来很棒。
    我最近在某个地方看到了一些帖子,展示了 Theora 在过去一段时间取得的进步。有两个 Theora 屏幕截图,较新的那个要好得多。
    我能看到它的未来一片光明。

    2009 年 6 月 15 日 12:34

  8. […] en si este nuevo estandar ofrecerá la misma cálidad que los formatos existentes. De ahí que via hacks.mozilla.org descubra una comparativa [部分翻译] de el nuevo formato Ogg Theora+Vorbis(MP3),un estandar abierto y disponible […]

    2009 年 6 月 15 日 16:00

  9. Olly

    这些都是很棒的东西。

    假设我刚给自己买了一台闪亮的新 MacBook。我在摄像机上录制了一些内容,将其导入 iMovie,进行了一些编辑,现在我想将其导出为 Theora+Vorbis 格式以放到我的网站上。我该如何操作?请记住,我甚至不知道终端是什么 :)

    其次,我的朋友们都使用 Windows 电脑和 iPhone。有没有办法将这些视频嵌入页面以便他们能够观看?是否建议也将其导出为 H263/4,以便 Flash Player / Quicktime / iPhone 也能观看?

    (这些内容会在 Mozilla Hacks 的未来文章中出现吗?)

    2009 年 6 月 15 日 16:40

  10. Christopher Blizzard

    @Olly - 这些都是很好的问题。对于导出到 ogg/theora,您可以使用 xiph quicktime 组件

    http://www.xiph.org/quicktime/

    刚刚发布的 0.19 版本修复了 iMovie 08 的一些问题。其他操作系统有时需要其他格式的视频(尤其是移动设备),但这里有一个很好的概述

    http://reports.graymattergravy.com/2009/06/02/video-tag-embed-with-fallbacks/

    2009 年 6 月 15 日 19:22

  11. […] 原文地址:open video codecs and quality 系列地址:颠覆网络35天 […]

    2009 年 6 月 15 日 23:09

  12. dave

    我很高兴看到质量问题如此公开地得到解决,但我对允许以这种方式构建辩论持谨慎态度。Theora 和 Vorbis 不仅仅是“足够好”,据我所知,Vorbis 处于领先地位(能够在各自最佳状态下挑战 AAC 和 AAC+),但选择它们的原因是因为它们支持开放网络。

    根据 Adobe 的说法,我甚至无法观看他们通过 Flash 传输的 H.264 视频,除非是为了我“自己的非商业”目的。

    http://labs.adobe.com/wiki/index.php/Flash_Player:9:Update:H.264#Q:_What_parts_of_the_H.264_license_are_included_when_I_buy_Adobe_Products.3F

    Ben Waggoner 在 Slashdot 上指出,YouTube 视频长度限制为 12 分钟是与许可证相关的问题。为什么我们要接受对网络视频如此武断的限制?如果 Google 付不起钱,维基百科或您当地的大学又该怎么办呢?

    http://tech.slashdot.org/comments.pl?sid=1268327&cid=28329643

    关于 HTML5 的编解码器选择存在持续的争论,但我找不到任何关于作为消费者或生产者,我能够使用和不能使用 H.264/AAC 的内容以及这将花费我多少的易于理解的解释。围绕 H.264 许可的一切都假设您要么是大型商业电视台或点播视频制作人,要么是被动地消费电视和电影的消费者。仅此一项就足以使其与开放网络的精神背道而驰。

    如果我想在网上发布带有幽默字幕的猫的视频?或者讲座视频?目前看来,我可能需要在明年之后每年支付高达 10,000 美元的费用,但正如我所说,这个问题非常模糊,因此实际上不清楚这是否属实。

    2009 年 6 月 16 日 03:30

  13. Asa Dotzler

    Olly,我写了一个简单的教程,应该可以帮助你很多。请参阅 https://air.mozilla.com/exporting-to-open-video/

    2009 年 6 月 16 日 12:19

  14. Jacob

    我不太明白为什么 YouTube 视频必须绝对在其服务器上进行编码。如果他们拥有某种小程序,可以在支持它的操作系统上客户端对视频进行编码,并且只对不支持的操作系统进行传统的服务器端编码,则可以大大减少他们所需的处理能力并提供更好的质量结果。哎呀,如果他们这样做,让他们提供一个选项来让我们使用多遍编码,甚至如果我们想要的话使用 Theora,也将是一个明智的决定。我是否遗漏了什么,或者客户端编码是否是一个合理的解决方案?

    2009 年 6 月 16 日 16:07

  15. […]几天前,我们发布了 Greg Maxwell 对低分辨率和中分辨率 YouTube 视频与相同比特率下的 Theora 对等体的比较。[…]

    2009 年 6 月 16 日 21:25

  16. Natanael L

    Dave:“Ben Waggoner 在 Slashdot 上指出,YouTube 视频长度限制为 12 分钟是与许可证相关的问题。为什么我们要接受对网络视频如此武断的限制?如果 Google 付不起钱,维基百科或您当地的大学又该怎么办呢?”
    哈哈!所以这就是他们有*那个*限制的原因?好吧,那对他们来说太糟糕了。但我还是会继续使用 Gnash 等工具观看视频。

    Jacob:好吧,这取决于视频。并非每个人都安装了 Java,但对于那些安装了 Java 的人,它可以检测到并询问他们是否希望在本地重新编码或让 YouTube 执行编码。
    我认为大多数人不会自己动手,除非有一个“强烈推荐!”作为默认选项,并在下方添加文字“否则会丢失太多质量”,如果所有内容都必须由服务器编码。并且该选项必须是一个合理的选项。
    例如,由于许可证和我在评论的博文,使用 OGG Theora/Vorbis。

    2009 年 6 月 17 日 00:57

  17. Christopher Blizzard

    @Jacob – 如果你去查看 firefogg.org,你可以看到一个 Firefox 扩展,你可以用它在客户端转码视频。此外,网站可以要求你的电脑进行转码,然后上传生成的 .ogv 文件。它实际上非常棒。

    2009 年 6 月 17 日 05:46

  18. […]Maxwell 发布了关于他使用 Ogg Theora 的质量体验以及真实案例的帖子,Chris Blizzard 将其与 35 天的发布联系起来,并提供了以下导语:正在讨论的编解码器与我们将包含的编解码器相同[…]

    2009 年 6 月 17 日 06:24

  19. […]en si este nuevo estandar ofrecerá la misma cálidad que los formatos existentes. De ahí que via hacks.mozilla.org descubra una comparativa [Traducción parcial] de el nuevo formatoOgg Theora+Vorbis(MP3),一个开放且可用的标准[…]

    2009 年 6 月 17 日 15:11

  20. […]Maxwell 发布了关于他使用 Ogg Theora 的质量体验以及真实案例的帖子,Chris Blizzard 将其与 35 天的发布联系起来,并提供了以下导语:正在讨论的编解码器与我们将包含的编解码器相同[…]

    2009 年 6 月 18 日 00:05

  21. […]Maxwell 发布了关于他使用 Ogg Theora 的质量体验以及真实案例的帖子,Chris Blizzard 将其与 35 天的发布联系起来,并提供了以下导语:正在讨论的编解码器与我们将包含的编解码器相同[…]

    2009 年 6 月 18 日 01:26

  22. […]Maxwell 发布了关于他使用 Ogg Theora 的质量体验以及真实案例的帖子,Chris Blizzard 将其与 35 天的发布联系起来,并提供了以下导语:正在讨论的编解码器与我们将包含的编解码器相同[…]

    2009 年 6 月 18 日 15:34

  23. moe

    我正在并排以正常缩放观看视频。

    在这些测试用例中,有一些非常细微但明显的差异,我认为 Theora/Vorbis 比 H.263/MP3 更好。它似乎有时具有更好的色彩或更鲜明的对比度。此外,一些非常高细节的区域往往更清晰,而在 H.263 上则模糊不清。我注意到的另一个关键区别是天空中的渐变:H.263 有一些严重的“色带/宏块”,而 Theora 则是一个不错的平滑颜色转换。1.1a2 真正改善了 Theora 的“不足”。

    基本上,如果有一天所有 YouTube 视频突然都采用 Theora/Vorbis 格式,我认为观众普遍的共识将是“没有区别或略好”在所有或大多数情况下。Theora 是开放网络视频的绝佳候选者。

    2009 年 6 月 24 日 07:28

  24. jon

    当然,您知道 Theora 基于 On2 VP3,对吧?

    http://en.wikipedia.org/wiki/Theora

    您是否知道 VP8 即将发布?
    只是问问,因为这里根本没有提到 ON2,我觉得这至少有点奇怪。

    2009 年 6 月 27 日 12:01

  25. […] 原文地址:open video codecs and quality 系列地址:颠覆网络35天 […]

    2009 年 7 月 21 日 23:57

  26. Firefox 3.5 支持开放视频格式……

    新的 Firefox 3.5 现在支持开放视频格式。这意味着什么?Firefox 现在支持 Theora,这是一种真正免费且开放的互联网视频格式。这意味着我们将不得不放弃专有插件或受限编解码器……

    2010 年 1 月 10 日 17:43

  27. albinoz

    真的吗?

    H263 是一种旧的编解码器,与 Ogg 相比,无法进行比较。
    使用 h264 或 x264 进行相同的测试,您会发现随着尺寸的增大,颜色还原+质量会更好……

    Ogg 不支持高清……
    Vorbis 的质量几乎与 mp4 相同,但确实比 mp3 好。

    因此,现在使用 Ogg 太晚了。
    现在 avc 变得更好,这与 H263 没有可比性,这不会改变我的观点,但让我发笑。

    这是一个很好的编解码器,但我们不会再回头了……

    2010 年 2 月 5 日 01:56

本文的评论已关闭。