如何在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/