前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ffmeg将多段视频合成一个视频「建议收藏」

ffmeg将多段视频合成一个视频「建议收藏」

作者头像
全栈程序员站长
发布2022-11-09 18:07:11
3.3K0
发布2022-11-09 18:07:11
举报

大家好,又见面了,我是你们的朋友全栈君。

ffmeg将多段视频合成一个视频 文章目录:


要处理多段视频太费劲啦,如果直接把多段小视频合成一段长视频处理起来就会方便很多,类似剪辑之后的视频合并操作!!!


ffmpeg视频拼接需要用 concat 参数。 此外ffmpeg拼接的视频和原视频的封装格式有关

一、方法一:利用文件列表

  1. 建立一个 .txt 文件,例如文件名为 filelist.txt ,里面存放的是三段小视频的文件名,如下:
代码语言:javascript
复制
file '/path/to/video1.mp4'
file '/path/to/video1.mp4'
file '/path/to/video1.mp4'
  1. 用ffmpeg 合成一段视频
代码语言:javascript
复制
ffmpeg -f concat -i filelist.txt -c copy output.mp4

注意:

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

二、方法二:不利用文件列表

合成命令如下:

代码语言:javascript
复制
ffmpeg -i "concat:video1.mp4|video2.mp4|video3.mp4" -c copy output.mp4

这种方法不友好,有些情况下用不成功

三. 方法三:拼接不同编码格式的文件

合成命令如下:

代码语言:javascript
复制
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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月24日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ffmeg将多段视频合成一个视频 文章目录:
  • 一、方法一:利用文件列表
  • 二、方法二:不利用文件列表
  • 三. 方法三:拼接不同编码格式的文件
  • 四、注意事项
相关产品与服务
媒体处理
媒体处理(Media Processing Service,MPS)是一种云端音视频处理服务。基于腾讯多年音视频领域的深耕,为您提供极致的编码能力,大幅节约存储及带宽成本、实现全平台播放,同时提供视频截图、音视频增强、内容理解、内容审核等能力,满足您在各种场景下对视频的处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档