ffmpeg合成视频/图像四宫格

本文详细解释了如何使用ffmpeg命令将四个视频文件合成一个四宫格效果,涉及nullsrc、overlay、scale和setpts等参数的运用,展示了filter_complex的强大功能及其在视频处理中的应用。
摘要由CSDN通过智能技术生成

ffmpeg中多个视频的合成命令涉及到多个参数,下面我们根据四宫格的例子来解析各参数的具体意义。

ffmpeg合成视频四宫格的代码例子如下:

ffmpeg -i 1.mp4 -i 2.mp4 -i  3.mp4 -i  4.mp4 -filter_complex "nullsrc=size=640x480[base];[0:v] setpts=PTS-STARTPTS,scale=320x240[upperleft];[1:v]setpts=PTS-STARTPTS,scale=320x240[upperright];[2:v]setpts=PTS-STARTPTS, scale=320x240[lowerleft];[3:v]setpts=PTS-STARTPTS,scale=320x240[lowerright];[base][upperleft]overlay=shortest=1[tmp1];[tmp1][upperright]overlay=shortest=1:x=320[tmp2];[tmp2][lowerleft]overlay=shortest=1:y=240[tmp3];[tmp3][lowerright]overlay=shortest=1:x=320:y=240" out.mp4

 1.2.3.4.mp4为文件路径,out.MP4为输出文件路径,通过nullsrc创建overlay画布,画布大小640:480,使用[0:v][1:v][2:v][3:v]将输入的4个视频流去除,分别进行缩放处理,然后基于nullsrc生成的画布进行视频平铺,命令中自定义upperleft,upperright,lowerleft,lowerright进行不同位置平铺。

      

四宫格视频合成流程图

 

 `filter_complex`是一个强大的工具,用于构建复杂的滤镜图(filtergraphs)。滤镜图允许我们对视频和音频流进行各种处理,包括转码、裁剪、缩放、旋转、添加水印、调整颜色、应用特效等等。

`nullsrc`是一个特殊的源,它生成一个全黑或全色的视频。这可以用于多种目的,包括创建静态背景、测试目的或与其他视频流进行合成。`nullsrc`滤镜的语法允许我们指定视频的大小、帧率和其他参数。例如,`nullsrc=size=1280x720:rate=25:duration=5`将创建一个1280x720分辨率、25帧/秒、持续5秒的全黑视频。

`setpts`是一个过滤器选项,用于设置或调整视频帧的时间戳(PTS,Presentation TimeStamp)。PTS是解码器在输出每个帧时附加的时间戳,它告诉播放器何时显示该帧。`setpts`过滤器选项的语法是`setpts=expression`,其中`expression`是一个用于计算新PTS的表达式。这个表达式基于输入帧的原始PTS和一些其他参数。

  • 19
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值