ffmpeg 视频拼接
来源:互联网 发布:优化排名工具 编辑:程序博客网 时间:2024/06/05 11:02
1. 视频拼接
ffmpeg视频拼接需要用concat参数。
此外ffmpeg拼接的视频和原视频的封装格式有关
2. ffmpeg视频拼接的几种方法
2.1 利用文件列表
# this is a commentfile '/path/to/file1'file '/path/to/file2'file '/path/to/file3'
ffmpeg -f concat -i mylist.txt -c copy output
2.2 不利用文件列表
ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg
这种方法不友好,有些情况下用不成功
2.3. 拼接不同编码格式的文件
ffmpeg -i input1.mp4 -i input2.webm -i input3.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 中需要用引号,防止通配符扩展。
2.4 注意事项
- 输入文件必须是有序的
- 输入文件格式最好相同
- 输入文件大小不同时后面的文件会被自动拉伸为和第一个文件同分辨率,当然也存在编码问题,自然会很慢
- 对于 Packed B-Frames 的视频,如果封装成 MKV 格式的时候提示 Can’t write packet with unknown timestamp,尝试在 FFmpeg 命令的 ffmpeg 后面加上 -fflags +genpts
3. 文件格式友好性
4. 非友好格式文件
遇到某些非友好格式文件或者拼接的视频无法正常播放时,最好将视频格式转换为ts或者mpg
5. 参考文献
[1] http://trac.ffmpeg.org/wiki/Concatenate
0 0
- ffmpeg 视频拼接
- ffmpeg 合并 拼接 mp4视频
- ffmpeg 合并 拼接 mp4视频
- 通过 ffmpeg 无损剪切/拼接视频
- 通过 ffmpeg 无损剪切/拼接视频
- 通过 ffmpeg 无损剪切/拼接视频
- 通过 ffmpeg 无损剪切/拼接视频
- PHP脚本调用ffmpeg对视频截图并拼接
- 利用ffmpeg对视频进行裁剪与拼接
- ffmpeg 命令行实现多路视频拼接播放
- java调用本地ffmpeg.exe分离音视频 分帧 图片合成视频 拼接视频
- ffmpeg 拼接文件
- ffmpeg 视频
- android 视频录制,视频拼接
- OpenCV进行视频拼接
- 全景视频拼接关键技术
- 视频拼接处理器
- 全景视频拼接关键技术
- 易飞ERP 9.0.12注册机
- 基于FFMPEG和SDL的音视频播放器
- 【原创】比赛
- Android 6.0运行时权限的申请使用及EasyPermissions的使用
- 1100. Mars Numbers (20)
- ffmpeg 视频拼接
- eclipse tomcat 内存不够解决
- Django 1.环境搭建
- json解析与传递
- 在GDB中查看 C/C++ Unicode文本变量内容(wchar_t*)
- 深度学习
- snmpget请求获取服务器参数(snmpv3) 并连接MySQL数据库
- lightoj 1033 区间dp
- Android Studio使用汇总