У меня есть скрипт для обработки / кодирования видео. Некоторые из видео имеют различный уровень звука (например, 2 видео были объединены, и у одного был громкий звук, а у другого тихий звук). Я хочу нормализовать звук таким образом, чтобы громкий звук был уменьшен, а тихий звук увеличен, чтобы сделать их почти одинаковыми. Хотя я использую HandbrakeCLI для кодирования, но любое другое решение, такое как ffmpeg, которое можно использовать с терминала Linux, будет работать.
Я провел некоторые исследования и разработки, но у меня очень ограниченные знания об аудио, поэтому я не мог заставить его работать. Некоторые из решений, которые я искал, - это нормализация звука и Replaygain (просто тег, но мне нужно напрямую изменить видео, когда кодирование не просто добавляет тег).
У меня есть образец ввода и пример вывода. Образец вывода создается путем ручного выбора громкого звука и его уменьшения, а также ручного выбора тихого звука и его увеличения.
Как вы можете видеть в оригинальном аудио, весь звук тихий, кроме последней маленькой части, которая слишком громкая, и на выходе оба практически равны. Но проблема в том, что я хочу сделать это автоматически.
Редактировать:
Результат ffmpeg -i in.mp4 -af "dynaudnorm" -vcodec copy out.mp4
: