- Если длина видео короче, чем длина звука,
-shortest
это то , что вы хотите.
- Если длина видео больше, чем длина звука, то никакой флаг вообще не будет тем, что вам нужно.
Нет флага для автоматизации этого решения.
РЕДАКТИРОВАТЬ
Вдохновленный ответом @ deadcode, мне нужно прояснить, что «нет флага для автоматизации», конечно, не соответствует действительности, если вы хотите перекодировать : в этом случае apad
следуйте указаниям @deadcode.
Однако, если вы хотите избежать перекодирования (то есть -c:v copy
), ответ остается в силе .
Существует обходной путь с использованием ffconcat
демультиплексора, но он требует небольшой работы:
- создайте файл, содержащий тишину в том же формате, что и ваш аудиофайл ("silence.wav")
- Создайте файл concat «audio.ffconcat» (с таким количеством строк молчания, сколько вам нужно, чтобы звук был достаточно длинным):
,
file 'audiofile.wav'
file 'silence.wav'
file 'silence.wav'
...
file 'silence.wav'
- запустить
ffmpeg -i videofile.mp4 -f concat -i audio.ffconcat -c:v copy output.mp4
Это позволит синтезировать apad
фильтр без графа фильтра, что позволит выполнять мультиплексирование без перекодирования.