2015-01-07 140 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信道的數目。