在 OpenSuse 中让 MP4 在 Firefox 中播放

在 OpenSuse 中让 MP4 在 Firefox 中播放

我不知道从什么时候开始,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.1Packman 的无限制版本号4.3.1-9.3

tl;dr
libavcodec58_91仅在从 Packman 安装时包含受专利限制的编解码器。 openSuse(和其他官方)存储库中的等效包不包含它们。

相关内容