一.情况介绍

当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。

怎么快速把多个合并一起(教你把多个合并成一个的方法)(1)

m3u8文件打开后像这样:

怎么快速把多个合并一起(教你把多个合并成一个的方法)(2)

样例.m3u8

m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。

视频片段像这样:

怎么快速把多个合并一起(教你把多个合并成一个的方法)(3)

为了将片段连接在一起,我选择使用是ffmpeg,一个强大的处理音频,视频的工具,是开源的。许多windows处理音频,视频的工具,背后都是使用了ffmpeg。

二.合并过程

1)安装ffmpeg

sudo apt install ffmpeg

怎么快速把多个合并一起(教你把多个合并成一个的方法)(4)

2)生成配置文件

用文本编辑器打开m3u8文件,我就选择了vscode。选择编辑菜单的替换,

怎么快速把多个合并一起(教你把多个合并成一个的方法)(5)

选择“正则表达式”查找

怎么快速把多个合并一起(教你把多个合并成一个的方法)(6)

首先是要把#EXT开头的行,变成空行,

在查找框输入^#EXT.*,

怎么快速把多个合并一起(教你把多个合并成一个的方法)(7)

替换前

替换框不输入内容,点击全部替换

怎么快速把多个合并一起(教你把多个合并成一个的方法)(8)

替换后

上一步,留下了很多空行,现在要去掉这些空行。

在查找框输入^\s*(?=\r?$)\n,

怎么快速把多个合并一起(教你把多个合并成一个的方法)(9)

替换前

替换框不输入内容,点击全部替换,

怎么快速把多个合并一起(教你把多个合并成一个的方法)(10)

替换后

剩下来的每一行就是视频片段的绝对路径,接下来,把视频片段的路径改成自己电脑中的路径,

在查找框中输入自己文件的路径,我这里是/storage/emulated/0/Quark/Download,

怎么快速把多个合并一起(教你把多个合并成一个的方法)(11)

替换前

在替换框中输入本机中视频片段的绝对路径。

怎么快速把多个合并一起(教你把多个合并成一个的方法)(12)

替换后

最后,在每一行的绝对路径前面加入file ' ,后面加入单引号 '

在查找框输入^,替换框输入file '

怎么快速把多个合并一起(教你把多个合并成一个的方法)(13)

替换前

怎么快速把多个合并一起(教你把多个合并成一个的方法)(14)

替换后

在查找框输入$,替换框输入英文单引号 '

怎么快速把多个合并一起(教你把多个合并成一个的方法)(15)

替换前

怎么快速把多个合并一起(教你把多个合并成一个的方法)(16)

替换后

这样配置文件就修改好了。

3)生成最后的文件

在终端中使用命令合并成一个视频,其中filelist.txt就是m3u8,output.mp4就是最后生成的文件名

ffmpeg -f concat -safe 0 -i filelist.txt -c copy output.mp4

,