[Live-devel] Multicast to rtsp with Amino A125

Ben Wheway ben at europa-network.com
Fri Dec 16 00:28:15 PST 2011


Hi Ross

 

Many Thanks for your reply. This is the first time I have seen Live555 and
the below doesn’t make any sense when im looking at that file.

 

Could you possibly send me the file with the updated changes? We will pay
for your time.

 

If you can, could you create 1 of the channels and I can duplicate the rest.

 

Channel 1:

Input: 234.5.90.131:4900

Output: rtsp://xxx.xxx.xxx.xxx/channel1.xx

 

Thanks Ross again for your help!

 

Regards

 

Ben

 

 

 

From: live-devel-bounces at ns.live555.com
[mailto:live-devel-bounces at ns.live555.com] On Behalf Of Ross Finlayson
Sent: 16 December 2011 02:57
To: LIVE555 Streaming Media - development & use
Subject: Re: [Live-devel] Multicast to rtsp with Amino A125

 

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/ 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20111216/0c8381ac/attachment.html>


More information about the live-devel mailing list