Всем доброго дня!
Недавно возник новый вопрос.
Часто присылают видео файлы с очень разным качеством и видео и аудио. В основном я обрабатываю видео так, чтобы подготовить файлы к загрузке на YouTube. Для этого приходится понижать битрейт например с 20000 кб/с до 2500 кб/с.
Однако, подчас поступают файлы с очень низким уровнем записи звука. Что же можно предпринять?
Как обычно, вновь выручает комбайн - утилита FFMPEG. Похоже, она умеет всё. Всё что только возможно сделать с видео и аудио. И, похоже, она работает с любыми контейнерами.
Повышение уровня аудио
Итак, как же повысить уровень аудио дорожки в видео файле?
Вот так:
ffmpeg -i $INPUT_FILE -vcodec copy -af "volume=10dB" $OUTPUT_FILE
Если же нужно понизить уровень аудио в видео файле, тогда можно сделать вот так:
ffmpeg -i $INPUT_FILE -vcodec copy -af "volume=-10dB" $OUTPUT_FILE
Рецепт, как обычно, найден на просторах Интернет,
вот здесь.
Однако, и на
оффсайте есть нужная информация.
Нормализация
Ещё более интересным представляется процесс нормализации звуковых дорожек файлов.
Вначале предлагается проанализировать файл:
ffmpeg -i video.avi -af "volumedetect" -vn -sn -dn -f null /dev/null
с примерно таким выводом:
[Parsed_volumedetect_0 @ 0x7f8ba1c121a0] mean_volume: -16.0 dB
[Parsed_volumedetect_0 @ 0x7f8ba1c121a0] max_volume: -5.0 dB
[Parsed_volumedetect_0 @ 0x7f8ba1c121a0] histogram_0db: 87861
Здесь максимальный уровень -5.0 dB, значит нормализация должна быть 5 dB.
Обычный аудио файл
ffmpeg -i input.wav -af "volume=5dB" output.mp3
AVI формат (обычно с mp3)
ffmpeg -i video.avi -af "volume=5dB" -c:v copy -c:a libmp3lame -q:a 2 output.avi
MP4 файл
ffmpeg -i video.mp4 -af "volume=5dB" -c:v copy -c:a aac -b:a 192k output.mp4