如何在 Firefox 上使用编解码器规范获取具有多个源标签的 HTML5 视频标签?

How can I get HTML5 video tag with multiple source tags with codec specification working on Firefox?

我收到视频流编解码器为 H.265 HEVC 的 mp4 视频。较新的 iOS 设备以这种格式录制,目前只有 Safari 和移动 Safari 可以播放它,但是世界上大多数人都没有 Apple 设备,即使在美国的泡沫中也是如此。所以我将这些视频重新编码为(现在)广泛接受的 H.264,这样我就可以为 Firefox、Chrome 和其他非 Apple 浏览器提供它们。

但是,由于我已经拥有 HEVC 版本,它确实提供了比 H.264 更好的compression/quality,我想将其与 H.264 一起提供,以便查看器设备可以选择哪一个它会选择。这有点像 imgsrcset

好消息是有办法做到这一点:而不是

<video controls src="h264.mp4"></video>

我可以

<video controls>
  <source src="h264.mp4" type="video/mp4; codecs=avc1">
  <source src="hevc.mp4" type="video/mp4; codecs=hevc">
</video>

坏消息是,这适用于 Linux Chromium 稳定版和测试版,Windows Chromium,Edge。但是 Firefox 在 Linux 和 Windows 上都会跳闸。我怎样才能解决这个问题?我必须包括编解码器信息,因为两个文件都是 mp4。

经过反复试验,我发现如果我不仅指定 avc1,而且还使用特定的 6 位十六进制代码完全指定配置文件和级别,Firefox 会接受编解码器字符串,例如:

type="video/mp4; codecs=avc1.64001E"

另一个问题是如何找到十六进制代码的,详情请看 and https://developer.mozilla.org/en-US/docs/Web/Media/Formats/codecs_parameter#AVC_profiles