Объединить много видео и один звук с помощью ffmpeg

#macos #terminal #ffmpeg

#macos #терминал #ffmpeg

Вопрос:

Я пытаюсь объединить много mp4 видео (h264) со звуком mp3 .

Я искал в Интернете и документах

Например, у меня есть:

  • 3 видеоролика mp4 (со звуком) по 15 секунд каждый
  • 1 аудио в формате mp3 продолжительностью 60 секунд

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

 [          audio          ]

  

Ответ №1:

Базовый синтаксис

 ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4 -i audio.mp3 -filter_complex "[0][1][2]concat=3[v]" -map "[v]" -map 3:a -shortest out.mp4
  

Комментарии:

1. Я получил ошибку с этой командой: ffmpeg -i video_a.mp4 -i video_b.mp4 -i sound.mp3 -filter_complex "[0][1][2] concat=3[v]" -map "[v]" -map 3:a -shortest concat.mp4 . Ошибка Stream specifier '' in filtergraph description [0][1][2] concat=3[v] matches no streams.

2. Моя команда предназначена для трех видео. Ваш для двоих. Удалить [2] и изменить на concat=2

3. Кроме того, есть ли возможность перезапускать звук при каждом запуске видео?

4. Самый простой способ сделать это — выполнить процесс с двумя командами: выполнить для каждого файла ffmpeg -i 1.mp4 -i audio.mp3 -map 0:v -map 1:a -c copy -shortest 1a.mp4 , а затем ffmpeg -i 1a.mp4 -i 2a.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1[v][a]" -map "[v]" -map "[a]" concat.mp4

5. Большое спасибо @Mulvya, ты знаешь отличное место для изучения ffmpeg (или книгу, которую можно купить)?