在前端开发中,video和audio标签支持的格式主要由浏览器决定,虽然理论上都遵循HTML5标准,但实际支持情况略有差异。为了最大程度的兼容性,通常需要提供多种格式的视频和音频文件。
Video 支持的格式:
- MP4 (MPEG-4 Part 14): 最广泛支持的格式,通常使用 H.264 视频编解码器和 AAC 音频编解码器。 具有良好的压缩率和高质量。 这是推荐使用的主要格式。
- WebM: 开放格式,使用 VP8 或 VP9 视频编解码器和 Vorbis 或 Opus 音频编解码器。 在 Chrome, Firefox, Opera 和较新版本的 Edge 中支持良好。 提供良好的压缩和质量,是 MP4 的有力竞争者。
- Ogg: 开放格式,使用 Theora 视频编解码器和 Vorbis 音频编解码器。 支持不如 MP4 和 WebM 广泛,主要在 Firefox 和较旧版本的 Chrome 中支持。
Audio 支持的格式:
- MP3 (MPEG-1 Audio Layer 3): 最广泛支持的音频格式。 兼容性非常好,几乎所有浏览器都支持。
- AAC (Advanced Audio Coding): 常用格式,在 Safari (包括 iOS) 和较新版本的 Edge 和 Chrome 中支持良好。 通常与 MP4 视频容器一起使用。 音质通常比 MP3 更好。
- Ogg: 开放格式,使用 Vorbis 音频编解码器。 主要在 Firefox 和较旧版本的 Chrome 中支持。
- WAV (Waveform Audio File Format): 未压缩的音频格式,文件较大,但质量高。 支持良好,但由于文件大小的原因,不建议在网络上流式传输。
- WebM: 开放格式,使用 Vorbis 或 Opus 音频编解码器。 与 WebM 视频容器一起使用。
最佳实践:
为了确保最大的浏览器兼容性,建议提供至少 MP4 (H.264/AAC) 和 WebM (VP9/Opus) 两种格式的视频,以及 MP3 和 AAC 两种格式的音频。可以使用 <source>
标签在 <video>
和 <audio>
标签内指定多个文件,浏览器会自动选择第一个它支持的格式。
<video controls>
<source src="video.mp4" type="video/mp4">
<source src="video.webm" type="video/webm">
Your browser doesn't support HTML5 video.
</video>
<audio controls>
<source src="audio.mp3" type="audio/mpeg">
<source src="audio.aac" type="audio/aac">
Your browser doesn't support HTML5 audio.
</audio>
其他注意事项:
- 移动端对不同格式的支持也存在差异,需要特别注意 iOS 和 Android 系统的支持情况。
- 除了格式之外,编解码器 (codec) 也非常重要。 即使浏览器支持某种容器格式,也可能不支持该格式使用的特定编解码器。
- 可以使用 JavaScript 的
MediaSource API
和MediaRecorder API
进行更高级的视频和音频处理,例如自适应比特率流媒体和客户端录制。
通过提供多种格式的视频和音频文件,并使用 <source>
标签,可以确保你的网页在各种浏览器和设备上都能正常播放多媒体内容。