如何在Firefox上使用HTML5 h.264video?

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

我使用此测试网站和YouTube HTML5页面validationh.664支持在我的Ubuntu 12.04 64位上的Google Chrome中有效,但在Firefox 26上无效。

对于12.04 / 14.04

刚刚访问过HTML5 Youtube测试,我已经检查过H.264; 您可能需要安装Ubuntu受限制的额外内容才能获得gstreamer编解码器。

 sudo apt-get install ubuntu-restricted-extras 

在此处输入图像描述

14.04

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

因此,在此期间,您可以在适当的架构中安装来自saucy的gstreamer0.10-ffmpeg:

Firefox 33及更高版本

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

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

虽然这确实是一个非常方便的解决方案,但是当软件自动从与Cisco Systems或其他公司相关的站点下载二进制文件时,它也应该引起隐私和安全问题,无论流程和许可协议的透明程度如何。

没有直接相关但如果您希望在Firefox关闭时自动删除cookie而无法找到正确的cookie来保持HTML5持续播放,那么我建议安装YouTube所有HTML5 。

使用14.04.2和15.04 VM进行测试

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

  • 安装过程中安装了限制插件的Ubuntu 14.04.2
  • Ubuntu 15.04在安装过程中没有安装限制插件

完成两个VM的安装后,我启动了系统,再次更新它们,安装了VM guest虚拟机添加,首次启动Firefox并重新启动以进行实际测试。

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

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

14.04.2有限制插件

在此处输入图像描述

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

15.04没有限制插件

在此处输入图像描述

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

在此处输入图像描述

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

     media.fragmented-mp4.exposed;false media.fragmented-mp4.gmp.enabled;false 

    将这些设置为true无效。 我试过的其他设置:

    • media.audio_data.enabled;true无效。
    • media.mediasource.enabled;true Vimeo之前未使用过MSE,启用这些和相关设置无效。
    • media.fragmented-mp4.use-blank-decoder;true result:一个纯绿色canvas和一个恒定的正弦波音频信号。

15.04 限制插件

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

在此处输入图像描述

正如预期的那样,如果您之后安装受限制的插件包,一切正常,但您可能希望将Flash插件设置为Firefox以外的其他插件,以确保使用HTML5video。

分析或只是让它破裂

在此处输入图像描述

显然gstreamer1.0-libav是您需要删除以获取错误消息的唯一包。 那么它是使用libav的AAC解码器吗? 我没有深入挖掘以找到相关证据,也没有找到首选的解码器(例如,如果OpenH264目前在Linux上有任何用途),或者Vimeo因为其他依赖性未得到满足而抛出此错误消息正在安装.264和AAC解码器。

总结和outlook

总而言之,回放当前的主流内容不仅需要H.264解码器,还需要AAC解码器,H.265已经准备好取代旧版本。 另外,在可预见的未来,我没有看到将具有H.264的MP4的相应规范改为推荐更加开源友好的音频编解码器。

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

Firefox目前仅将OpenH264用于WebRTC而不用于video标签,因为OpenH264还不支持经常用于流video的高配置格式。

资料来源: http : //andreasgal.com/2014/10/14/openh264-now-in-firefox/

gstreamer1.0-libav可能是在Firefox for Linux中添加对H264 HTML5video标记的支持的唯一选项。

使用Firefox30,您必须安装gstreamer 1.0 。 你还应该安装大多数插件:坏,丑,……

不要混淆包名,你应该安装: gstreamer1 ,而不是gstreamer( 一个/ 1号是包的一部分,而不是“版本”)。 所有插件都适用相同的规则:“gstreamer1-plugins -…”

这是一个更完整的url,用于测试您的浏览器html5function和编解码器支持: http : //html5test.com/