Я хочу объединить несколько изображений в видео в разное время, но мне это не удалось.

Сначала я объединяю первую группу картинок с 'video1.mp4' следующим кодом:

$ ffmpeg -loop 1 -r 30 -i img%2d.png -t 00:01:30 -shortest video1.mp4

Затем я объединяю вторую группу в video2.mp4 таким же образом.

Но когда я объединяю 'video1.mp4' и 'video2.mp4' следующим кодом:

$ ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex \
  "[0:0] [0:1] [1:0] [1:1] concat=n=2:v=1:a=1" output.mp4

Я получил сообщение об ошибке:

Спецификатор потока ':1' в описании фильтра графа [0:0] [0:1] [1:0] [1:1] concat = n = 2:v = 1:a = 1 не соответствует ни одному потоку.

И я обнаружил, что это сообщение об ошибке появляется только тогда, когда у видео нет аудиоданных, но мне нужно объединить все видео, прежде чем я добавлю другой аудиофайл в окончательное видео.

Не могли бы вы помочь мне объединить несколько видео без звука?

1 ответ1

1

Просто у вас нет аудиопотока в ваших видео-изображениях. Там у вас есть только видео поток. Поэтому, когда вы пытаетесь получить аудиопоток от источника, где аудиопоток недоступен, вы получаете эту ошибку. В первой команде вы просто создаете видео из набора изображений, и звук не задействован. Так что на выходе этой команды будет только видеопоток. В вашей второй команде [0:0] относится к первому потоку первого входа, и это видео поток в вашем случае. [0:1] относится ко второму потоку второго входа и там, где он умирает, не существует.

Поскольку у вас нет аудио с любым из видео, вы объединяете простое исправление:

ffmpeg -y -i video1.mp4 -i video2.mp4 -filter_complex 
"[0:0][1:0]concat=n=2:v=1:a=0" output.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .