29

Как заменить аудио в видеофайле, используя аудио файл, используя ffmpeg?

Я представляю, что команда выглядит так:

ffmpeg -i v.mp4 -i a.wav -MAGIC video-new.mp4

Это очень похоже на Как заменить аудиопоток в видеофайле несколькими аудиопотоками? но этот вопрос касается нескольких звуковых дорожек, что очень усложняет ситуацию, из-за чего неясно, какой части решения достаточно для простого обмена звуком.

1 ответ1

43

Вы можете скопировать видеопоток без перекодирования, чтобы сэкономить много времени, но перекодирование аудио может помочь предотвратить несовместимость:

ffmpeg -i v.mp4 -i a.wav -c:v copy -map 0:v:0 -map 1:a:0 new.mp4

-map 0:v:0 отображает первый (индекс 0) видеопоток со входа на первый (индекс 0) видеопоток на выходе.

-map 1:a:0 отображает второй (индекс 1) аудиопоток со входа на первый (индекс 0) аудиопоток на выходе.

Если аудио длиннее, чем видео, вы должны добавить -shortest перед именем выходного файла.

Не указав аудиокодек, автоматически выберет рабочий. Вы можете указать его, например, добавив -c:a libvorbis после -c:v copy .

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