Хорошо. Предположим, у вас есть 1.mp4
видео продолжительностью 30 секунд, 2.mp4
видео продолжительностью 30 секунд, и вы хотите вставить аудио 2.mp4
в 1.mp4
видео со смещением 5 секунд. А также вам нужны черные видеокадры, когда видеопоток 1.mp4
заканчивается. Таким образом, команда должна быть такой:
ffmpeg -i 1.mp4 -i 2.mp4 -f lavfi -i "color=black:size=1920x1080:duration=5" \ -filter_complex \ "[0:v][2:v]concat[video_out]; \ [0:a]atrim=duration=5[a1]; \ [a1][1:a]concat=v=0:a=1[audio_out]" \ -map [video_out] -map [audio_out] out.mp4
Эта команда делает следующее - мы берем 1.mp4
и в 2.mp4
качестве входных данных, а также генерируем 5 секунд видео с черными рамками, используя lavfi. У вас может быть другой размер входных видео, поэтому используйте тот же самый, что 1.mp4
и 2.mp4
для lavfi (измените 1920x1080
на любой размер входных данных).
Затем мы объединяем 1.mp4
черные кадры из lavfi с concat
, затем вырезаем первые 5 секунд аудио из 1.mp4
с atrim
и объединяем его с аудиопотоком из 2.mp4
( concat
снова). Затем просто укажите, что мы хотим выходные потоки в out.mp4
.
Надеюсь, поможет.