有时候从网上下载了一堆视频文件,里面有个.m3u8文件和一堆.ts小文件,双击打开却不知道怎么播。这种情况我遇到过好几次,今天把几种解决办法都整理一下。
如果你下载的文件夹里只有一个.m3u8文件,没有.ts文件,那这个M3U8大概率是在线索引文件,指向的是网络地址。这种文件本地是播不了的,因为它引用的视频切片还在网上。
真正的本地可播放M3U8,文件夹里应该有很多.ts文件,M3U8文件里写的是这些.ts文件的相对路径。比如"segment001.ts"、"segment002.ts"这种。
如果你的文件结构完整,直接用VLC打开那个.m3u8文件就行。VLC会自动读取里面的播放列表,按顺序加载TS切片。
操作方法和打开普通视频一样:媒体 -> 打开文件,选择.m3u8。如果TS切片和M3U8在同一个文件夹里,且路径写对了,一般都能正常播放。

有些M3U8文件里的路径写的是绝对路径,比如"C:/Users/xxx/Downloads/video/segment001.ts"。你把文件夹移到别的地方,播放器就找不到了。
解决办法是用文本编辑器打开M3U8文件,把里面的路径改成相对路径,或者直接改成TS文件的文件名。如果所有TS文件和M3U8在同一目录,直接把路径部分删掉只保留文件名就行。
还有一种情况:M3U8文件编码不对,用记事本打开全是乱码。这时候需要确认文件是不是UTF-8编码,如果不是,用Notepad++或者VS Code转一下编码再保存。
除了VLC,PotPlayer对M3U8的支持也不错。而且PotPlayer的界面更友好一些,有中文原生界面,很多国内用户更习惯。
打开方式一样:右键 -> 打开 -> 打开文件,选择M3U8即可。如果TS切片编码没问题,播放起来很流畅。
如果你嫌M3U8+TS这种结构太麻烦,可以用FFmpeg把它们合并成一个MP4文件。命令很简单:
ffmpeg -i input.m3u8 -c copy output.mp4
执行完就得到一个完整的MP4,随便哪个播放器都能打开了。如果TS切片很多,合并可能需要一点时间,耐心等待即可。
总之,本地播M3U8不难,关键是文件结构要完整、路径要写对。实在不行就合并成MP4,一劳永逸。