Я хочу об'єднати аудіофайл (формат .wav або .au) з відеофайлом (формат .mp4).
Підкажіть, будь ласка, як цього досягти. Я хочу об'єднати цей файл з новим .mp4 відеофайлом. Команда ffmpeg дуже вітається.
Я хочу об'єднати аудіофайл (формат .wav або .au) з відеофайлом (формат .mp4).
Підкажіть, будь ласка, як цього досягти. Я хочу об'єднати цей файл з новим .mp4 відеофайлом. Команда ffmpeg дуже вітається.
Відповіді:
Дивіться цей приклад, узятий із цієї записи в блозі, але оновлений для новішого синтаксису. Це повинно бути чимось наслідком:
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 -i audio.wav -i video.mp4 -acodec copy -vcodec copy -f mkv output.mkv
Оскільки мені не дозволяється писати коментарі до першої відповіді зі своєю репутацією, тут додаток, тому що у мене виникли проблеми при кодуванні веб-сторінок.
Якщо ваш аудіопотік, наприклад, довший, ніж відеопотік , вам потрібно вирізати його, інакше у вас буде останній кадр відео як нерухоме зображення та аудіо.
Щоб вирізати будь-який потік, ви можете використовувати -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
-shortest
щоб вирізати кінець.
-відкрити командний рядок (windows + r -> cmd-> enter)
- потім перейдіть до папки, де є аудіо- та відеофайл
застосувати цей cmd
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
Введіть .... ви отримаєте новий файл під назвою outPutFime.mp4 (об'єднаний файл аудіо та відео)
-shortest
тег дуже витончений. Набагато простіше, ніж у відповіді @ user136036.
Це працювало для мене:
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
Спробуйте використовувати mencoder (Так, це на основі ffmpeg, але ви ніколи не знаєте). Я використовую -audiofile
аргумент. Я, як правило, використовую ffmpeg, тому прийміть цю пораду з дрібкою солі.
І якщо ви використовуєте Windows, Mediacoder (не з сумним відкритим кодом) працює ... це, в основному, інтерфейс для багатьох gnu-кодерів та декількох невільних.