> We have many Amino A125 STB´s. The server we currently use to rtsp to them is 
> outdated and we need a new system to stream to them. Your software appears to 
> be able to do this but im struggling to find guides to achieve this. Here is 
> a background of what we have as in streams etc:
> 
> We multicast from our encoders to our current streaming server. This server 
> then RTSP´s out to the Amino STB. The multicast input stream is MPEG4/h264 TS 
> UDP. We then RTSP over UDP unicast out to the STB.
> 
> So we need to input UDP multicast to live555 server and then RTSP UDP unicast 
> to the Amino STB.

Yes, you should be able do this fairly easily.  I suggest using the 
"testOnDemandRTSPServer" demo application as a model; note, in particular, the 
code for streaming Transport Stream data (lines 215 through 218 of 
"testProgs/testOnDemandRTSPServer.cpp").

The one change that you'll need to make to this code is that rather than adding 
a "MPEG2TransportFileServerMediaSubsession" to the "ServerMediaSession" object, 
you'll be adding an object of a different "OnDemandServerMediaSubsession" - one 
that you will write yourself.  In fact, I suggest that you subclass 
"MPEG2TransportFileServerMediaSubsession".  If you do that, then you will need 
only to redefine the "createNewStreamSource()" virtual function.  In your 
subclass's constructor, when it calls the parent class 
("MPEG2TransportFileServerMediaSubsession")'s constructor, you should set the 
"fileName" and "indexFile" parameters to NULL, and set "reuseFirstSource" to 
True.  (This tells the server to use the same input source object, even if more 
than one client is streaming from the server concurrently.)

Your subclass's "createNewStreamSource()" virtual function can be quite simple 
- basically just creating a "groupsock" for your IP multicast address, and then 
creating a "BasicUDPSource" using that "groupsock" object.  I suggest looking 
at the "testRelay" demo application code for a hint about how to do this.

(Because your input is Transport Stream data packed into UDP packets, I don't 
think that you'll need a separate 'framer' object in front of the 
"BasicUDPSource" object.  Instead, you'll probably be able to transfer the 
contents of each incoming UDP multicast packet directly into output UDP unicast 
packets.  The method that I've outlined above should do that.)


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

Reply via email to