Простой скрипт для пакетной нормализации звука в видеофалах.
Позволяет пакетно нолмализовать всю видиеотеку с помощью EBU R128 алгоритма.
Установка:
- Установить Ffmpeg full, самое простое, воспользоваться инсталлером, он пропишет правильную PATH. https://github.com/icedterminal/ffmpeg-installer/releases/tag/5.1.0.20220727 Для проверки, что всё встало правильно, в cmd
ffmpeg -version
-
Установить сам Python. https://www.python.org/downloads/
-
Установить нужные библиотеки, для этого в cmd от админа в директории скрипта (возможно от админа)
pip install -r requirements.txt
Настройка:
Достаточно указать пути, в файле config.ini, поддреживаются как относительные пути, типа
'../Video_01' # Значит Video_01 находится на уровень выше от срипта.так и абсолютные пути виндовс, однако в этом случае, необходимо экранировать слеши, например так
'E:\Мультсериалы' # Пример абсолютного пути Win Сам файл config.ini будет создан при первом запуске из файла config.ini.example или вы можете сделать это самостоятельно просто переименовав файл config.ini.example в config.ini
ВАЖНО! Недопускается указывать одинаковые ключи в конфиге, не может быть два srcPath0, по этому каждый новый путь необходимо писать с новым ключём. Это может быть srcPath0 srcPath1 srcPath2 итд или любой другой набор, так как сами ключи не учитвыаются.
Работа срипта:
Работает просто, преребирает все пути указанные в блоке [srcList] файла config.ini, по каждому пути сканирует все папки, проверяет все файлы, которые подходят по расширению из параметра extList файла config.ini.
Если находит подходящий файл, отправляет на анализ и нормализацию. При нормализации сохраняет кодек, битрейт и частоту дискритезации как у исходника.
В работе опирался на информацию из статьи: https://bva.dyndns.info/2018/10/loudness-normalization/
Для себя вывел оптимальные параметры
I=-16:TP=-2:LRA=9
Так же в осове лежит библиотека https://github.com/slhck/ffmpeg-normalize