在不兼容的浏览器中播放 MP4 HEVC (h265) 视频文件时,如何检测是否只有音频?
How detect if audio only when playing MP4 HEVC (h265) video files in incompatible browsers?
我正在使用本机 <video>
标签,我发现许多浏览器无法使用 hevc/h265 编解码器播放 mp4 视频:
目前,作为默认行为,不兼容的浏览器(chrome 和 firefox 主要)只播放视频和音频,就像一切正常一样。我想正确地告诉用户他们的浏览器无法播放这个具体视频。
您是否知道是否有一种方法可以检测前端是否未正确播放视频(仅音频)以提醒最终用户?
ps:将视频重新编码为另一种格式不是那里提出的问题:)
经过一些调查,试图用 mux.js lib, I got this nice hack from github 分析第一个字节:
const video = document.querySelector('video');
video.addEventListener('loadedmetadata', (event) => {
if(event.target.videoHeight === 0) {
console.log('cant play video..');
}
});
想法是在视频初始化后检查 videoHeight 属性 值:
- 如果我们有一个 'real' 值,这意味着浏览器能够读取它。
- 如果我们有
0
,浏览器无法读取它。
我正在使用本机 <video>
标签,我发现许多浏览器无法使用 hevc/h265 编解码器播放 mp4 视频:
目前,作为默认行为,不兼容的浏览器(chrome 和 firefox 主要)只播放视频和音频,就像一切正常一样。我想正确地告诉用户他们的浏览器无法播放这个具体视频。
您是否知道是否有一种方法可以检测前端是否未正确播放视频(仅音频)以提醒最终用户?
ps:将视频重新编码为另一种格式不是那里提出的问题:)
经过一些调查,试图用 mux.js lib, I got this nice hack from github 分析第一个字节:
const video = document.querySelector('video');
video.addEventListener('loadedmetadata', (event) => {
if(event.target.videoHeight === 0) {
console.log('cant play video..');
}
});
想法是在视频初始化后检查 videoHeight 属性 值:
- 如果我们有一个 'real' 值,这意味着浏览器能够读取它。
- 如果我们有
0
,浏览器无法读取它。