如何在音频流中使用Blend和Concat过滤器?

我试图将两个视频文件与concat,blend和amx过滤器合并。

当我仅使用视频流时,我已经成功了两个视频。 之后添加音频流的代码(过滤器脚本) Ffmpeg无法正常工作。

  1. 两个视频淡入淡出(很好)

    ffmpeg -y -i "A.mp4" -i "B.mp4" -filter_complex "[0:v]split[v000][v010];[1:v]split[v100][v110];[v000]trim=0:17[v001]; [v010]trim=17:27[v011t];[v011t]setpts=PTS-STARTPTS[v011];[v100]trim=0:10[v101]; [v110]trim=10:50[v111t];[v111t]setpts=PTS-STARTPTS[v111];[v101] [v011]blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1- (if(gte(T,T/10)))'[outv];[v001][outv][v111] concat=n=3[outv2]" -vcodec libx264 -map [outv2] -t 50 d:\Output\1.mp4

  2. 1个音频流

    ffmpeg -y -i "A.mp4" -i "B.mp4" -filter_complex "[0:v]split[v000][v010];[1:v]split[v100][v110];[v000]trim=0:17[v001];[v010]trim=17:27[v011t];[v011t]setpts=PTS-STARTPTS[v011];[v100]trim=0:10[v101];[v110]trim=10:50[v111t];[v111t]setpts=PTS-STARTPTS[v111];[0:a]asplit[a000][a010];[1:a]asplit[a100][a110];[a000]atrim=0:17[a001];[v010]atrim=17:27[a011t];[a011t]asetpts=PTS-STARTPTS[a011];[a100]atrim=0:10[a101];[a110]atrim=10:50[a111t];[a111t]asetpts=PTS-STARTPTS[a111];[v101][v011]blend=all_expr='A*(if(gte(T,T/10))+B*(1-(if(gte(T,T/10)))'[outv];[a101][a011]amix=inputs=2:duration=first:dropout_transition=3[outa];[v001][outv][v111] [a001][outa][a111] concat=n=6:v=1:a=1:unsafe=1 [outv2][outa2]" -vcodec libx264 -acodec aac -map [outv2] -map [outa2] -t 50 d:\Output\1.mp4

错误消息 'Parsed_blend_16'过滤器输出板0(视频)和'Parsed_concat_18'过滤器输入板1(音频)之间的媒体类型不匹配 [AVFilterGraph @ 026d3680]无法创建链接blend:0-> concat:1 初始化复杂过滤器时出错。 参数无效

如何解决?

ps。我认为过滤器脚本太复杂了。 您能告诉我更简单的方法如何在ffmpeg中使用crossfade吗?

gareth1987 回答:如何在音频流中使用Blend和Concat过滤器?

已解决如果要一次在脚本中使用视频和音频流,则应在写完视频流脚本之后再做音频。

"[0:v]split[v000][v010];[1:v]split[v100][v110];
[v000]trim=0:17[v001];[v010]trim=17:27[v011t];[v011t]setpts=PTS-STARTPTS[v011];
[v100]trim=0:10[v101];[v110]trim=10:50[v111t];[v111t]setpts=PTS-STARTPTS[v111];
[v101][v011]blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1- 
(if(gte(T,T/10)))'[outv];
[v001][outv][v111] concat=n=3 [outv2];
[0:a]asplit[a000][a010];[1:a]asplit[a100][a110];[a000]atrim=0:17[a001];
[a010]atrim=17:27[a011t];[a011t]asetpts=PTS-STARTPTS[a011];
[a100]atrim=0:10[a101];[a110]atrim=10:50[a111t];
[a111t]asetpts=PTS-STARTPTS[a111];
[a101][a011]acrossfade=d=10[outa];
[a001][outa][a111] concat=n=3:v=0:a=1:unsafe=1 [outa2]"
本文链接:https://www.f2er.com/3162610.html

大家都在问