ffmpeg合并视频的方法有三种。

方法一.使用concat协议进行视频文件的合并

1.对于 MPEG 格式的视频,可以直接连接:

//视频尺寸要一致

ffmpeg -i concat:"1.mpg|2.mpg|3.mpg" -c copy output.mp4

2.对于非 MPEG 格式容器,但是是 MPEG 编码器(H.264、DivX、XviD、MPEG4、MPEG2、AAC、MP2、MP3 等),可以包装进 TS 格式的容器再合并。在新浪视频,有很多视频使用 H.264 编码器,可以采用这个方法(视频尺寸可以不一致)

ts全称为MPEG2-TS。ts即"Transport Stream"的缩写。MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。

ffmpeg -i 1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 1.ts

ffmpeg -i 2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 2.ts

ffmpeg -i 3.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts 3.ts

ffmpeg -i "concat:1.ts|2.ts|3.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart ts.mp

保存 QuickTime/MP4 格式容器的时候,建议加上 -movflags +faststart。这样分享文件给别人的时候可以边下边看。

方法二:FFmpeg concat 分离器

这种方法成功率很高,也是最好的,但是需要 FFmpeg 1.1 以上版本。先创建一个文本文件filelist.txt:

file 'input1.mkv'

file 'input2.mkv'

file 'input3.mkv'

然后:

ffmpeg -f concat -i filelist.txt -c copy output.mkv

注意:使用 FFmpeg concat 分离器时,如果文件名有奇怪的字符,要在 filelist.txt 中转义

测试了一下,不同尺寸的视频可以正常合成,但是不同格式的合成有问题

方式三:使用concat滤镜(filter)进行视频文件的合并:

ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]’  output.mp4

上面的命令合并了三种不同格式的文件,FFmpeg concat 过滤器会重新编码它们。注意这是有损压缩。

[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] 分别表示第一个输入文件的视频、音频、第二个输入文件的视频、音频、第三个输入文件的视频、音频。concat=n=3:v=1:a=1 表示有三个输入文件,输出一条视频流和一条音频流。[v] [a] 就是得到的视频流和音频流的名字,注意在 bash 等 shell 中需要用引号,防止通配符扩展。

测试了一下,不同格式正常,不同尺寸会报错。

转自:https://blog.csdn.net/sinat_14826983/article/details/82597272

ffmpeg 拼接mp4_ffmpeg拼接视频方法concat详解相关推荐

  1. 微信怎么和计算机发送文件格式,用微信怎么发送文件 手机微信发送文件、视频方法图文详解...

    微信火爆程度已经明显超过qq了,那么你知道微信除了飞好友发送图片.视频外还能发送文件,今天小编就为大家分享手机微信发送文件方法图文详解,如何用微信将电脑.手机上的文件发送给好友. 微信怎么添加自定义表 ...

  2. IOS视频编辑功能详解下篇-视频裁剪、视频拼接、音视频的处理

    转自:http://www.hudongdong.com/ios/550.html 前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUI ...

  3. IOS视频编辑功能详解上篇-添加水印

    前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...

  4. oracle大对象实例_Oracle解析复杂json的方法实例详解

    问题背景: 当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此 ...

  5. 《视频直播技术详解》之二:编码和封装、推流和传输

    视频编码是本系列一个重要的部分,如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本.同样,对 ...

  6. 视频直播技术详解(7)现代播放器原理

    <视频直播技术详解>系列之七:现代播放器原理 牛小七2016年9月29日发布在 视频直播技术详解 from: http://blog.qiniu.com/archives/7040 七牛云 ...

  7. 《视频直播技术详解》系列之七:现代播放器原理

    七牛云于 6 月底发布了一个针对视频直播的实时流网络 LiveNet 和完整的直播云解决方案,很多开发者对这个网络和解决方案的细节和使用场景非常感兴趣. 结合七牛实时流网络 LiveNet 和直播云解 ...

  8. 视频直播技术详解之现代播放器原理

    声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 作者:七牛云 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群 ...

  9. 「视频直播技术详解」系列之六:现代播放器原理

    ​关于直播的技术文章不少,成体系的不多.我们将用七篇文章,更系统化地介绍当下大热的视频直播各环节的关键技术,帮助视频直播创业者们更全面.深入地了解视频直播技术,更好地技术选型. 本系列文章大纲如下: ...

最新文章

  1. 基于TestNG 与Selenium 的自动化测试设计与实施
  2. 数据结构C语言实现课后习题答案第6-9章
  3. 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系
  4. Android到底何去何从?来自腾讯、阿里、京东、网易、美图等大咖为你揭晓
  5. 湖南计算机专业专科排名2015,湖南最好的公办专科大学有哪些排名揭秘?湖南十大专科学校推荐?...
  6. 线程基础知识_线程生命周期_从JVM内存结构看多线程下的共享资源
  7. C++中的4种类型转换方式
  8. 论坛头条内容链接地址有误
  9. linux+gpio+嵌入式,嵌入式Linux系统中对GPIO操作的方法总结
  10. reactos操作系统实现(108)
  11. python内置函数sorted()
  12. LSD算法与LBD描述子的关系
  13. 编写c语言程序一般要经过几个步骤,开发一个c语言程序要经过哪四个步骤
  14. 如何拼接多张图片,多张图片拼接成一张
  15. 第六章 XML 拨号方案
  16. 大厂秋招~华为荣耀字节腾讯美团滴滴
  17. 超融合架构和服务器虚拟化是什么关系?主流超融合厂商服务器虚拟化产品对比分析
  18. 实时油价接口 按城市检索加油站
  19. C++11之后的decltype类型指示符
  20. 谷歌Coral USB加速器

热门文章

  1. Lattice Crosslink-NX器件(LIFCL-40-7MG121I)用作视频输入桥接时支持的CMOS型号及可达性能汇总
  2. iOS 修改webView字体大小,设置宽度及缩放效果
  3. Dubbo-聊聊Dubbo协议
  4. 老司机 iOS 周报 #4
  5. 蜘蛛纸牌 java代码_java实现蜘蛛纸牌游戏
  6. html密码验证怎么实现页面,JavaScript实现简单的密码验证
  7. 你管这叫操作系统源码(七)
  8. 移动发送短信接口测试(1)
  9. 什么是编译器?解释器又是什么?
  10. 计算机图形学 1 —— 颜色模型图像基本知识,Phong光照模型