c - 如何将输出音频传输到 gstreamer 脚本?

标签 c raspberry-pi gstreamer

我正在开发一个小项目,我通过蓝牙在我的 Raspberry pi 上播放音乐。我也想分析音频。

如何将 Raspberry pi 音频输出传输到 gstreamer c 脚本?我使用 mp3 文件获得了正确工作的解决方案,但 ofc 我想扩展它以从我的 RPi 读取音频输出。

这是我在 gstreamer 脚本中用于从文件读取的源代码:

data.source = gst_element_factory_make ("uridecodebin", "source");
g_object_set (data.source, "uri", "file:///home/pi/example.mp3", NULL);

我是否需要将音频环回至麦克风插孔并将其用作源?或者有更好的方法吗?

最佳答案

我对 RPi 不熟悉。假设它运行常规 Linux,声音输出通过 PulseAudio 完成的可能性很高。对于每个输出设备,PulseAudio 还为该输出提供一个“监视器”设备。这个可以用来捕获音频数据。

这些监视器设备可能通过某些系统配置可见 - 但我不确定。也许它们默认存在。

从 GStreamer 的角度来看,您将使用“pulsesrc”元素来捕获音频:

https://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-plugins-good-plugins-pulsesrc.html

从那里开始,您可以应用常规的 GStreamer 功能 - 这意味着您可以将数据写入磁盘,对数据进行实时分析等。由于这可能非常复杂,因此很难给出一般性建议。

关于c - 如何将输出音频传输到 gstreamer 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44071818/

相关文章:

c - 分配的数字太大而无法在位字段中表示未定义的行为

linux - 无法打开设备 : Too many open files Error

iOS - 如何从热点 (iPhone) 向连接的客户端 (IoT 设备) 发送消息

gstreamer - 通过 UDP 使用 gstreamer 进行网络摄像头流式传输

c - 释放未更改的 "copy-on-write"内存

c - 在同一内存块 C 中加载数千个文件

c - 编写 shell - 如何执行命令

python - 可听错误 - Python 日志记录模块的自定义非阻塞文本到语音处理程序

GStreamer:管道在 gst-launch-1.0 命令中工作,但在 C++ 代码中不工作

gstreamer - 什么是 gstreamer caps 语法?