c - 如何使用GStreamer的电平插件获取特定音频文件的峰值和均方根值

标签 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 ! level ! fakesink silent=TRUE

或者

$ gst-launch-1.0 -v -m audiotestsrc ! volume volume=1.0 ! level ! fakesink silent=TRUE

这些给出了零均方根值和峰值。

通过这些示例,我了解了如何使用级别。但问题是,在示例中,他们使用 caps 来设置原始媒体(内部是否做了任何操作来获取关卡插件的输出?),但我想要用户定义的媒体输入,那么如何实现这一点?

摘要:我想要一个“level”插件的示例代码片段,它将输入作为录制的音频或现场音频文件并检测其均方根和峰值。

最佳答案

尝试使用:

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

关于c - 如何使用GStreamer的电平插件获取特定音频文件的峰值和均方根值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35177309/

相关文章:

c - 如何在 C 程序中运行 shell 命令

c - 在 exe 的入口点周围添加 nop

cordova - ngCordova 的 $cordovaMedia 和 $cordovaNativeAudio 的区别

audio - 当我想在 RTP 中发送时,ffmpeg 不支持的编解码器 adpcm_ima_wav

wordpress - 插件更新 Hook

c - PostgreSQL:给定的带占位符的类型与 PQexecPrepared() paramValues 参数中的类型之间的关系

C realloc(动态数组) - 访问冲突

javascript - 即使代码多次调用声音片段,如何也播放一次?

eclipse - 如何通过 svn Eclipse 插件解决树冲突

windows - 如何在 64 位 Windows 7 上将 Clear Case 与 Windows 资源管理器集成