HTML5 标签可原生嵌入视频,但需提供多格式(如MP4、WebM)并严格匹配编码参数(H.264 Baseline、AAC-LC等),且自动播放须静音或经用户交互触发。
标签能直接嵌入视频,无需插件可以。HTML5 原生支持通过 标签嵌入视频,浏览器原生解码播放,不依赖 Flash 或第三方插件。但“能嵌入”不等于“一定能播”——关键看视频格式、编码参数和浏览器兼容性。
不同浏览器支持的视频编码格式不同。只放一个 .mp4 文件,Safari 可能正常,Firefox 或 Chrome 在某些 Linux
环境下可能静音或不加载。稳妥做法是用 提供多格式回退:
video/mp4:要求 H.264 编码(AVC),音频为 AAC;这是最广泛兼容的组合video/webm:VP8/VP9 视频 + Vorbis/Opus 音频;Chrome、Firefox、Edge 原生支持,无专利限制video/ogg:Theora 视频 + Vorbis 音频;兼容性已大幅下降,仅作备用type 属性——浏览器仍会尝试下载并解析实际文件头,type 错误会导致静默失败即使用了 和正确 type,仍黑屏/报错/无声音,大概率是编码细节问题:
Main 或 Baseline Profile,High Profile 在部分旧 Android 或 Safari 上会卡住uuid 扩展),Safari 可能拒绝加载,可用 ffprobe video.mp4 检查ffmpeg 转码时,显式指定编码参数比依赖 preset 更可靠:ffmpeg -i input.mov -c:v libx264 -profile:v baseline -level 3.0 -c:a aac -b:a 128k output.mp4
现代浏览器(Chrome、Safari、Firefox)对 autoplay 施加硬性限制:未静音的视频默认禁止自动播放,即使加了 autoplay 属性。绕过方式有限且有前提:
muted 属性可启用自动播放:
play() 播放非静音视频playsinline 在 iOS Safari 上必须存在,否则视频会全屏打开DOMContentLoaded 里直接 video.play() —— 极大概率被拒,需绑定到用户事件回调中发行 HTML5 源码时,视频能否“开箱即用”,取决于你是否控制了编码链路和是否适配了这些运行时策略。格式只是门槛,参数和交互逻辑才是实际拦路虎。