ffmpeg. Как обрезать аудио поток при объединении видео после xfade transition?
Пытаюсь сделать плавный переход между несколькими короткими видео, через xfade=transition=fade.
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -i 6.mp4 -i 7.mp4 -i 8.mp4 -i 9.mp4 -i 10.mp4 -i 11.mp4 -i 12.mp4 -i 13.mp4 -i 14.mp4 -filter_complex "
[0:v][1:v]xfade=transition=fade:duration=0.5:offset=3.75[vfade0];
[vfade0][2:v]xfade=transition=fade:duration=0.5:offset=8.5[vfade1];
[vfade1][3:v]xfade=transition=fade:duration=0.5:offset=13.25[vfade2];
[vfade2][4:v]xfade=transition=fade:duration=0.5:offset=16.0[vfade3];
[vfade3][5:v]xfade=transition=fade:duration=0.5:offset=18.75[vfade4];
[vfade4][6:v]xfade=transition=fade:duration=0.5:offset=26.5[vfade5];
[vfade5][7:v]xfade=transition=fade:duration=0.5:offset=31.25[vfade6];
[vfade6][8:v]xfade=transition=fade:duration=0.5:offset=37.0[vfade7];
[vfade7][9:v]xfade=transition=fade:duration=0.5:offset=46.75[vfade8];
[vfade8][10:v]xfade=transition=fade:duration=0.5:offset=54.5[vfade9];
[vfade9][11:v]xfade=transition=fade:duration=0.5:offset=62.25[vfade10];
[vfade10][12:v]xfade=transition=fade:duration=0.5:offset=67.0[vfade11];
[vfade11][13:v]xfade=transition=fade:duration=0.5:offset=71.75,format=yuv420p[video];
[0:a][1:a]acrossfade=d=0.25[a0];
[a0][2:a]acrossfade=d=0.25[a1];
[a1][3:a]acrossfade=d=0.25[a2];
[a2][4:a]acrossfade=d=0.25[a3];
[a3][5:a]acrossfade=d=0.25[a4];
[a4][6:a]acrossfade=d=0.25[a5];
[a5][7:a]acrossfade=d=0.25[a6];
[a6][8:a]acrossfade=d=0.25[a7];
[a7][9:a]acrossfade=d=0.25[a8];
[a8][10:a]acrossfade=d=0.25[a9];
[a9][11:a]acrossfade=d=0.25[a10];
[a10][12:a]acrossfade=d=0.25[a11];
[a11][13:a]acrossfade=d=0.25[audio]" -map [video] -map [audio] -movflags +faststart -pix_fmt yuv420p res.mp4
Но получается так, что аудио поток дольше чем склеенное видео (потому что видео потоки накладываются друг на друга и при каждом наложении они теряют по 0.25сек), и они потихоньку расходятся.
Не могу разобраться как сделать чтобы аудио тоже обрезались. Пытался через atrim сократить длительность аудиоотрезков, а потом объединить их
ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i 4.mp4 -i 5.mp4 -i 6.mp4 -i 7.mp4 -i 8.mp4 -i 9.mp4 -i 10.mp4 -i 11.mp4 -i 12.mp4 -i 13.mp4 -i 14.mp4 -filter_complex "
[0:v][1:v]xfade=transition=fade:duration=0.5:offset=3.75[vfade0];
[vfade0][2:v]xfade=transition=fade:duration=0.5:offset=8.5[vfade1];
[vfade1][3:v]xfade=transition=fade:duration=0.5:offset=13.25[vfade2];
[vfade2][4:v]xfade=transition=fade:duration=0.5:offset=16.0[vfade3];
[vfade3][5:v]xfade=transition=fade:duration=0.5:offset=18.75[vfade4];
[vfade4][6:v]xfade=transition=fade:duration=0.5:offset=26.5[vfade5];
[vfade5][7:v]xfade=transition=fade:duration=0.5:offset=31.25[vfade6];
[vfade6][8:v]xfade=transition=fade:duration=0.5:offset=37.0[vfade7];
[vfade7][9:v]xfade=transition=fade:duration=0.5:offset=46.75[vfade8];
[vfade8][10:v]xfade=transition=fade:duration=0.5:offset=54.5[vfade9];
[vfade9][11:v]xfade=transition=fade:duration=0.5:offset=62.25[vfade10];
[vfade10][12:v]xfade=transition=fade:duration=0.5:offset=67.0[vfade11];
[vfade11][13:v]xfade=transition=fade:duration=0.5:offset=71.75,format=yuv420p[video];
[0:a]atrim=0:3.5[a0];
[1:a]atrim=0:4.5[a1];
[2:a]atrim=0:4.5[a2];
[3:a]atrim=0:2.5[a3];
[4:a]atrim=0:2.5[a4];
[5:a]atrim=0:7.5[a5];
[6:a]atrim=0:4.5[a6];
[7:a]atrim=0:5.5[a7];
[8:a]atrim=0:9.5[a8];
[9:a]atrim=0:7.5[a9];
[10:a]atrim=0:7.5[a10];
[11:a]atrim=0:4.5[a11];
[12:a]atrim=0:4.5[a12];
;[a0][a1][a2][a3][a4][a5][a6][a7][a8][a9][a10][a11][a12]concat=n=13:a=1[audio]" -map [video] -map [audio] -movflags +faststart -pix_fmt yuv420p res.mp4
но получаю ошибки
[Parsed_atrim_14 @ 0000023717438b80] Media type mismatch between the 'Parsed_atrim_14' filter output pad 0 (audio) and the 'Parsed_concat_27' filter input pad 0 (video)
[AVFilterGraph @ 0000023716f2b8c0] Cannot create the link atrim:0 -> concat:0 Error initializing complex filters.