- Якщо довжина відео коротша за довжину аудіо -
-shortest
це те, що ви хочете.
- Якщо довжина відео більше, ніж довжина аудіо, то жоден прапор не буде таким, як ви хочете.
Немає прапора для автоматизації цього рішення.
EDIT
Натхненний відповідь @ Deadcode, мені потрібно зробити ясно, що «ні один прапор для автоматизації» не є, звичайно , не так, якщо ви готові перекодувати : В цьому випадку йдуть з apad
як це було запропоновано @deadcode.
Якщо ви хочете уникнути перекодування (тобто -c:v copy
), відповідь стоїть.
Існує рішення щодо використання ffconcat
демуксера, але для цього потрібно трохи попрацювати:
- створити файл, що містить тишу в точно такому ж форматі, що і ваш аудіофайл ("silent.wav")
- створити лаконічний файл "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
фільтр без фільтруючого графіка, таким чином, дозволяючи mux без повторного кодування.