Як об'єднати аудіо та відео файл у ffmpeg


161

Я хочу об'єднати аудіофайл (формат .wav або .au) з відеофайлом (формат .mp4).

Підкажіть, будь ласка, як цього досягти. Я хочу об'єднати цей файл з новим .mp4 відеофайлом. Команда ffmpeg дуже вітається.


Тут є пристойна стаття, яка також може бути корисною ... cfc.kizzx2.com/index.php/muxing-audio-and-video-with-ffmpeg
Simon East

Відповіді:


260

Об’єднання відео та аудіо з перекодування звуку

Дивіться цей приклад, узятий із цієї записи в блозі, але оновлений для новішого синтаксису. Це повинно бути чимось наслідком:

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


Я спробував це, але ffmpeg замерзає під час злиття
Сенді

4
я не думаю, що у контейнерів mp4 можуть бути аудіо потоки WAV. Спробуйтеffmpeg -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
Лука

1
Я використовую це, і це замінює оригінальний аудіо з вхідного аудіо. Що робити, якщо я хочу об'єднати вхідний аудіо з аудіо вхідного відео?
Ікбал Малик

Дуже солодкі командні рядки ...
Чандра Накка

Чудово, я використовував ffmpeg -i video.mp4 -i audio.wav \ -c: v copy -c: aac -стриктний експериментальний output.mp4 для злиття MP3 з файлом WAV ... => mp4 5 хвилин, наданий 30 секунд ..Дякую
sonida

12

Оскільки мені не дозволяється писати коментарі до першої відповіді зі своєю репутацією, тут додаток, тому що у мене виникли проблеми при кодуванні веб-сторінок.
Якщо ваш аудіопотік, наприклад, довший, ніж відеопотік , вам потрібно вирізати його, інакше у вас буде останній кадр відео як нерухоме зображення та аудіо.

Щоб вирізати будь-який потік, ви можете використовувати -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

4
Ви також можете просто використовувати, -shortestщоб вирізати кінець.
nyuszika7h

5

-відкрити командний рядок (windows + r -> cmd-> enter)

- потім перейдіть до папки, де є аудіо- та відеофайл

застосувати цей cmd

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

Введіть .... ви отримаєте новий файл під назвою outPutFime.mp4 (об'єднаний файл аудіо та відео)


2
Дійсно не потрібно описувати, як тут використовувати командний рядок. Це майже означає, що користувачі зможуть це зрозуміти. Тим більше, що запитувач вказав FFmpeg. Все-таки -shortestтег дуже витончений. Набагато простіше, ніж у відповіді @ user136036.
Кет

3
Це перекодуватиме все, що, мабуть, не є тим, що потрібно.
mivk


'ffmpeg' не розпізнається як внутрішня чи зовнішня команда,
UniCoder

Ви повинні додати ffmpeg до PATH wikihow.com/Install-FFmpeg-on-Windows
Arete


1

Спробуйте використовувати mencoder (Так, це на основі ffmpeg, але ви ніколи не знаєте). Я використовую -audiofileаргумент. Я, як правило, використовую ffmpeg, тому прийміть цю пораду з дрібкою солі.

І якщо ви використовуєте Windows, Mediacoder (не з сумним відкритим кодом) працює ... це, в основному, інтерфейс для багатьох gnu-кодерів та декількох невільних.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.