You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

HTML video标签无法正确选择source资源的问题求助

解决Video标签Source优先级与格式兼容问题

你的问题核心不是source顺序,而是视频编码的兼容性:浏览器会按source的排列顺序,优先选用第一个它能解码的格式,但你现在的MP4用了HEVC(H.265)编码,Chrome这类浏览器对HEVC的支持并不完善;WebM用了VP9编码,Safari对VP9的支持也很差,所以不管怎么调整顺序,总有浏览器出问题。

给你两个可行的解决思路:

方案一:用通用编码做兜底(最省心)

把MP4换成H.264编码的版本——这是所有现代浏览器都完美支持的通用编码,把它放在第一个source位置,作为兜底;WebM(VP9)放在第二个,让Chrome、Firefox这类支持VP9的浏览器自动选择更高效的WebM格式。

修改后的代码:

<div class="container">
  <video id="div_block-207-1652" class="ct-div-block" playsinline muted autoplay loop>
        <!-- H.264编码的MP4,全浏览器兼容 -->
        <source type="video/mp4" src="你的H.264版本MP4文件地址">
        <!-- VP9编码的WebM,给Chrome/Firefox等支持的浏览器 -->
        <source type="video/webm" src="https://www.ledrabrands.com/alphabet-lighting/wp-content/uploads/sites/2/2022/10/masked-bottom_1-vp9-chrome.webm">
  </video>
</div>

方案二:JS动态适配浏览器(针对HEVC需求)

如果你一定要保留HEVC编码的MP4给Safari(比如追求更小的文件体积),可以用JS检测浏览器类型,动态设置视频源:

const videoEl = document.getElementById('div_block-207-1652');
// 简单检测Safari浏览器
const isSafariBrowser = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

if (isSafariBrowser) {
  videoEl.src = 'https://www.ledrabrands.com/alphabet-lighting/wp-content/uploads/sites/2/2022/10/masked-bottom_1-hevc-safari.mp4';
} else {
  videoEl.src = 'https://www.ledrabrands.com/alphabet-lighting/wp-content/uploads/sites/2/2022/10/masked-bottom_1-vp9-chrome.webm';
}

这种方式不需要嵌套source标签,直接给video设置src即可,精准适配不同浏览器。

内容的提问来源于stack exchange,提问作者Mar1AK10

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:50:25