我不知道从什么时候开始,MP4 视频不再可以在 Firefox 上播放。 Web 控制台中有一条错误消息,指出不支持 HTTP-Content-Type“video/mp4”。
操作系统:OpenSuse Tumbleweed
Firefox 版本:83.0(64 位)
安装的软件包(除其他外):
ffmpeg-4、gstreamer-plugins-libav、libavcodec56、libavcodec57、libavcodec58_91、libavdevice56、libavdevice57、libavdevice58_10、libavfilter5、libavfilter6、libavfilter7_85、libavformat56、libavformat57、libavformat58_45、libavutil54、libavutil55、lib avutil56_51
about:可能很重要的配置设置:
media.ffmpeg.enabled = true
media.mp4.enabled = true
media.mediasource.mp4.enabled = true
尽管如此,我还是在 Konsole 上:
MediaSource.isTypeSupported("视频/mp4") 错误的
还有什么可能需要的吗?基本上它可以工作,因为我的另一台机器上的 Firefox 可以正常运行嵌入式 MP4 视频。
诊断:
按照评论中的建议,我已下载视频并对其运行 ffprobe:
输入 #0, mov,mp4,m4a,3gp,3g2,mj2, 来自 'EprnqfLXYAgJV-e.mp4': 元数据: 主要品牌:mp42 次要版本:0 兼容品牌:mp41isom 持续时间:00:00:02.20,开始:0.000000,比特率:55 kb/s 流 #0:0(und):视频:h264 (avc1 / 0x31637661)、无、200x200、51 kb/s、10 fps、10 tbr、100 tbn、100 tbc(默认) 元数据: handler_name : Twitter v2 输入流 0 不支持 ID 为 27 的编解码器
视频的 Accept 标头也有点可疑,那里没有 mp4(并且我收到状态 206):
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
答案1
OpenSuse 不支持开箱即用的受专利保护的编解码器。
使用任一https://opensuse-community.org/或者http://opensuse-guide.org/codecs.php
答案2
一些可能感兴趣的更精确的信息:
我安装了 vlc-codecs 包及其依赖项并且它有效。然后我再次卸载了 vlc-codecs 软件包,重新启动后它仍然有效。 zypper 的输出给出了一些关于实际问题的提示。
该库似乎有多种风格libavcodec58_91
,其中一种位于官方存储库中,缺少一些专利编解码器,另一种所谓的libavcodec58_91(unrestricted)
风格只能从 Packman 获得。 vlc-codecs 不依赖于其他 libav 软件包,但可能还有更多。我不知道 zypper 如何区分两者。版本号略有不同,但不包含有关受限制或不受限制的提示。来自官方存储库的版本号为4.3.1-6.1
Packman 的无限制版本号4.3.1-9.3
。
tl;dr
libavcodec58_91
仅在从 Packman 安装时包含受专利限制的编解码器。 openSuse(和其他官方)存储库中的等效包不包含它们。