2015-01-07 3 views
2

Я писал, так как не мог найти ответ в предыдущих темах. Я использую live555 для потокового видео в реальном времени (h264) и аудио (g723), которые записываются веб-камерой. Видео-часть уже выполнена, и она работает отлично, но я не имею понятия о звуковой задаче.Stream live audio 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.