Linux: замена звука в видео без тяжелого рендеринга

Преамбула

Понадобилось мне видоизменить звук в видео, а само видео не трогать. Долго ебался с этим в Vegas (на винде), но в Linux оказалось все весьма просто, и не надо ждать туеву хучу времени, пока тебе вегас все перерендерит.

Внимание!

Способ подходит не для всех видео (и аудио) форматов, иногда нужно что-нибудь куда-нибудь переконвертить.

Удаление оригинальной звуковой дорожки

ffmpeg -i 1.mp4 -vcodec copy -an bez.mp4

Имя входного файла 1.mp4 и выходного bez.mp4 замените на свои.

На выходе появится bez.mp4, файл с оригинальным видео, но без звука. Работать должно для всех форматов, которые поддерживает ffmpeg.

Добавление измененной звуковой дорожки

ffmpeg -i bez.mp4 -i 2.mp3 -vcodec copy -acodec copy so.mp4

Естественно, замените имена файлов bez.mp4, 2.mp3 и so.mp4 на свои.

Вот тут, кстати, и возникла проблема, которую я описывал в преамбуле. Измененная дорожка была в формате wav, а не mp3, ffmpeg на это внимания не обратил, а вот плеер потом подавился. Пришлось конвертить подкладываемый звуковой файл в mp3.

UPD из комментов

1. ффмпег есть и под винду

2. промежуточное немое видео не нужно

если аудио уже в мп3

ffmpeg -i 1.mp4 -i 2.mp3 -map 0:0 -map 1 -c copy so.mp4

если аудио нужно перекодировать из вав в мп3

ffmpeg -i 1.mp4 -i 2.wav -map 0:0 -map 1 -c:v copy -c:a libmp3lame -b:a 192k so.mp4

если битрейт не указать, будет 128

расширения должны соответствовать содержанию

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *