如何解决如果我们在 type 属性中定义编解码器,Chrome 将不会播放 AV1 编码的文件 - 但如果我们忽略它,则无法播放 AV1 的浏览器会失败
我有点不知该如何解决这个问题。
我们有一个 AV1 编码的 MP4 文件,我们有一些用于旧浏览器的后备文件。只有我们遇到了这个问题:
如果我们确实定义了编解码器:桌面版 Chrome 不会播放 AV1 文件 - 它使用回退
如果我们不定义编解码器:桌面版 Chrome 将播放 AV1 文件,但不支持 AV1 的移动浏览器将尝试播放该文件但失败,而不是使用回退.
我们已经尝试过:
-
type="video/mp4"
(移动播放失败) -
type="video/mp4; codecs=av01"
(所有浏览器都使用后备,忽略 AV1 文件) -
type="video/mp4; codecs=av01.1.04M.08.0.000.02.02.02.02.0"
(所有浏览器都使用后备,忽略 AV1 文件)(Source for that string)
我们使用的实际 HTML 源代码是这样的:
<video muted="" loop="" preload="metadata">
<source src="./demo-av1.mp4#t=0" type="video/mp4; codecs=av1">
<source src="./demo.webm#t=0" type="video/webm">
<source src="./demo-x264.mp4#t=0" type="video/mp4">
</video>
解决方法
您是否仅尝试使用 av01.1.04M.08
(从我所看到的 here 来看,其他东西似乎是可选的)?
我刚刚尝试了这样的视频:
<video muted="" loop="" preload="metadata">
<source src="./demo-av1.mp4#t=0" type="video/mp4; codecs=av01.0.05M.08,opus">
<source src="./demo.webm#t=0" type="video/webm">
<source src="./demo-x264.mp4#t=0" type="video/mp4">
</video>
...并对其进行了测试:
- Chrome - 加载 AV1
- Safari - 加载后备视频而不加载任何 AV1 资源(如果您根本跳过编解码器字符串,Safari 仍然使用后备,但在网络选项卡中,您可以看到它加载了 AV1 文件的一部分)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。