2

Короче говоря, я хочу объединить аудио из видео с источником музыки (mp3, aac ...).

У меня есть видео файл со звуком. Я хочу добавить к нему саундтрек, чтобы звук из выходного файла содержал речь и музыку.

Я искал несколько решений, но все, что я нашел, это как добавить другую звуковую дорожку в качестве выбора между audio1 и audio2. Вот образец, который я нашел:

ffmpeg -i input.mp4 -i music.mp3 -map 0 -map 1 \
   -vcodec copy -acodec copy merged.mp4

Кроме того, я хочу, чтобы музыка соответствовала длине видео (я думаю, что опция -shortest может достичь этого, пожалуйста, подтвердите).

Большое спасибо !

1 ответ1

2

Два стерео входа на один стерео выход

Вы можете использовать amerge чтобы объединить оба аудиопотока в один поток, и затем аудиофильтр pan чтобы объединить получающиеся 4 канала в 2 канала (стерео). Это предполагает, что оба ваших входа стерео:

ffmpeg -i input.mp4 -i music.mp3 -codec:v copy -codec:a aac -b:a 192k \
-strict experimental -filter_complex "amerge,pan=stereo:c0<c0+c2:c1<c1+c3" \
-shortest output.mp4
  • Так как вы хотите манипулировать только аудио, -codec:v copy используется для потокового копирования видео.

  • -strict experimental или -strict -2 необходим для использования нативного кодера AF FFmpeg. Также см. Руководство по кодированию FFmpeg и AAC для других опций и примеров.

  • Синтаксис панорамирования c0<c0+c2:c1<c1+c3 можно перевести как «для выходного канала c0 (левый канал), объединить левые каналы обоих входов (входные каналы c0 и c2) и для выходного канала c1 (правый канал), объедините правые каналы обоих входов (входные каналы c1 и c3) ".

  • -shortest сделает продолжительность вывода такой же, как продолжительность самого короткого ввода.

Два моно входа на один стерео выход

Это проще, но просто скопирует моноканал каждого входа на каждый канал выхода:

ffmpeg -i input.mp4 -i music.mp3 -codec:v copy -codec:a aac -b:a 192k \
-strict experimental -ac 2 -shortest output.mp4

Также см

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .