如何把多個視訊合成一個視訊(如何把兩段視訊合成一段)

一.情況介紹

當你有一個m3u8檔案和一個目錄,目錄中有連續的視訊片段,這些片段可以連成一段完整的視訊。

m3u8檔案開啟後像這樣:

   

樣例.m3u8

m3u8檔案,可以理解為播放列表,裡面是播放視訊片段的順序。

視訊片段像這樣:

為了將片段連線在一起,我選擇使用是ffmpeg,一個強大的處理音訊,視訊的工具,是開源的。許多windows處理音訊,視訊的工具,背後都是使用了ffmpeg。

二.合併過程

1)安裝ffmpeg

sudo apt install ffmpeg

2)生成配置檔案

用文字編輯器開啟m3u8檔案,我就選擇了vscode。選擇編輯選單的替換,

選擇“正規表示式”查詢

首先是要把#EXT開頭的行,變成空行,

在查詢框輸入^#EXT.*,

   

替換前

替換框不輸入內容,點選全部替換

   

替換後

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

在查詢框輸入^/s*(?=/r?$)/n,

   

替換前

替換框不輸入內容,點選全部替換,

   

替換後

剩下來的每一行就是視訊片段的絕對路徑,接下來,把視訊片段的路徑改成自己電腦中的路徑,

在查詢框中輸入自己檔案的路徑,我這裡是
   /storage/emulated/0/Quark/Download,

   

替換前

在替換框中輸入本機中視訊片段的絕對路徑。

   

替換後

最後,在每一行的絕對路徑前面加入file ' ,後面加入單引號 '

在查詢框輸入^,替換框輸入file '

   

替換前

   

替換後

在查詢框輸入$,替換框輸入英文單引號 '

   

替換前

   

替換後

這樣配置檔案就修改好了。

3)生成最後的檔案

在終端中使用命令合併成一個視訊,其中filelist.txt就是m3u8,output.mp4就是最後生成的檔名

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