<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space'>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi Ross<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>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.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Could you possibly send me the file with the updated changes? We
will pay for your time.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>If you can, could you create 1 of the channels and I can
duplicate the rest.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Channel 1:<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Input: 234.5.90.131:4900<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Output: rtsp://xxx.xxx.xxx.xxx/channel1.xx<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks Ross again for your help!<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Regards<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Ben<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> live-devel-bounces@ns.live555.com
[mailto:live-devel-bounces@ns.live555.com] <b>On Behalf Of </b>Ross Finlayson<br>
<b>Sent:</b> 16 December 2011 02:57<br>
<b>To:</b> LIVE555 Streaming Media - development & use<br>
<b>Subject:</b> Re: [Live-devel] Multicast to rtsp with Amino A125<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'>

<div>

<p class=MsoNormal>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:<br>
<br>
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.<br>
<br>
So we need to input UDP multicast to live555 server and then RTSP UDP unicast
to the Amino STB.<o:p></o:p></p>

</div>

</blockquote>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</div>

<p class=MsoNormal>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").<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>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.)<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>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.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal>(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.)<o:p></o:p></p>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><o:p> </o:p></p>

<div>

<p class=MsoNormal><span class=apple-style-span><span style='font-size:13.5pt;
font-family:"Helvetica","sans-serif";color:black'>Ross Finlayson</span></span><span
style='font-size:13.5pt;font-family:"Helvetica","sans-serif";color:black'><br>
<span class=apple-style-span>Live Networks, Inc.</span><br>
<span class=apple-style-span><a href="http://www.live555.com/">http://www.live555.com/</a></span></span>
<o:p></o:p></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

</body>

</html>