ffmpeg 合并 拼接 mp4视频

来源:互联网 发布:淘宝秋季运动装 编辑:程序博客网 时间:2024/06/10 02:42

今天同事做字幕识别测试,其中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

0 0
原创粉丝点击