ffmpeg и grep не работают для извлечения значения mean_volume - PullRequest
0 голосов
/ 31 октября 2019

У меня есть список mp3-файлов, и я хочу установить для всех mean_volume одинаковое значение в дБ с помощью скрипта, поэтому я ввожу команду для определения значения (https://trac.ffmpeg.org/wiki/AudioVolume) и пытаюсь grep значение, но оно терпит неудачу и вместо этого печатает весь вывод команды * 1005. * Есть мысли? Также пробовал tr вместо grep. Я использовал команду:

ffmpeg -i sample.mp3 -filter:a volumedetect -f null /dev/null | grep 'mean_volume'

1 Ответ

2 голосов
/ 31 октября 2019

ffmpeg консольный вывод - это stderr, поэтому вам нужно перенаправить на стандартный вывод:

ffmpeg -i input.mp3 -filter:a volumedetect -f null - 2>&1 | grep mean_volume

или для Bash 4 +:

ffmpeg -i input.mp3 -filter:a volumedetect -f null - |& grep mean_volume

Результат:

 [Parsed_volumedetect_0 @ 0x564635d62800] mean_volume: -22.6 dB

Если вы просто хотите получить значение, используйте awk:

ffmpeg -i input.mp3 -filter:a volumedetect -f null - |& awk -F': ' '/mean_volume/ {print $2}'

Результат:

-22.6 dB
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...