FFMPEG 合并视频文件(无损)
FFMPEG 合并视频文件(无损)
前言
最近在做视频转码相关业务,但是片源商给了一些DVD的零散视频片段,需要自己去合并片段并进行业务转码,本篇文章主要记录视频合并的过程及常见的合并方式。
环境
FFMPEG BUILDS 4.4.1
FFmpeg Builds
GeForce GTX 1060(NVIDIA)
显卡支持列表
windows 10
OVB格式视频文件
VTS_01_1.VOB
VTS_01_2.VOB
VTS_01_3.VOB
VTS_01_4.VOB
VTS_01_5.VOB
视频合并方式
concat 分离器
新建 merge.txt
file 'VTS_01_1.VOB'
file 'VTS_01_2.VOB'
file 'VTS_01_3.VOB'
file 'VTS_01_4.VOB'
file 'VTS_01_5.VOB'
合并视频文件
ffmpeg -f concat -safe 0 -i merge.txt -c copy vts.mp4
PS:如果使用的是相对路径可以不加
-safe 0
文件列表生成技巧
如果视频文件过多,merge.txt
复制很繁琐,所以可以使用命令来快速生成文件列表文件。
windows
(for %i in (*.VOB) do @echo file '%i') > merge.txt
PS:*.VOB 代表视频文件后缀。
linux
# bash
for f in *.wav; do echo "file '$f'" >> merge.txt; done
# printf
printf "file '%s'\n" *.wav > merge.txt
concat 协议
缺点
这种方式使用范围比较小,只适合MPEG
等视频格式;
合并视频
ffmpeg -i "concat:input1.ts|input2.ts|input3.ts" -c copy merge.ts
拓展
如果是其他格式文件,则可以先转码在合并,例如
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate1.ts
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate2.ts
ffmpeg -i "concat:intermediate1.ts|intermediate2.ts" -c copy -bsf:a aac_adtstoasc -movflags +faststart output.mp4
PS:
-movflags
+faststart
使用这两个属性生成的文件可以边下边看。
concat 过滤器(有损)
说明
过滤器适用于同步视频和音频流的段。所有段都必须具有相同数量的每种类型的流,并且也将是输出时的流数。
合并视频
ffmpeg -i input1.mp4 -i input2.webm -i input3.mov \
-filter_complex "[0:v:0][0:a:0][1:v:0][1:a:0][2:v:0][2:a:0]concat=n=3:v=1:a=1[outv][outa]" \
-map "[outv]" -map "[outa]" output.mkv
PS:输入流有三个,分别是
input1.mp4
、input2.webm
和input3.mov
,然后告诉ffmpeg取出视频中的视频流及音频流,使用concat过滤器,告知它有三个视频流,他们都分别有一个视频流及一个音频流,连接并产生新的视频流[outv]及音频流[outa],然后映射新的视频流及音频流到新的文件output.mkv
。
总结
以上就是使用FFMPEG合并视频的方式及过程,各种方式各有利弊,推荐 concat分离器
> concat协议
> concat过滤器
,不能说哪种方式最好,只能根据实际情况来选择,如果大家有更好的方式或者建议,欢迎讨论。
FFMPEG 合并视频文件(无损)相关推荐
- ffmpeg合并视频文件
ffmpeg合并视频文件 创建列表文件filelist.txt,将需要合并的文件按顺序加入,内容如下所示: ffconcat version 1.0 file path/test_1.mp4 file ...
- 使用ffmpeg合并视频文件的三种方法
ffmpeg合并视频的方法有三种.国内大多数仅介绍了其中之一.于是觉得有必要翻译一下.其实在ffmpeg的 FAQ文档中有比较详细的说明. 使用concat协议进行视频文件的合并 这种方式的适用场景是 ...
- 通过ffmpeg合并视频文件
1. 生成将要合并的视频文件列表. 通过以下脚本生成将要合并的视频文件列表mylist.txt: (for %i in (*.mp4) do @echo file '%i') > mylist. ...
- linux ffmpeg 合并视频文件,使用ffmpeg合并视频
需求:将十几个MP4视频文件合并为1个视频. 思路: 先将MP4文件转化为同样编码形式的ts流(ts流支持concate) 第二步,连接(concate)ts流 最后,把连接好的ts流转化为MP4. ...
- FFmpeg 合并视频文件没声音,不同步原因
查了不少帖子也没搞明白,可能懂的人不会遇到吧. 1 没声音是因为我几个视频文件中,有的没音轨,就是用文字生成了个视频,需要先给它加个dummy的音轨才行. 2 视频不同步是因为各个视频格式不一样,参数 ...
- 使用 ffmpeg 快速合并视频文件
1. 下载安装 ffmpeg 在官网上下载 ffmpeg 链接: Download FFmpeg windos 下下载 .ZIP 格式的 ffmpeg 直接解压即可,无需安装,之后配置好环境变量就好了 ...
- java利用ffmpeg追加合并视频文件
java利用ffmpeg追加合并视频文件 首先要用到ffmpeg,可以根据操作系统自行下载 每个视频格式要一样,分辨率要一样 多个视频地址以list存放,直接上代码 /*** 合并视频文件* @par ...
- ffmpeg 合并转换文件_使用FFmpeg转换媒体文件的快速指南
ffmpeg 合并转换文件 有许多开源工具可用于编辑,调整和将多媒体准确地转换为您所需的内容. 诸如Audacity或Handbrake之类的工具非常出色,但有时您只想快速将文件从一种格式更改为另一种 ...
- ffmpeg音视频文件音视频流抽取,初步尝试人声分离
文章目录 ffmpeg抽取音视频文件中的音频流 音频流类型 AAC与m4a的区别 AAC与mp3的区别 用ffmpeg查看视频的信息 用ffmpeg抽取AAC音频流 从AAC文件中获取音轨 音轨是什么 ...
最新文章
- linux下wxr的权限,Day16-Linux权限知识和应用实践讲解
- 解决sublime3 中文乱码问题
- 东北农业大学考研计算机大纲,东北农业大学(专业学位)计算机技术研究生考试科目和考研参考书目...
- console.log打印值,颜色 - 解决篇
- window.location.href如何多次请求_何为幂等?如何设计?
- 总结对象的两个方法valueof和tostring
- Typora+PicGo+Gitee 图床配置
- ‘sort’命令的14个有用的范例
- 通过tf的tensorboard可视化训练进度
- windows防火墙ntp服务器_ad域windows ntp服务器配置详解
- 这一周我学习了什么(一)
- IMS:InputChannel通过socket发送Input给App
- html5 龙,百度移动可搜龙点睛 技术创新挺进HTML5元年
- 拜登签署芯片法案后,英特尔股票的前景如何?
- DPDK应用示例指南简介(汇总)
- 安全策略篇 安全策略发展历程详解
- 生物特征识别学科发展报告
- 网络安全应急响应技术实战指南(奇安信)
- Date_Calendar_SimpleDateFormat_大浮点数和大整数
- 知识图谱在金融领域的应用