Вопрос: Как объединить аудио и видео файл в ffmpeg


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

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


112
2018-05-01 07:45


Источник


Здесь есть достойная статья, которая также может быть полезна ... cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg - Simon East


Ответы:


Объединение видео и аудио с повторным кодированием звука

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

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

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

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

Если ваш аудио- или видеопоток длиннее, вы можете добавить -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 использует только первый видеопоток с первого входа и первый аудиопоток со второго входа для выходного файла.


184
2018-05-01 09:53



Я попробовал, но ffmpeg замерзает при слиянии - Sandy
Я не думаю, что контейнеры mp4 могут иметь звуковые потоки wav. Пытаться ffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv - Luke
Я использую это, и он заменяет исходный звук из входного аудио. Что делать, если я хочу объединить входной звук с аудио входного видео? - Iqbal Malik
Очень сладкие командные строки ... - Chandra Nakka
Отлично, я использовал ffmpeg -i video.mp4 -i audio.wav \ -c: v copy -c: aac -strict экспериментальный output.mp4 для объединения MP3 с Wav-файлом ... => mp4 5 минут, рендеринг 30 секунд ..Благодаря - sonida


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

Чтобы разрезать любой поток, вы можете использовать -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

7
2018-01-10 01:11



Вы также можете просто использовать -shortest разрезать конец. - nyuszika7h


-open command promt (windows + r -> cmd-> enter)

затем зайдите в папку, в которой у вас есть аудио и видео файл

примените этот cmd

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

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


3
2018-04-16 07:18



На самом деле нет необходимости описывать, как использовать командную строку здесь. В значительной степени подразумевается, что пользователи смогут это понять. Тем более, что об этом спрашивал FFmpeg. Тем не менее, -shortest тег очень изящный. Гораздо проще, чем в ответе @ user136036. - Kat
Это приведет к повторному кодированию всего, что, вероятно, не является тем, что требуется. - mivk
adaptivesamples.com/how-to-install-ffmpeg-on-windows - UniCoder
'ffmpeg' не распознается как внутренняя или внешняя команда, - UniCoder
Вы должны добавить ffmpeg в PATH wikihow.com/Install-FFmpeg-on-Windows - Arete


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

ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4

3
2018-03-05 15:29



он частично работает для меня, не работает для всех входов, некоторые результирующие видеозаписи остаются такими же на выходе - NarendraJi
Подробно: superuser.com/questions/590201/add-audio-to-video-using-ffmpeg - Vadzim


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

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


1
2018-03-12 22:47