Как объединить два видео без аудиопотока в ffmpeg

0

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

Сначала я объединяю первую группу картинок с '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 не соответствует ни одному потоку.

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

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

Morshues
источник

Ответы:

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
Chamath
источник