But if a H.263 RTP stream is send to vlc, how does vlc know which RFC is supported?  Operations on RFC is in live555? OK, I will find try to find whether it is true. <br><br>Best Regards<br>jogging<br><br><div><span class="gmail_quote">
On 3/8/07, <b class="gmail_sendername"><a href="mailto:chris.2.dobbs@bt.com">chris.2.dobbs@bt.com</a></b> <<a href="mailto:chris.2.dobbs@bt.com">chris.2.dobbs@bt.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">




<div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">I was told by one of the helpful chaps here that the one to 
go for is RFC4629 - but I believe VLC does support the other ones. Basically the 
h263 header changes from 4 bytes to 2 bytes for RFC4629.</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">I can get VLC to play RFC4629 fine now. If you want 
reference code , look at the live55 code base as there is a ready to go H263 RTP 
streamer there. (and an RTSP one too).</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">-Chris</font></span></div><br>
<div dir="ltr" align="left" lang="en-us">
<hr>
<font face="Tahoma" size="2"><b>From:</b> <a href="mailto:vlc-bounce@videolan.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">vlc-bounce@videolan.org</a> 
[mailto:<a href="mailto:vlc-bounce@videolan.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">vlc-bounce@videolan.org</a>] <b>On Behalf Of </b>jogging 
song<br><b>Sent:</b> 07 March 2007 14:26<br><b>To:</b> 
<a href="mailto:vlc@videolan.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">vlc@videolan.org</a><br><b>Subject:</b> [vlc] Re: H263 over RTP<br></font><br></div><div><span class="e" id="q_1112d9ebfd3ab894_1">

<div></div>Hi, Chris<br>     There are three RFCs about 
h.263 packet, that is RFC 2190, RFC2429 and RFC4629. Doe vlc support all these 
three RFCs?<br><br>thanks in advance.<br>Jogging<br><br>
<div><span class="gmail_quote">On 3/6/07, <b class="gmail_sendername"><a href="mailto:chris.2.dobbs@bt.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">chris.2.dobbs@bt.com</a></b> <<a href="mailto:chris.2.dobbs@bt.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
chris.2.dobbs@bt.com</a>> wrote:</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
  <div>
  <p><font face="Arial" size="2">All,</font> <br><font face="Arial" size="2">If anyone 
  is interested I have managed to get VLC to playback file based H263 video 
  remotely over RTP (as a non-encapsulated elementary stream).</font></p>
  <p><font face="Arial" size="2">I had trouble getting this to work as I couldn't 
  figure out how to transpose the file based H263 records into RFC4629 RTP 
  packets. I finally managed to reverse engineer to live555 code (which includes 
  an H263 streamer module) and this is what u have to do: </font></p>
  <p><font face="Arial" size="2">Many thanks to Ross Finlayson BTW who prodded me in 
  the right direction several times...</font> </p>
  <p><font face="Arial" size="2">The following does not detail all the RTP field 
  setups as they are not crucial to getting this to work, things like sequence 
  number and time stamps are taken as read…</font></p>
  <p><font face="Arial" size="2">1. Read 5 bytes first (from file based H263 data) , 
  this gives you a starting frame of reference.</font> <br><font face="Arial" size="2">    Create 1st RTP packet and set the M bit to 1</font> 
  <br><font face="Arial" size="2">    Create and add to RTP payload 
  the 2 byte H263 header and set the P bit to 1 (zero rest out)</font> <br><font face="Arial" size="2">   </font><br><font face="Arial" size="2">    copy the 5 byte record  into the RTP payload 
  body (after the H263 header).</font> <br><font face="Arial" size="2"> </font> 
  <br><font face="Arial" size="2">    Send it </font></p>
  <p><font face="Arial" size="2">2. Read as much as u can from file without blowing 
  your MTU , in my case this is 1500 so I chose 1436 (like the live555 
  code)</font></p>
  <p><font face="Arial" size="2">    Create new RTP packet + new 2 
  byte H263 header</font> <br><font face="Arial" size="2">    Scan 
  newly read in H263 record for occurance of end of frame marker - this is two 
  consectutive bytes of zeros (00 00).</font></p>
  <p>        <br><font face="Arial" size="2">    pseudo code follows:</font> </p>
  <p><font face="Arial" size="2">     IF eof frame marker 
  found:</font> <br><font face="Arial" size="2">               
  This record contains an end of frame so set the RTP M bit to 1 and  set 
  the H263 header P bit to 0, then copy to RTP payload (after H263 header) 
  </font></p>
  <p>        <font face="Arial" size="2">    the record data  up to but NOT including the 
  "0000". Store remainder in temp.</font> 
  <br>        <font face="Arial" size="2">    The next record read will therefore be a new start 
  of frame.</font> </p>
  <p><font face="Arial" size="2">    IF eof frame marker not 
  found:</font> <br><font face="Arial" size="2">               
  IF previous record read contained an end of frame marker</font> <br><font face="Arial" size="2">                           
  prefix the this packet with any remainder stored in temp and set the P bit to 
  1 </font><br><font face="Arial" size="2">                           
  and the M bit to 0.          
  </font><br><font face="Arial" size="2">                           
  Need to make sure at this point that we don't blow the MTU.</font> <br><font face="Arial" size="2">               
  ELSE</font> <br><font face="Arial" size="2">                           
  Set RTP M bit to 0 and H263 P bit to 0 and copy whole record into RTP 
  payload(after the H263 header).</font></p>
  <p><font face="Arial" size="2">    Send it !</font> </p>
  <p><font face="Arial" size="2">3. Repeat 2 until EOF</font> </p><br>
  <p><font face="Arial" size="2">To get a remote vlc to read this stream, create an 
  sdp file like this</font> </p>
  <p><font face="Arial" size="2"> v=0</font> <br><font face="Arial" size="2">o=- 
  7776 3 IN IP4 <a href="http://10.215.130.112" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.215.130.112</a></font> <br><font face="Arial" size="2">s=Test H263 stream</font> <br><font face="Arial" size="2">
i=Parameters for the session streamed by "ChipsAhoyH263"</font> 
  <br><font face="Arial" size="2">t=0 0</font> <br><font face="Arial" size="2">m=video 
  7776 RTP/AVP 98</font> <br><font face="Arial" size="2">a=rtpmap:98 
  H263-1998/90000</font> <br><font face="Arial" size="2">a=fmtp:98 profile=0; 
  level=40</font> <br><font face="Arial" size="2">b=TIAS:2048000 </font></p><br>
  <p><font face="Arial" size="2">Where 7776 is the port you are streaming out to 
  from above steps.</font> <br><font face="Arial" size="2">Save as say 
  c:\testH263.sdp</font> </p>
  <p><font face="Arial" size="2">Start vlc like this:</font> </p>
  <p><font face="Arial" size="2">Vlc -vvv </font><a><u><font color="#0000ff" face="Arial" size="2">file://c:\testH263.sdp</font></u></a> </p><br>
  <p><font face="Arial" size="2">Start the stream and u should see video.</font> 
</p>
  <p><font face="Arial" size="2">I guess I should have figured all this out from the 
  various RFC's but to actually implement was not exactly straightforward - no 
  where could I find info on how to look for the end of frame marker ("0000") 
  which is the key to the whole thing! </font></p>
  <p><font face="Arial" size="2">Hope this helps as it drove me nuts...</font> 
  <br><font face="Arial" size="2">-Chris</font> 
</p></div></blockquote></div><br></span></div></div>
</blockquote></div><br>