我是使用GStreamer的新手,并且遇到了以下问题。 我收到一个网络广播流,并提取元数据和音频数据。 这些以8或16kB的块进来,并编码为MP3或AAC。 每秒收到多个块。 我想跳过前20-40秒的前几个块,具体取决于在“实时”发送数据之前(与FM无线电信号同步)发送了多少数据。
我所做的是: -检查传入数据的数量,直到我看到它是“实时的”为止 -分析数据的格式,并从第一个完整的MP3帧开始提取音频数据(例如MP3),然后将第一个块保存到数组中 -然后,所有其他块将追加到数组
到目前为止,太好了。运行正常。
但是然后我必须将所有数据保存到ramdisk中的文件中并开始使用GStreamer。 这也可以,但是文件大小会随着时间增加。 现在,我有了将音频块直接发送到GStreamer的想法,并希望GStreamer播放它。 使用文件并不重要,因为我发现代码示例正是这样做的。 但是我不知道如何将音频数据直接发送到GStreamer进行处理。 我阅读了一些有关AppSink的帮助文档,并猜想它可能是解决方案,但我找不到正确的方法。
有人暗示如何执行此操作吗? 这将是很大的帮助。
谢谢。