EBU R128-BS.1770-3: Пакетная нормализация громкости аудио-видео файлов

в 8:23, , рубрики: BS.1770-3, EBU R128, ffmpeg, open source, r128gain, sox, Занимательные задачки, обработка изображений, метки: , , ,
Комментарии к записи EBU R128-BS.1770-3: Пакетная нормализация громкости аудио-видео файлов отключены

Всем привет!
Решил поделиться опытом автоматизации контроля громкости вещания своего СМИ. Думаю, у всех профильных технарей давно болит голова, точно продолжает болеть. Введенная Минкомсвязи рекомендация в области нормирования громкости звуковых сигналов вызвала волны возмущения.
Не было предоставлено ни средств контроля, ни средств производства. Крутитесь как хотите.
Впрочем, уже давно, задолго до того знакового события существуют различные плагины к монтажным программам.
Но как быть если уже накоплена огроменная медиабаза?

Побродил я по просторам интернета и наткнулся на очень, по моему мнению, элегантное решение. Причем, к радости моей, это оказалось свободное ПО. Проект называется r128gain.

r128gain измеряет громкость аудио файлов в единицах измерения LUFS. Понимает она, насколько я выяснил, два формата:

  • FLAC
  • PCM signed 16 bit little endian (Microsoft WAVE)

После измерения предлагается применить громкость к дорожке двумя способами:

1. Используя утилиту SoX — Sound eXchange, получить причесанный звук:

r128gain "--command=sox %TRACK% out.wav|flac gain %TGDB%" in.wav|flac -o .

2. Используя утилиту FFmpeg заменить/добавить аудиодорожку к фидеофайлу:

r128gain "--command=ffmpeg -i %TRACK% -vcodec copy -acodec flac -af volume=%TG% -y out.mkv" in.wav|flac -o.

Я выбрал первый вариант. Чтобы выделить звук из моих видеофайлов, я использую ffmpeg:

ffmpeg -i in.avi -vn -c:a pcm_s16le -ac 2 in.wav -y

Нормализация:

r128gain "--command=sox %TRACK% out.wav|flac gain %TGDB%" in.wav|flac -o .

Сборка готового видео файла. Так как кроме старых файлов имеется постоянный поток сторонних, приводим к единому формату. У меня используется такой стандарт:

video: MPEG2 PAL 720x576
audio: MPEG1 Layer II

Сборка:

ffmpeg -i in.avi -i out.wav -c:v mpeg2video -b 30000k -s pal -r pal -aspect 4:3 -vf scale=720:-1,pad=720:576:(ow-iw)/2:(oh-ih)/2 -flags +ilme+ildct -movflags faststart -c:a mp2 -map 0:v:0 -map 1:a:0 out.mpg -y

На выходе получаем продукт в едином формате.

Спасибо за внимание! Надеюсь, моя статья окажется для вас полезной.

Автор: AntonCheloshkin

Источник

Поделиться новостью