1. 程式人生 > >命令列批量合併視訊指令碼

命令列批量合併視訊指令碼

  批量合併視訊頭部

  需要ffmpeg, 目前直接安裝格式工廠, 使用格式工廠模組下的ffmpge.exe, 避免自己去下載原始碼和編譯

  ffmpeg合併視訊的幾種方法

  ffmpeg的合併方式有三種, 參考  :  這兒 , 我選擇配置檔案合併的方式, 因為其他兩種我這邊測試無法合併視訊:

ffmpeg -f concat -i mylist.txt -c copy output.mp4

  mylist.txt為ffmpeg合併視訊的配置檔案,檔案格式如下:

# this is a comment
file '/path/to/file1'
file '/path/to/file2
' file '/path/to/file3'

  自己寫的bat批處理指令碼, 迴圈合併視訊

  配置檔案config.txt

head1.mp4 kali1.mp4 f1.mp4
head2.mp4 kali2.mp4 f2.mp4
head3.mp4 kali3.mp4 f3.mp4

  配置檔案的大概意思如下, 各個配置引數通過空格分隔 :

  head1.mp4 和kali1.mp4合併成 f1.mp4

  head2.mp4 和kali2.mp4合併成 f2.mp4

  head3.mp4 和kali3.mp4合併成 f3.mp4

  最終指令碼

  迴圈config.txt配置檔案, 動態生成ffmpeg需要的配置檔案, 執行ffmpeg合併視訊命令

@echo off
for /f "tokens=1,2,3 delims= " %%c in (config.txt) do (
cd .>c.txt
echo file '%%c'>>c.txt
echo file '%%d'>>c.txt
..\ffmpeg.exe -f concat -i c.txt -c copy %%e
)

  感想:

  合併視訊的時候,必須要把兩個視訊的格式, 視訊解析度, 視訊幀數, 視訊位元率, 視訊的音訊解析度都轉成一摸一樣的, 否則總是無法成功合併視訊