下载视频时,你可能遇到这样的情况:保存下来的文件以 .m3u8 结尾,只有几 KB,用文本编辑器打开,里面却是一串网址和以 # 开头的文字。视频到底在哪里?为什么它不像 MP4 那样直接播放?
关键区别是:M3U8 通常是一份播放清单,告诉播放器去哪里取音视频;MP4 是一种媒体容器,用来装载实际的音视频数据。它们处在不同层次,不能只靠修改后缀互相转换。
M3U8 是什么?
M3U8 是使用 UTF-8 编码的 M3U 播放清单。在网页视频场景中,它常作为 HLS(HTTP Live Streaming)的入口。播放器先读取清单,再按其中的地址请求媒体内容。清单本身通常不包含视频画面和声音,因此体积很小。技术定义可参考 HLS 协议说明。
HLS 中常见两类清单:主播放清单指向不同码率或分辨率的版本;媒体播放清单列出某个版本的媒体片段。只有服务端提供了多个版本且播放器支持相应逻辑时,才可能根据网络条件自动切换画质,单独一个 M3U8 文件并不保证这一能力。
下面是一份教学用的简化媒体清单,片段地址仅作示意:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXTINF:6.0,
segment-001.ts
#EXTINF:6.0,
segment-002.ts
#EXT-X-ENDLIST这里列出了两个各约 6 秒的片段;最后一行表示不会再向这份清单追加片段。播放器需要取到对应片段才能播放。HLS 的媒体片段可以使用 TS,也可以使用碎片化 MP4(fMP4),因此“M3U8 和 MP4 完全互斥”也是误解。
MP4 是什么?
MP4 是媒体容器格式。你可以把它理解为一个文件盒子,里面能保存视频轨道、音频轨道以及相关元数据。容器和编码并不是同一回事:MP4 说明数据如何组织,H.264、HEVC 等编码则决定画面如何压缩。
所以,两份都叫 .mp4 的文件,清晰度、大小和播放兼容性仍可能不同。设备不仅要能识别 MP4,还要支持其中的音视频编码。常见的 H.264 视频与 AAC 音频组合通常具有较好的兼容性,但具体仍取决于设备和播放器。详见 MDN 媒体容器指南。
M3U8 和 MP4 的主要区别
对比项 | M3U8(常见 HLS 场景) | MP4(常见独立文件场景) |
|---|---|---|
文件角色 | 描述媒体位置与播放顺序的文本清单 | 装载音视频数据的媒体容器 |
为什么大小不同 | 清单通常很小,媒体数据在其他资源中 | 文件大小通常包含实际音视频数据 |
网络播放 | 按清单获取片段,适合直播和点播 | 可以通过 HTTP 渐进下载播放 |
自动切换画质 |
评论 0
本文已关闭评论。
加载评论…



