ffmpeg将多段视频合成一个视频
创作时间:
作者:
@小白创作中心
ffmpeg将多段视频合成一个视频
引用
CSDN
1.
https://m.blog.csdn.net/2401_88244350/article/details/143370376
ffmpeg视频拼接需要用 concat 参数。 此外ffmpeg拼接的视频和原视频的封装格式有关
一、方法一:利用文件列表
- 建立一个
.txt文件,例如文件名为 filelist.txt ,里面存放的是三段小视频的文件名,如下:
file '/path/to/video1.mp4'
file '/path/to/video1.mp4'
file '/path/to/video1.mp4'
- 用ffmpeg 合成一段视频
ffmpeg -f concat -i filelist.txt -c copy output.mp4
注意:
使用 FFmpeg concat 分离器时,如果文件名有奇怪的字符,要在 filelist.txt中转义。
二、方法二:不利用文件列表
合成命令如下:
ffmpeg -i "concat:video1.mp4|video2.mp4|video3.mp4" -c copy output.mp4
这种方法不友好,有些情况下用不成功
三. 方法三:拼接不同编码格式的文件
合成命令如下:
ffmpeg -i video1.mp4 -i video2.webm -i video3.avi -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.mkv
参数说明:
如你所见,上面的命令合并了三种不同格式的文件,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 中需要用引号,防止通配符扩展。
四、注意事项
- 输入文件必须是有序的
- 输入文件格式最好相同
- 输入文件大小不同时后面的文件会被自动拉伸为和第一个文件同分辨率,当然也存在编码问题,自然会很慢
- 对于 Packed B-Frames 的视频,如果封装成 MKV 格式的时候提示 Can’t write packet with unknown timestamp,尝试在 FFmpeg 命令的 ffmpeg 后面加上 -fflags +genpts
Reference:
1、https://blog.csdn.net/doublefi123/article/details/47276739
2、http://www.voidcn.com/article/p-xzdyrfxk-bhs.html
热门推荐
防诈小课堂 | 多平台惊现“军装杀猪盘”,四步骗光全部积蓄
SLAM中的各种地图类型详解
Niko转指挥后能否成为下一个Apex?
比特币市场再度挑战10万美元关口,特朗普政策或成催化剂
甘草正确的泡水方法
过了英语6级,出国就不用考雅思了?请仔细看看这张表……
从文字角度分析1138话的壁画,合理推测三个世界故事的大致全貌。
手术医疗事故鉴定流程详解
空调高低压管怎么分
工业触摸一体机+PLC,为什么工厂都在用?这些应用场景才是关键
日本正式宣布,延迟退休至70岁!
“参聘制”来了!中小学教师身份如何界定?有人担心优秀师资流失
上野一日游攻略:从公园、动物园到购物美食全攻略
电动自行车新规实施,八大攻略助你安全出行
揭秘水质在线监测系统:24小时不间断的“水质哨兵”
经常吃麦片有什么好处和坏处
芯见小科普 | 不用电也能显示,墨水屏是什么原理?
檀木手链为什么是香的(沉香与檀香有什么区别?)
皮质醇节律是怎样的
病历中手术记录的书写内容及要求
深圳北站人潮汹涌,官方多措并举应对返程高峰
Web前端如何使用GPU进行渲染
多项式的带余除法:原理、步骤与应用
喝酒死亡案件的法律审视与责任判定
洗牙对牙齿究竟有坏处吗?洗牙的利与弊分析
云南省交通设计院公司创新智绘山区悬索桥
阿提拉帝国:对欧洲历史产生深远影响的匈奴领袖
古人的骗术——以前的人比现在更狡诈
【医史漫谈】第一位注解《伤寒论》的医学家——成无己
QQ女生网名大全:140个萌系网名推荐