直接用标签插入视频,最小可用结构只需标签和有效src地址;支持多格式需用子标签并写明type属性;路径错误、编码不支持或MIME类型不对是常见失败原因。
标签就行,不用“嵌套”这种说法很多人搜“嵌套视频”,其实是误用了术语——HTML 里视频不是靠“嵌套”进页面的,而是用 标签**直接插入**。它本身就是一个独立的多媒体元素,支持 src、controls、autoplay 等属性,浏览器原生解析,不需要额外 JS 或 iframe(除非你非要套 YouTube)。
常见误区是试图把视频像 div 一样层层包裹,结果加了多余 还以为“嵌套成功”,其实只是多套了一层容器,对播放毫无影响。
最小可用写法和必填项能播起来的最简结构只有两样:标签本身 + 一个有效的 src 地址。其他都是可选增强。
src 必须是同源或允许跨域的本地路径(如 ./videos/demo.mp4)或绝对 URLcontrols 属性,视频就黑屏无声,连播放按钮都没有autoplay 但没加 muted,Chrome/Firefox 会静音且可能拒绝自动播放(尤其移动端)controls 和 preload="metadata",兼顾可操作性与加载效率示例:
切换MP4(H.264)虽通用,但 Sa

src 无法 fallback,必须用 子标签按顺序尝试。
,第一个能解码的就用,其余忽略type 属性强烈建议写上,如 type="video/mp4",否则浏览器要下载部分文件头才能判断,拖慢首帧示例:
新手最常卡在路径问题:视频明明放在项目文件夹里,却一直显示“无法加载”。根本原因几乎全是相对路径写错。
./videos/abc.mp4 表示“当前 HTML 所在目录下的 videos 文件夹”../assets/abc.mp4 表示“上一级目录里的 assets 文件夹”abc.mp4 请求状态:404 就是路径错,200 但没画面可能是编码不支持或 CORS 限制src,比手敲可靠得多顺带一提:不要直接用百度网盘、迅雷离线等外链,它们返回的不是真实视频流,而是 HTML 页面, 会直接失败。
真正麻烦的从来不是标签怎么写,而是视频编码参数是否被目标浏览器支持、路径是否拼对、服务端是否返回了正确的 Content-Type。这些地方一卡,整个视频就停在加载图标上不动——比写错标签难排查多了。