ffmpeg音视频拼接

ffmpeg -i 3.mp4 -f lavfi -i color=#123000:s=368x640 -i 2.mp3 -filter_complex "[0:a][2:0]concat=n=2:v=0:a=1[outa];[0:v]fade=t=in:st=0.3:d=0.2[va0];[va0]fade=t=out:st=9:d=1:alpha=1[va2];[1:0]fade=t=in:d=0.5:alpha=1,setpts=PTS-STARTPTS+9/TB,trim=duration=2[va1];[va2][va1]overlay[outv]" -map [outv] -map [outa] -shortest -y out.mp4

-f lavfi -i color=#123000:s=368x640 虚拟color背景368x640幕布做音频背景输入
[0:a][2:0]concat=n=2:v=0:a=1[outa] concat取视频音频流拼接音频文件形成新的音频流
[0:v]fade=t=in:st=0.3:d=0.2[va0];[va0]fade=t=out:st=9:d=1:alpha=1[va2];视频增加淡入淡出特效
[1:0]fade=t=in:d=0.5:alpha=1,setpts=PTS-STARTPTS+9/TB,trim=duration=2[va1];第二部分视频由虚拟的幕布展示,,设置淡入,,并控制开始时间在第一个视频结束后(setpts=PTS-STARTPTS+9)视频时长10s 第9s是开始过过渡转场,trim=duration=2控制持续时长,,mp3时长应大于两秒
[va2][va1]overlay[outv] overlay重叠错位视频流
-map [outv] -map [outa] -shortest -y out.mp4 输出视频流和音频流
待解决问题:
1 . 368x640按理应为输入MP4的分辨率,,不过由于 [va2][va1]overlay[outv]将幕布叠于视频流上,因此可以将此幕布设置较大即可,,不过这是一种假解决状态罢了。
2 . 由于setpts=PTS-STARTPTS+9的存在需要获取MP4原始时长,所以一条指令似乎并不能解决,不知道ffmpeg有没有直接可以获取输入时长的命令,此外就是关于fade淡出使用st=9也需要获取输入MP4时长,,如果有类似-1值让其最后一秒转场就更好了。
附上结果

待审核…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值