使用Python3将音频数据分块发送到GStreamer

时间:2019-06-26 15:54:37

标签: python-3.x audio python-gstreamer

我是使用GStreamer的新手,并且遇到了以下问题。 我收到一个网络广播流,并提取元数据和音频数据。 这些以8或16kB的块进来,并编码为MP3或AAC。 每秒收到多个块。 我想跳过前20-40秒的前几个块,具体取决于在“实时”发送数据之前(与FM无线电信号同步)发送了多少数据。

我所做的是: -检查传入数据的数量,直到我看到它是“实时的”为止 -分析数据的格式,并从第一个完整的MP3帧开始提取音频数据(例如MP3),然后将第一个块保存到数组中 -然后,所有其他块将追加到数组

到目前为止,太好了。运行正常。

但是然后我必须将所有数据保存到ramdisk中的文件中并开始使用GStreamer。 这也可以,但是文件大小会随着时间增加。 现在,我有了将音频块直接发送到GStreamer的想法,并希望GStreamer播放它。 使用文件并不重要,因为我发现代码示例正是这样做的。 但是我不知道如何将音频数据直接发送到GStreamer进行处理。 我阅读了一些有关AppSink的帮助文档,并猜想它可能是解决方案,但我找不到正确的方法。

有人暗示如何执行此操作吗? 这将是很大的帮助。

谢谢。

0 个答案:

没有答案