使用android ffmepg xfade进行视频拼接时添加转场滤镜,解决了第二个视频无声音的情况。

ffmpeg -i /storage/emulated/0/DCIM/Camera/aacb.mp4 -i /storage/emulated/0/DCIM/Camera/ty.mp4 -filter_complex [0:v][1:v]xfade=transition=circlecrop:duration=1000ms:offset=13766ms,format=yuv420p;[0:a][1:a]acrossfade=d=1 -movflags faststart -threads 5 -preset ultrafast -strict -2 -vcodec libx265 -y /storage/emulated/0/DCIM/Camera/aac0.mp4

使用android ffmepg xfade进行视频拼接时添加转场滤镜,在接入过程中出现两个视频拼接滤镜,第二个视频没有声音的情况,经过查询[0:a][1:a]acrossfade=d=1这段命令非常关键,以上命令是完整的解决了第二个视频无声音的情况。

还有个重要的问题是对于duration和offset的理解,这两个时间总和小于等于第一个视频的时间xfade的滤镜特效才能有效呈现出来,如果offset超过了第一个视频的时间长度,那么xfade的滤镜特效就会被忽略,总之v1:duration=xfade:duration+xfade:offset。

特别提醒:使用xfade滤镜的所有视频的帧率、dar、sar、时间基一致,音频的采样率和时间基一致。

可以使用scale和setdar、-r来设置视频的输出宽高、显示宽高、帧率。

参考代码:

ffmpeg -i /storage/emulated/0/DCIM/Camera/aacb.mp4 -i /storage/emulated/0/DCIM/Camera/ccc.mp4 -filter_complex [1:v]scale=-1:1080,pad=1920:1080:(1920-iw)/2:0:black[v1];[0:v][v1]xfade=transition=circlecrop:duration=1000ms:offset=13766ms,format=yuv420p;[0:a][1:a]acrossfade=d=1 -movflags faststart -threads 5 -preset ultrafast -strict -2 -vcodec libx265 -y /storage/emulated/0/DCIM/Camera/aac0.mp4
 
 

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值