Я хочу объединить аудиофайл (формат .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 использовать только первый видеопоток с первого входа и первый аудиопоток со второго входа для выходного файла.
Поскольку мне не разрешено писать комментарии к первому ответу с моей репутацией, добавление здесь, потому что у меня была эта проблема при кодировании webms.
Если ваш аудиопоток, например, длиннее, чем видеопоток, вы должны его обрезать, иначе у вас будет последний видеокадр в виде неподвижного изображения и звука.
Чтобы вырезать любой поток, вы можете использовать -ss [чч: мм: сс] -t [сс] перед каждым из -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
-open командная строка (windows+r -> cmd-> enter)
- затем перейдите в папку, где у вас есть аудио и видео файл
применить этот cmd
ffmpeg -i "videoFile.mp4" -i "audioFile.mp3" -shortest outPutFile.mp4
Введите .... вы получите новый файл с именем outPutFime.mp4 (объединенный файл аудио и видео)
Это сработало для меня:
ffmpeg.exe -i AudioT.m4a -i VideoT.mp4 -acodec copy -vcodec copy muxed.mp4
Попробуйте использовать mencoder (да, он основан на ffmpeg, но вы никогда не знаете). Я использую аргумент -audiofile
. Я обычно использую ffmpeg, так что примите этот совет с щепоткой соли.
И, если вы используете Windows, Mediacoder (больше не к сожалению, с открытым исходным кодом) работает ... это в основном интерфейс для многих кодировщиков gnu и нескольких несвободных.