如何让 HTML5 h.264 视频在 Firefox 上工作?

Har*_*rel 33 firefox gstreamer

根据Firefox 26发行说明,h.264 视频现在应该可以在 Linux 中运行了。它还说需要安装适当的 gstreamer 插件。有谁知道这些是什么?

我使用这个测试站点YouTube HTML5 页面来验证 h.264 支持在我的 Ubuntu 12.04 64 位上的 Google Chrome 中有效,但在 Firefox 26 上不起作用。

xan*_*gua 34

12.04 / 14.04 / 18.10

刚刚访问了 HTML5 Youtube 测试,我检查了 H.264;您可能需要安装受 Ubuntu 限制的附加功能才能获得 gstreamer 编解码器。

sudo apt-get install ubuntu-restricted-extras
Run Code Online (Sandbox Code Playgroud)

您可能需要重新启动。

在此处输入图片说明

  • 成功了!很简单!我以为我已经安装了...傻我。ubuntu-restricted-extras 软件包安装了以下软件包 `flashplugin-installer gstreamer0.10-ffmpeg gstreamer0.10-fluendo-mp3 gstreamer0.10-plugins-bad-multiverse libfaac0 libmjpegtools-1.9 libnspr4-0d libnss3-1d libuboil0 -受限插件` (2认同)

小智 14

对于 14.04

上述解决方案不再适用于 Trusty Tahr 14.04。原因是 gstreamer0.10-ffmpeg 包已被 gstreamer1.0-libav 取代,但 Firefox 计划仅支持版本 30 的 gstreamer 1.0。

因此,与此同时,您可以在此处为您的适当架构安装来自 saucy 的 gstreamer0.10-ffmpeg:

  • 该链接现在指向 404 (4认同)
  • Firefox 30 现在处于 uptopic -proposed 并通过 `gstreamer1.0-libav` 包支持 .h264。在某些时候它应该出现在 14.04 中,尽管目前我在 14.04 中使用 utopic -proposed 包没有问题。对于尚未移植到 gst-1.0 的应用程序,0.10-ffmpeg 插件将保留在 ppa 中 (2认同)

Liv*_*eBT 9

Firefox 33 及更高版本

Mozilla在Firefox 33 中添加了对OpenH264作为插件的支持。要启用此插件,Firefox 现在会在您第一次启动程序时自动OpenH264 网站下载二进制文件。

听起来很棒,不是吗?等等……那是双关语。

虽然这确实是一个非常方便的解决方案,但当软件自动从附属于 Cisco Systems 或其他公司的站点下载二进制文件时,它也会引起隐私和安全问题,无论过程和许可协议多么透明。

没有直接关系,但如果您更喜欢在 Firefox 关闭时自动删除 cookie 并且找不到正确的 cookie 来保留以进行持久的 HTML5 播放,那么我建议安装YouTube ALL HTML5

使用 14.04.2 和 15.04 VM 进行测试

我的猜测是仅安装 H.264 解码器二进制文件是不够的,所以我设置了 2 个新虚拟机:

  • Ubuntu 14.04.2 在安装过程中安装了受限插件
  • Ubuntu的15.04无需安装过程中安装插件的限制

两个 VM 安装完成后,我启动系统,再次更新它们,安装 VM 来宾添加项,第一次启动 Firefox 并重新启动以进行实际测试。

由于 YouTube 还提供他们的开源WebM格式,我想避免详细介绍测试方法,我需要使用另一个支持 HTML5 的站点来测试专有的 H.264 播放支持。我选择了 Vimeo,因为他们说他们默认使用 HTML5,而且他们似乎不支持 WebM,我认为这不是一件好事。

每当我在测试中进行一些更改时,例如在 Firefox 中安装软件包或启用/禁用某些内容,我都会关闭并再次启动 Firefox。

14.04.2 带有受限插件

在此处输入图片说明

正如您在此屏幕截图中看到的,Firefox 中仅启用了 OpenH264 插件,预装了所有必需的不同版本的 GStreamer 包,并且视频按预期播放。

15.04 无限制插件

在此处输入图片说明

正如您在此屏幕截图中看到的,启用了 OpenH264 插件,没有 Flash 插件,预装了一些不同版本的 GStreamer 包但视频不播放!相反,该网站立即告诉我们无法播放该视频。这是为什么?

在此处输入图片说明

  • AAC不见了!– 简单解释一下,服务器上有一个文件被输入到我们的浏览器中。如果您使用 Firefox 上下文菜单中的检查器查找它,您将找到一个带有 AAC 编码音频的 MP4。错误消息可能更清楚,但这是有道理的,因为我们当前没有安装 AAC 解码器。
  • 更新:再次查看 Firefox 41 的这个问题,我发现 OpenH264 似乎在 about:config 中被禁用:

    media.fragmented-mp4.exposed;false
    media.fragmented-mp4.gmp.enabled;false
    
    Run Code Online (Sandbox Code Playgroud)

    将这些设置为true无效。我尝试过的进一步设置:

    • media.audio_data.enabled;true 没有效果。
    • media.mediasource.enabled;true Vimeo 之前没有使用 MSE,启用这些和相关设置没有任何效果。
    • media.fragmented-mp4.use-blank-decoder;true 结果:纯绿色画布和恒定正弦波音频信号。

15.04带有受限插件

一个聪明的方法是 install gstreamer1.0-plugins-bad-faad,但这并没有使 Vimeo 上的特定错误消息成功,所以让我们安装所有受限制的插件。

在此处输入图片说明

正如预期的那样,一切如果你安装了插件的限制包工程,但你可能要设置的Flash插件才能别的东西比enabled在Firefox中一定要使用HTML5视频。

分析或只是让它打破

在此处输入图片说明

显然,这gstreamer1.0-libav是您需要删除才能恢复错误消息的唯一软件包。所以它使用的是 libav 的 AAC 解码器?我没有深入挖掘以找到证据,也没有寻找首选哪个解码器(例如,如果 OpenH264 目前在 Linux 上有任何用途),或者 Vimeo 是否由于某些其他依赖项没有得到满足而抛出此错误消息,尽管 H .264 和 AAC 解码器正在安装。

总结与展望

综上所述,当前主流内容的播放不仅需要H.264解码器,还需要AAC解码器,H.265已经准备好取代旧的解码器。此外,在可预见的未来,我认为H.264 的 MP4的相应规范不会更改为推荐更开源友好的音频编解码器。

说真的,推动 WebM!VP8 + Vorbis 作为 H.264/AVC 的竞争者,VP9 + Opus 作为 H.265/HEVC 的竞争者。