必须按m3u8声明顺序合并.ts文件,否则会导致跳帧、音画不同步;推荐ffmpeg命令行无损合并(需-m3u8未加密且.ts同目录),或python脚本批量处理,亦可选金舟工具(小白友好)、vlc应急导出(会重编码)及安卓端“缓存视频合并”app。

你下载了一堆.ts文件和一个.m3u8索引文件,想把它们拼成一个能直接播放的完整视频——但直接按文件名排序合并会错乱、用播放器硬拖会卡顿、删掉m3u8又找不到顺序。必须严格按m3u8里声明的播放序列来合成,否则画面跳帧、音画不同步、甚至黑屏。
用FFmpeg命令行精准合并(推荐给懂终端的人)
这一步不依赖图形界面,速度快、无损、顺序绝对准确,前提是你的m3u8没加密且ts都在同一目录。
打开终端(Windows用CMD或PowerShell,macOS/Linux用Terminal),进入存放m3u8和所有ts文件的文件夹。
执行命令:ffmpeg -i input.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4
其中input.m3u8要替换成你实际的m3u8文件名;output.mp4可自定义;-bsf:a aac_adtstoasc是关键参数,它把AAC音频流重封装为MP4兼容格式,【漏掉这个参数会导致部分播放器无法播放音频】。
等待命令执行完成,生成的output.mp4就是完整视频,时长和顺序与原始流完全一致。
用Python脚本自动解析+合并(适合批量处理)
当你有多个m3u8要处理,或者ts文件分散在子目录、命名不规整时,手动写命令太累,脚本能自动读取m3u8里的真实顺序并生成列表。
新建一个merge.py文件,粘贴以下代码(需已安装Python 3.7+ 和 FFmpeg):
import os
import subprocess
import sys
def parse_m3u8(m3u8_path):
ts_list = []
with open(m3u8_path, 'r', encoding='utf-8') as f:
for line in f:
line = line.strip()
if line and not line.startswith('#'):
ts_list.append(line)
return ts_list
m3u8_file = sys.argv[1] if len(sys.argv) > 1 else 'index.m3u8'
ts_files = parse_m3u8(m3u8_file)
# 写入临时列表文件
with open('filelist.txt', 'w', encoding='utf-8') as f:
for ts in ts_files:
f.write(f"file '{ts}'\n")
# 执行FFmpeg合并
subprocess.run(['ffmpeg', '-f', 'concat', '-safe', '0', '-i', 'filelist.txt', '-c', 'copy', '-bsf:a', 'aac_adtstoasc', 'merged.mp4'])
在终端中运行:python merge.py your_video.m3u8(把your_video.m3u8换成你的文件名)。
脚本会自动提取m3u8中每一行非注释的.ts路径,逐行写入filelist.txt,再调用FFmpeg按此顺序拼接——【哪怕ts文件名是乱序数字或带hash,也绝不会出错】。
用金舟视频格式转换器一键操作(小白首选)
不想装环境、不碰命令行、也不写代码?这个国产工具界面清晰,支持直接导入m3u8文件或粘贴URL,后台自动解析+下载+合并三合一。
第一步:官网下载“金舟视频格式转换器”最新版,安装时避开C盘。
第二步:打开软件 → 点击顶部菜单栏「添加m3u8文件」→ 在弹窗中选择本地.m3u8文件,或点击「视频链接」粘贴m3u8网址。
第三步:识别完成后,勾选目标文件 → 下方「输出格式」选MP4 → 「分辨率」「码率」保持默认即可(改高了反而可能失败)。
第四步:点击右下角「开始转换」,进度条走完即生成完整MP4,输出路径在窗口底部显示。
用VLC播放器临时拼接(应急查看用)
只是想快速确认内容是否完整、顺序对不对,又懒得等转码?VLC能直接加载m3u8并导出,不生成中间文件,但导出质量固定、不支持自定义参数。
打开VLC → 「媒体」→ 「转换/保存」→ 「添加」→ 选择你的.m3u8文件 → 点击「转换/保存」。
在「设置」区域,「配置文件」下拉选「Video - H.264 + MP3 (MP4)」→ 「浏览」设好输出路径和文件名 → 点「开始」。
注意:VLC导出过程会重新编码,耗时比FFmpeg长,且【无法跳过加密m3u8,遇到#EXT-X-KEY标签会直接失败】。
手机端快速合并(安卓用户适用)
缓存视频存在手机内部存储,一堆.ts藏在隐藏文件夹里,连电脑都懒得连?用「缓存视频合并」App 5分钟搞定。
第一步:在应用商店搜「缓存视频合并」,安装v1.5.0或更新版本。
第二步:打开App → 点右上角「┇」→ 选「全盘扫描M3U8」→ 等待扫描结束。
第三步:列表中勾选你要合并的条目 → 再点「┇」→ 选「合并视频」→ 确认。
合并完成后,进入「合并历史」→ 长按条目 → 「打开所在文件夹」→ 找到生成的MP4文件。











