AV1 检测已过时且/或过于广泛
** 错误类型**
- 我能使用现代版和现代版之间的差异
- 假阳性
- 现代错误
** 描述错误** 它更是一个"假阴性",但如下: 似乎AV1解码器的检测效果并不正确,或者完全无效. 它用来检测AV1的字符串 : https://GitHub.com/Modernizr/Modernizr/blob/44fa7b07c367a1814e8699e3a2f15c53fbe32df7/feature-detects/video.js#L60
返回空字符串,即在 Vivaldi/ Chromium 和 Firefox 上“不支持”,尽管有支持。
** 如何重现** 我并没有严格使用Modernizr, 但检测并不复杂, 维瓦尔迪快照 6.10.3468.4(128-等铬):
testel.canPlayType ('video/mp4; codecs="av01") (中文(简体) ).
'' '' ''Firefox 130: (英语).
testel.canPlayType ('video/mp4; codecs="av01") (中文(简体) ).
"" "" (英语)
无法播放媒体 。 请求格式没有解码器: 视频/ mp4; 代码="av01"铬 128.0.6613.137: 1.
testel.canPlayType ('video/mp4; codecs="av01") (中文(简体) ).
'' '' ''** 预期行为**
正在使用的MIME类型应返回可能',或至少可能',否则将永远被检测为"不支持".
** 其他情况** 我用一个YouTube上的AV1编码视频测试了实际浏览器支持. 当设定为4320p的YouTube将保证提供AV1视频. 为了确定这不仅仅是一些YouTube Shenanigans,我还用 " yt-dlp " 下载了视频,用 " ffprobe " 确认了代码,并在浏览器中打开了文件,在浏览器中也播放得很好。
我认为,av01 ' 范围太广,因为[MIME-Type预期编码参数](https://developer.mozila.org/en-US/docs/Web/Media/Formats/codecs parameter#av1],因此av01'在技术上是无效的MIME-Type。
我用YouTube在“Nerds的纹章”中展示的内容进行测试,
testel.canPlayType ('video/mp4; codecs="av01.0.16M.08") (中文(简体) ).
也许吧
testel.canPlayType ('video/mp4; 代码="av01.0"')
'' '' ''
testel.canPlayType ('video/mp4; codecs="av01.0.16M") (中文(简体) ).
'' '' ''正如你所见,我还尝试缩短时间,结果“没有支持”。
我不确定测试字符串会怎么样 因为测试三种参数的每个可能的通量 都会很快失控.
内容来源: Modernizr/Modernizr