[Live-devel] (no subject)

David BERTRAND bidibulle at operamail.com
Tue May 17 22:37:20 PDT 2005


Hi,

I am trying to build a sort of multimedia bridge using the live.com library. Basically, I setup mediasessions between a server enttity and several RTP-capable devices (like 3g mobile phones) using SIP and RTSP. The server entity acts as an endpoint from a signalling point of view (SIP and RTSP) but acts as a relay from a media point of view : each RTP subsession is bridged to all (or to some) of the other media sources "connected" to the bridge. The bridge uses unicast. 
I have three questions regarding the feasability of this meida bridge:

- I have read in the archives that is not possible to have several RTPSinks playing a unique RTPSource. Therefore I decided to use the multi-unicast feature of GroupSock for sending my packets to several destinations. Is it still the best way of relaying incoming RTP packets to several locations ?

- At some time I want to change the media content of the relayed subsessions transparently so that the receiving entities don't even know about the change of content : for example, mobile phones are receiving realtime MPEG4 video from each other and then I want to stream a stored MP4 file from the bridge to the mobile phone, instead of the realtime video. I managed to do this by stopping the previously bridged subsessions and by using a new subsession streaming from a MPEG4VideoStreamFramer and ByteStreamFileSource to a new RTPSink having a GroupSock containing all destinations from previous RTPSinks. However, mobile phones don't display the received video because I think there are confused with the change of SSRC and CSEQ that occured when I decided to stream from the file. In particular, I would like to avoid the gap in the CSEQ sequence. Do you think the liveMedia library has the ability to do a similar thing whisle keeping the SSRC and the CSEQ coherent. I think of changing the source of existing RTPSink instead of creating a new one : doing something like 

   rtpSink->stopPlaying(oldSource)
   RTPSource newSource = new ...
   rtpSink->startPlaying(newSource)

Is this feasible even if a little bit tricky ?

- In the scenario explained above, will the RTCP instance that I created for each of the RTPSinks be able to "follow" when the media content changes from realtime to streamed file (SSRC, timestamps, ...)  

Thank you in advance for any help and sorry for the complexity of my scenario ...

David

-- 
_______________________________________________
Surf the Web in a faster, safer and easier way:
Download Opera 8 at http://www.opera.com

Powered by Outblaze



More information about the live-devel mailing list