2015-01-07 167 views
2

我正在写作,因为我无法在以前的主题中找到答案。我正在使用live555传输正在通过网络摄像机录制的实况视频(h264)和音频(g723)。视频部分已经完成,并且完美运行,但我对音频任务毫无头绪。流直播音频live555

只要我已阅读,我必须创建一个ServerMediaSession,我应该添加两个子会话:一个用于视频,一个用于音频。对于视频部分,我创建了OnDemandServerMediaSubsession(FramedSource的子类和Encoder类)的子类,但对于音频方面,我不知道应该在哪些类上实现该类。

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

我想知道如果有人能给我一个提示。

回答

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信道的数目。