我对 MP3 流媒体和使用 live555 库开始一个项目完全陌生。我已经能够使用 VS 2010 编译库并试用了示例 testMP3Streamer。我可以使用 VLC 收听流,并且可以使用其他测试程序 testMP3Receiver 接收它。
我现在正在尝试在 live555 MP3 接收器(最终是音频播放器)中加入解码器,但不知道从哪里开始。我下载了 libmad 解码器,但不确定如何将其合并到 live555 中。
我正在寻找有关如何执行此操作的提示或示例
任何帮助将不胜感激。
一个起点可以是用 testRTSPClient.cpp 中的 DummySink 替换 testMP3Receiver.cpp 的 FileSink。
这样做,您将获得实现该方法的数据
void DummySink::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes,
struct timeval presentationTime, unsigned durationInMicroseconds);
今年我一直在广泛使用live555,从头开始。
我真的认为,为几种类型的流(视频、音频)和几种编码器阅读一些工作代码的最佳位置之一是您可以在 此处找到的测试程序文件夹中
然后,当您开始了解该库的工作原理时,就真的很容易了。
通常,如果您想插入解码器,您就在客户端上。您必须知道收到的所有数据(实际数据,而不是 RTSP 命令)最终都在“接收器”中
然后,您可以将此接收器子类化(我给您的链接中有几个示例)并在此处实现您的解码器。
例如,看一下 testRTSPClient 中的视频解码器示例,我知道它是用于视频的,但它是一些自我解释的代码,你应该在那里有一个很好的起点。