ffmpeg 合併 拼接 mp4視頻

今天同事做字幕識別測試,其中360p的視頻是直接從CNTV網上下載的,一套好好的節目被切成9段、10段,爲測試帶來了一點小的麻煩;

 

所以今天想着用ffmpeg拼接一下這些視頻;

 

需求如下:

1.mp4 2.mp4 … 封裝成 combine.mp4

 

我對各種封裝格式還不是很瞭解,因爲之前被坑過,大概知道mp4封裝會在一個地方聲明duration,因此,如果從數據層面直接剪切和拼接mp4肯定是不行的。

而ts不同於mp4,其封裝是一塊數據一塊時間戳,無論怎麼剪切,都不影響ts的正常解碼。

 

因此,首先需要把mp4格式的文件轉成ts格式,不過要注意的是,我們要拼接mp4文件,而不是被轉碼的mp4文件,一次這裏轉換隻需要改變封裝格式,音頻流和視頻流直接複製就行。轉換方法:

命令行指令:

ffmpeg.exe –i 1.mp4 –vcodec copy –acodec copy –vbsf h264_mp4toannexb1.ts

ffmpeg.exe –i 2.mp4 –vcodec copy –acodec copy –vbsf h264_mp4toannexb2.ts

……

 

如此之後,就可以開始ts文件的拼接了。有一個指令copy:

 

命令行指令:

         copy/b “1.ts”+“2.ts”+…+”n.ts” /y “combine.ts”

        

         //copy爲cmd的指令,/b意思爲二進制 /y意思爲yes,一般情況下寫不寫無所謂,不過當生成的文件已經存在時,有了/y就等於直接回答了yes,不再提示是否覆蓋,如果沒有/y,則cmd指令會詢問你是否覆蓋,這時候你需要輸入y/n;

 

拼接好之後,再將ts封裝格式轉換回mp4


命令行指令:

ffmpeg.exe –icombine.ts –acodec copy –vcodec copy –absf aac_adtstoasc combine.mp4

        

至此,大功告成;

 

 

參考文章:

1、[轉載]用 FFMPEG 合併 MP4 視頻:http://yonsm.net/mp4merge/

//此文提出的方法行不通,估計是ffmpeg版本不同所導致的。

2、ffmpeg裁剪合併視頻:http://blog.csdn.net/junhua_peng/article/details/11235267

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章