2011-05-01 07:45:34 +0000 2011-05-01 07:45:34 +0000
178
178

Как объединить аудио и видео файл в формате ffmpeg

Я хочу объединить аудио файл (.wav или .au формат) с видео файлом (.mp4 формат).

Пожалуйста, посоветуйте мне, как этого добиться. Я хочу объединить этот файл с новым видеофайлом .mp4. Приветствуется команда ffmpeg.

Ответы (5)

286
286
286
2011-05-01 09:53:57 +0000

Слияние видео и аудио, с перекодировкой аудио

Смотрите этот пример, взятый из этой записи в блоге , но обновленный для более нового синтаксиса. Это должно быть что-то вроде:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental output.mp4

Здесь мы предполагаем, что видео файл пока не содержит аудио потока, и что вы хотите иметь тот же выходной формат (здесь, MP4), что и входной формат.

Вышеприведенная команда перекодирует аудио, так как MP4 не может нести PCM аудио потока. При желании вы можете использовать любой другой аудиокодек. Дополнительную информацию смотрите в AAC Encoding Guide .

Если ваш аудио или видео поток длиннее, вы можете добавить опцию -shortest так, чтобы ffmpeg прекратил кодирование после окончания одного файла.

Копирование аудио без перекодирования

Если ваш выходной контейнер может обрабатывать (почти) любой кодек - как MKV - то вы можете просто скопировать аудио и видео потоки:

ffmpeg -i video.mp4 -i audio.wav -c copy output.mkv

Замена аудио потока

Если ваше входное видео уже содержит аудио, и вы хотите заменить его, вы должны сказать ffmpeg какой аудио поток принять:

ffmpeg -i video.mp4 -i audio.wav \
-c:v copy -c:a aac -strict experimental \
-map 0:v:0 -map 1:a:0 output.mp4

map опция делает ffmpeg использовать только первый видео-поток с первого входа и первый аудио-поток со второго входа для выходного файла.

16
16
16
2015-01-10 01:11:26 +0000

Так как я не могу писать комментарии к первому ответу с моей репутацией, дополнение здесь, потому что у меня была эта проблема при кодировании веб-страниц. Если ваш аудио поток, например, дольше, чем видео поток, вы должны вырезать его, или в противном случае у вас будет последний видео кадр в качестве неподвижного изображения и аудио работает.

Для обрезки любого из потоков можно использовать -ss [hh:mm:ss] -t [ss] перед каждым из -i “file.ext”. -ss […] определит начальную точку для обрезки -t […] определит длину сегмента в секундах

Пример:

ffmpeg.exe -ss 00:00:10 -t 5 -i "video.mp4" -ss 0:00:01 -t 5 -i "music.m4a" -map 0:v:0 -map 1:a:0 -y out.mp4
8
8
8
2015-04-16 07:18:25 +0000

-открыть команду promt (windows+r ->cmd->enter)

-после этого перейдите в папку, где у вас есть аудио- и видеофайл

применить эту команду

ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4

Введите…вы получите новый файл с именем outPutFime.mp4 (объединенный аудио- и видеофайл)

5
5
5
2015-03-05 15:29:32 +0000

Это сработало для меня:

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
1
1
1
2013-03-12 22:47:37 +0000

Попробуйте использовать менкодер (Да, он основан на ffmpeg, но никогда не знаешь). Я использую аргумент -audiofile. Хотя я обычно использую ffmpeg, так что примите этот совет с небольшой долей соли.

И, если вы используете Windows, Mediacoder (к сожалению, уже не с открытым исходным кодом) работает… по сути, это фронтенд для множества gnu-кодеров и нескольких несвободных кодеров.

Похожие вопросы

8
12
3
6
1