直播音频live555

时间:2015-01-07 12:25:13

标签: c++ audio rtsp live live555

我正在写作,因为我在以前的主题中找不到答案。我正在使用live555来传输实时视频(h264)和音频(g723),这些都是由网络摄像头录制的。视频部分已经完成并且工作正常,但我对音频任务一无所知。

只要我读过,我就必须创建一个ServerMediaSession,我应该添加两个子会话:一个用于视频,一个用于音频。对于视频部分,我创建了OnDemandServerMediaSubsession的子类,FramedSource的子类和Encoder类,但是对于音频方面,我不知道应该以哪些类为基础实现。

网络摄像头以与视频分开的g723格式记录和传送音频帧。我会说音频是原始的,因为当我尝试在VLC中播放时,它说它无法找到任何起始码;所以我想这是网络摄像头录制的原始音频流。

我想知道是否有人可以给我一个暗示。

1 个答案:

答案 0 :(得分:2)

对于音频流,重写OnDemandServerMediaSubsession :: createNewRTPSink应该创建一个SimpleRTPSink。

类似的东西:

RTPSink* YourAudioMediaSubsession::createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource) 
{
   return SimpleRTPSink::createNew(envir(), rtpGroupsock,
                                       4,
                                       frequency,
                                       "audio", 
                                       "G723",
                                       channels );
} 

频道和频道数应来自inputSource。