У меня есть 7 коротких видеоклипов одинакового размера, частоты кадров и т.д. Я хочу объединить их один за другим с 2-х секундным кроссфейдом, и не потерять звук. Взятый из более раннего поста здесь, я попытался просто объединить / смешать первые два, используя:
ffmpeg -i *clip1.mp4 -i *clip2.mp4 \
-filter_complex "[0]fade=t=out:st=0:d=1:alpha=1,setpts=PTS-STARTPTS[va0]; \
[1]fade=t=in:st=0:d=1:alpha=1,setpts=PTS-STARTPTS[va1]; \
[va0][va1]overlay[outv];[0][1]amix[outa]" \
-map [outv] -map "[outa]" -crf 10 out.mp4
Однако при этом получается видео, которое сразу же затухает в первом видео и заканчивается точно такой же продолжительностью, что и второе видео (что составляет 40 секунд). Я предполагаю, что это из-за "st = 0" для первого видео [0]? Однако, если я изменю это значение на «st = 18» (первое видео имеет длительность 20 секунд), полученное объединенное видео (out.mp4) по-прежнему будет сразу же исчезать с первым видео (а вместо этого все видео будет всего 40 секунд). из 58). Тем не менее, аудио для первого теперь длится 18 секунд (но теперь оно накладывается на второе видео и его аудио на 18 секунд). Есть предложения, что попробовать?