FFmpeg合并.ts(或.m3u8)文件和字幕文件为新的视频文件 📅 发布时间:2026/8/25 10:00:30 👁 浏览次数: 目录1 下载安装适合您操作系统的FFmpeg版本2 将所有的.ts文件放在一个文件夹中合并.ts文件2.1 方法一使用FFmpeg的concat协议来合并.ts文件2.2 方法二直接使用concat协议适用于少量文件3 使用FFmpeg将合并后的.ts文件与字幕文件合并成视频3.1 一次性合成.m3u8和字幕文件4 字幕不同步的问题4.1 先合并生成新视频4.2 用视频播放器同步字幕5 中英文双语字幕问题5.1 手动翻译字幕5.2 软件翻译字幕5.3 用音视频剪辑软件生成6 生成目标视频使用多媒体视频处理工具FFmpeg工具将.ts(或.m3u8)文件和字幕文件合并成带同步字幕的新视频。.ts文件:MPEG2-TSTransport Stream是一种音视频封装格式。.m3u8文件:m3u8文件是m3uMP3 URLMP3地址文件的Unicode统一编码版本。m3u8中的“8”代表UTF-8编码这是目前网络通信中最常见的全球通用编码标准。.vtt文件:VTT文件是Web Video Text TracksWebVTT格式的字幕文件。.vtt是纯文本文件可用文本编辑器打开并查看其内容是哪种语言。.srt文件SRTSubRip文本是一种广泛应用于视频字幕同步的行业标准格式其文件扩展名为.srt可通过纯文本编辑器直接编辑。可以先通过下载工具如IDM下载.ts文件或.m3u8文件和.vtt文件或.srt文件等。注意建议将所有的字幕文件编码统一为UTF-8格式避免乱码。1 下载安装适合您操作系统的FFmpeg版本下载和配置FFmpeg环境变量的方法自行搜索。2 将所有的.ts文件放在一个文件夹中合并.ts文件用.ts文件举例2.1 方法一使用FFmpeg的concat协议来合并.ts文件就地新建一个文本文件如filelist.txt其内容为逐行列举所有的.ts文件。即每行一个TS文件名格式为file xxx.ts如下文或见图示file 001.tsfile 002.tsfile 003.ts…列举完后保存退出即可。在当前ts文件夹空白处按 windows r 键弹出运行框输入PowerShell 或 CMD打开命令行运行命令/* ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.ts */说明上述output为自定义的合并后的ts文件名。2.2 方法二直接使用concat协议适用于少量文件命令为/* ffmpeg -i concat:001.ts|002.ts|003.ts -c copy output.ts */说明跟方法一的区别是直接在命令中列举所有的ts文件。3 使用FFmpeg将合并后的.ts文件与字幕文件合并成视频如合并后的ts文件名为output.ts对应的中英文字幕文件是merged.vtt期望合并后的视频为mp4格式且名称为output_final则命令为/* ffmpeg -i output.ts -i merged.vtt -c copy -c:s mov_text output_final.mp4 说明 -c copy 表示视频和音频流直接复制不重新编码以保持高清质量。 -c:s mov_text 表示将字幕流设置为mov_text格式适用于MP4容器。 */3.1 一次性合成.m3u8和字幕文件也可以通过开发者工具获取到原视频文件的.m3u8文件的链接地址然后直接一次性合并原视频和字幕文件转换成新的视频。如m3u8的地址是https://hls.ted.com/project_masters/10514/manifest.m3u8对应的字幕文件是Talk.vtt期望生成的视频是output_final.mp4则命令为/* ffmpeg -i https://hls.ted.com/project_masters/10514/manifest.m3u8 -i Talk.vtt -c c opy -c:s mov_text output_final.mp4 */4 字幕不同步的问题以上方法可能会遇到合并后的mp4视频文件字幕不同步的问题。4.1 先合并生成新视频建议把字幕文件放一边先将下载的ts或m3u8文件转换成mp4文件再用其它工具解决字幕不同步的问题。FFmpeg将ts或m3u8转为mp4文件的命令是/* ffmpeg -i input.ts -c:v libx264 -c:a aac output.mp4 */或/* ffmpeg -i input.mkv -c:v libx264 -c:a aac -strict experimental output.mp4 mkv转mp4视频H264、音频AAC编码微信视频号要求视频是视频H264、音频AAC编码 */或/* ffmpeg -i http://xxx.com:8891/1231/index.m3u8 -c copy -bsf:a aac_adtstoasc output.mp4 */不会的命令可搜索。4.2 用视频播放器同步字幕推荐用PotPlayer视频播放器解决字幕不同步的方法:1、将视频和字幕文件改为同一个名字如video.mp4和video.vtt (其它格式的字幕文件也可以如video.srt)便于打开视频时让播放器自动识别字幕文件否则需要手动导入字幕。2、PotPlayer可以手动调整字幕跟视频同步这个就是纯PotPlayer中操作了不会的搜索一下。提示导入原视频和字幕文件后PotPlayer可以将原字幕格式导出保存为另一种格式。5 中英文双语字幕问题上述操作完成后视频应该有一种语言的字幕了且字幕是同步的。但想要同步的双语字幕该怎么办呢5.1 手动翻译字幕字幕文件可以是.vtt或.srt或.txt等多种格式且字幕文件本质上是文本可以用文本编辑器如Notepad直接打开编辑。假如原字幕是英文字幕现在想添加同步的中文字幕笨方法是将英文一句一句翻译为中文后粘贴回去如图单一字幕双语字幕手动翻译完成之后还是将视频和字幕命名为相同名称再次播放视频时PotPlayer即可自动识别。但PotPlayer无法生成和导出双语同步字幕视频需要使用PotPlayer重新录制一遍。如感觉麻烦可以使用剪映等视频剪辑软件合并原视频和双语字幕文件生成一个合二为一的新视频。5.2 软件翻译字幕使用字幕翻译软件如SrtTranslator若SrtTranslator失效可找其它类似软件直接将原单一字幕文件翻译生成为一个新的双语字幕文件用PotPlayer打开即可自动识别。合并原视频和双语字幕文件的方法仍然需要使用其它的视频剪辑软件。5.3 用音视频剪辑软件生成如将原视频和单一字幕文件导入剪映后开启它的双语字幕功能后可傻瓜式地生成我们需要的目标视频但需要会员请自行考虑。6 生成目标视频上文提过解决了.ts(或.m3u8)合成mp4或mkv等其它格式视频问题、字幕不同步问题、无双语字幕问题等最终需要借助视频剪辑软件生成合并后的目标视频文件这才是我们想要的。关注我: Accrual