Как использовать плагин уровня GStreamer для получения пикового и среднеквадратичного значения определенного аудиофайла

Я хочу определить пиковое и среднеквадратичное значение отдельных аудиофайлов (формат может быть.opus, .wav и т. Д., Или его можно также вводить с микрофона без записи голоса). Используя хороший плагин уровня 'GStreamer', я могу достичь этого.

Я попробовал образец, представленный здесь, level_plugin_example

Я также попробовал пример командной строки,

$ gst-launch-1.0 -v -m audiotestsrc! аудиоконвертировать! аудио /x-raw, формат =S8, каналы =2! уровень! подделка молчит = ИСТИНА

ИЛИ ЖЕ

$ gst-launch-1.0 -v -m audiotestsrc! громкость =1,0! уровень! подделка молчит = ИСТИНА

они дают нулевые среднеквадратичные и пиковые значения.

Просматривая эти примеры, я узнал, как использовать уровень. Но вопрос в том, что в примере они использовали заглавные буквы для установки необработанных носителей (что-нибудь сделано внутри для получения вывода плагина уровня?), Но я хочу, чтобы пользовательский ввод носителей был таким, как этого добиться?

Резюме: я хочу пример кода кода плагина 'level', который принимает входные данные в виде записанного аудио или живого аудио файла и определяет его среднеквадратичные и пиковые значения.

2 ответа

Решение

Элемент "level" отправляет сообщения. Пример использования можно найти по ссылке (примеры gstreamer): https://github.com/krad-radio/gstreamer-plugins-good-krad/blob/master/tests/examples/level/level-example.c

Попробуйте использовать:

gst-launch -v -m  filesrc location=audioandsilence.wav ! decodebin ! audioconvert ! level message=TRUE ! pulsesink
Другие вопросы по тегам