Thank you very much, it has worked out. [rtsp @ 0x7f35f00008c0] SDP:aq= 0KB vq= 0KB sq= 0B f=0/0 v=0 o=- 137163047 1 IN IP4 0.0.0.0 s=Live session, streamed by LIVE555 i=live?token=1080p_noaudio t=0 0 a=tool:LIVE555 Streaming Media v2015.07.23 a=type:broadcast a=control:* a=range:npt=0- a=x-qt-text-nam:Live session, streamed by LIVE555 a=x-qt-text-inf:live?token=1080p_noaudio m=video 0 RTP/AVP 96 c=IN IP4 0.0.0.0 b=AS:0 a=rtpmap:96 H264/90000 a=fmtp:96 packetization-mode=1;profile-level-id=640028;sprop-parameter-sets=Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQDwBE/Kg==,aO48sA== a=control:track1 m=audio 0 RTP/AVP 97 c=IN IP4 0.0.0.0 b=AS:0 a=rtpmap:97 L16/16000 a=control:track2
Input #0, rtsp, from 'rtsp://192.168.55.2:554/live?token=1080p_noaudio': Metadata: title : Live session, streamed by LIVE555 comment : live?token=1080p_noaudio Duration: N/A, start: 0.002375, bitrate: N/A Stream #0:0: Video: h264 (High), yuv420p, 1920x1080 (1920x1088), 25 tbr, 90k tbn, 180k tbc Stream #0:1: Audio: pcm_s16be, 16000 Hz, 1 channels, s16, 256 kb/s And yes, I've used htons() on the PCM buffer, thanks again. Best regards, Max On 07/29/2015 11:05 PM, Ross Finlayson wrote: >> We need to broadcast the PCM (S16LE/16000) audio as a separate channel >> with our RTSP-server. > […] >> What is a preferred RTPSink class that I should use for this audio >> format in our OnDemandServerMediaSubsession? > > You should use a “SimpleRTPSink” - specifically: > SimpleRTPSink::createNew(envir(), rtpGroupsock, > rtpPayloadTypeIfDynamic, 16000, > "audio", “L16", numChannels); > where “numChannels” is 1 for mono, and 2 for stereo. > > Note, however, that because your input source is in ‘little-endian’ > form (I presume that’s what the “LE” stands for), you will need to > byte-swap it before you feed it into your “SimpleRTPSink” (because the > IETF standard RTP payload format for the “audio/L16” type specifies > that the data be packed into RTP packets in big-endian form. > > Therefore, your implementation of the “createNewStreamSource()” > virtual function should feed the input source into a new > “EndianSwap16” filter object (and return a pointer to that filter object). > > > Ross Finlayson > Live Networks, Inc. > http://www.live555.com/ > > > > _______________________________________________ > live-devel mailing list > live-devel@lists.live555.com > http://lists.live555.com/mailman/listinfo/live-devel
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel