[vlc] Re: H263 over RTP

jogging song joggingsong at gmail.com
Thu Mar 8 02:57:56 CET 2007


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.

Best Regards
jogging

On 3/8/07, chris.2.dobbs at bt.com <chris.2.dobbs at bt.com> wrote:
>
>  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.
> 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).
> -Chris
>
>  ------------------------------
> *From:* vlc-bounce at videolan.org [mailto:vlc-bounce at videolan.org] *On
> Behalf Of *jogging song
> *Sent:* 07 March 2007 14:26
> *To:* vlc at videolan.org
> *Subject:* [vlc] Re: H263 over RTP
>
> Hi, Chris
>      There are three RFCs about h.263 packet, that is RFC 2190, RFC2429
> and RFC4629. Doe vlc support all these three RFCs?
>
> thanks in advance.
> Jogging
>
> On 3/6/07, chris.2.dobbs at bt.com <chris.2.dobbs at bt.com> wrote:
> >
> >  All,
> > 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).
> >
> > 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:
> >
> > Many thanks to Ross Finlayson BTW who prodded me in the right direction
> > several times...
> >
> > 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…
> >
> > 1. Read 5 bytes first (from file based H263 data) , this gives you a
> > starting frame of reference.
> >     Create 1st RTP packet and set the M bit to 1
> >     Create and add to RTP payload the 2 byte H263 header and set the P
> > bit to 1 (zero rest out)
> >
> >     copy the 5 byte record  into the RTP payload body (after the H263
> > header).
> >
> >     Send it
> >
> > 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)
> >
> >     Create new RTP packet + new 2 byte H263 header
> >     Scan newly read in H263 record for occurance of end of frame marker
> > - this is two consectutive bytes of zeros (00 00).
> >
> >
> >     pseudo code follows:
> >
> >      IF eof frame marker found:
> >                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)
> >
> >             the record data  up to but NOT including the "0000". Store
> > remainder in temp.
> >             The next record read will therefore be a new start of frame.
> >
> >     IF eof frame marker not found:
> >                IF previous record read contained an end of frame marker
> >                            prefix the this packet with any remainder
> > stored in temp and set the P bit to 1
> >                            and the M bit to 0.
> >                            Need to make sure at this point that we don't
> > blow the MTU.
> >                ELSE
> >                            Set RTP M bit to 0 and H263 P bit to 0 and
> > copy whole record into RTP payload(after the H263 header).
> >
> >     Send it !
> >
> > 3. Repeat 2 until EOF
> >
> > To get a remote vlc to read this stream, create an sdp file like this
> >
> >  v=0
> > o=- 7776 3 IN IP4 10.215.130.112
> > s=Test H263 stream
> > i=Parameters for the session streamed by "ChipsAhoyH263"
> > t=0 0
> > m=video 7776 RTP/AVP 98
> > a=rtpmap:98 H263-1998/90000
> > a=fmtp:98 profile=0; level=40
> > b=TIAS:2048000
> >
> > Where 7776 is the port you are streaming out to from above steps.
> > Save as say c:\testH263.sdp
> >
> > Start vlc like this:
> >
> > Vlc -vvv *file://c:\testH263.sdp*
> >
> > Start the stream and u should see video.
> >
> > 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!
> >
> > Hope this helps as it drove me nuts...
> > -Chris
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc/attachments/20070308/fef32c04/attachment.html>


More information about the vlc mailing list