Как использовать плагин уровня 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