ffmpeg - заменить аудио в видео


48

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

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

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

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

Ответы:


68

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

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.


2
или напрямую -c copyперемюксировать аудио и видео без перекодирования любого из потоков ^^
Франческо Йоши Гоббо,

1
Знаете ли вы, как конвертировать новое аудио в том же формате (с теми же параметрами), что и в оригинальном видео? Я имею в виду, что мне нужно, чтобы новые аудио кодировались так же, как это было со старым аудио.
Костанос

Работает как шарм!
Tessaracter

@ Kostanos не автоматически, но я бы хотел. Пожалуйста, задайте еще один вопрос. Вы можете сослаться на это, чтобы уточнить, что у вас новое.
qubodup
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.