如何使用GStreamer的级别插件来获取特定音频文件的峰值和均方根值

时间:2016-02-03 12:37:15

标签: c audio plugins gstreamer gst-launch

我想检测特定音频文件的峰值和均方根值(格式可以是.opus,.wav等,或者也可以从麦克风输入而不录制语音)。使用GStreamer的好“级别”插件,我可以实现这一点。

我尝试了此处提供的示例level_plugin_example

我也试过命令行示例,

  

$ gst-launch-1.0 -v -m audiotestsrc! audioconvert!   audio / x-raw,format = S8,channels = 2!水平! fakesink silent = TRUE

OR

  

$ gst-launch-1.0 -v -m audiotestsrc!音量= 1.0!水平!   fakesink silent = TRUE

这些给出了有效值和峰值。

通过这些例子,我知道了如何使用关卡。但问题是,在这个例子中,他们使用大写来设置原始媒体(内部是否有任何内容可以获得级别插件的输出?)但是我想要用户定义的媒体输入以便如何实现这一点?

总结:我想要一个'level'插件的示例代码片段,它将输入作为录制的音频或现场音频文件,并检测其rms和峰值。

2 个答案:

答案 0 :(得分:2)

尝试使用:

gst-launch -v -m  filesrc location=audioandsilence.wav ! decodebin ! audioconvert ! level message=TRUE ! pulsesink

答案 1 :(得分:0)

"等级"元素发送消息。用法示例可以在链接上找到(gstreamer示例): https://github.com/krad-radio/gstreamer-plugins-good-krad/blob/master/tests/examples/level/level-example.c