根据Firefox 26 发行说明,h.264 视频现在应该可以在 Linux 中工作了。它还说需要安装适当的 gstreamer 插件。有人知道这些是什么吗?
我用过这个测试站点和YouTube HTML5 页面验证 h.264 支持是否在我的 Ubuntu 12.04 64 位上的 Google Chrome 中有效,但在 Firefox 26 上无效。
答案1
适用于 12.04 / 14.04 / 18.10
刚刚访问了 HTML5 Youtube 测试并且我已经检查了 H.264;您可能需要安装 Ubuntu 限制附加功能才能获取 gstreamer 编解码器。
sudo apt-get install ubuntu-restricted-extras
您可能需要重新启动。
答案2
对于 14.04
上述解决方案不再适用于 Trusty Tahr 14.04。原因是软件包 gstreamer0.10-ffmpeg 已被 gstreamer1.0-libav 取代,但 Firefox 计划仅在版本 30 中支持 gstreamer 1.0。
因此,与此同时,您可以在此处从 saucy 安装适合您的架构的 gstreamer0.10-ffmpeg:
答案3
Firefox 33 及更高版本
Mozilla 增加了对OpenH264作为插件Firefox 33. 要启用此插件 Firefox 现在将自动地从下载二进制文件OpenH264 网站第一次启动该程序时。
那声音很棒,不是吗?等等……这是个双关语。
虽然这确实是一个非常方便的解决方案,但当软件自动从思科系统或其他公司附属的网站下载二进制文件时,它也应该引发隐私和安全问题,无论流程和许可协议多么透明。
不直接相关,但如果您希望在 Firefox 关闭时自动删除 cookie,并且找不到正确的 cookie 来保留以进行持久 HTML5 播放,那么我建议安装YouTube 全部 HTML5。
使用 14.04.2 和 15.04 VM 进行测试
我猜想仅安装 H.264 解码器二进制文件是不够的,因此我设置了 2 个新的虚拟机:
- 安装过程中安装了受限附加组件的 Ubuntu 14.04.2
- Ubuntu 15.04没有安装过程中安装的限制插件
两个虚拟机的安装完成后,我启动了系统,再次更新了它们,安装了虚拟机客户机添加程序,首次启动了 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
设置这些
true
没有效果。我尝试了其他设置:media.audio_data.enabled;true
没有效果。media.mediasource.enabled;true
Vimeo 之前没有使用 MSE,启用这些设置和相关设置没有效果。media.fragmented-mp4.use-blank-decoder;true
结果:纯绿色画布和恒定的正弦波音频信号。
15.04和受限制的附加组件
一个聪明的方法是安装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 的竞争者。
答案4
使用 Firefox30 你必须安装 gstreamer 1.0。您还应该安装大多数插件:bad、ugly、……
不要被包名称混淆,你应该安装: gstreamer1,而不是 gstreamer (一/1版本号是软件包的一部分,而不是“版本”)。所有插件都适用相同的规则:“gstreamer1-plugins-...”
这里有一个更完整的 URL,可以测试您的浏览器 html5 功能和编解码器支持: http://html5test.com/