[Live-devel] Layered video with Live555

Tim Stabrawa stabrawa at stanford.edu
Fri Feb 23 00:15:36 PST 2007


For an academic demonstration, I'm planning on extending Live555 to 
support RTP transport of scalable H.264 video and was hoping someone 
with a reasonable amount of experience with Live555 could help steer me 
in the direction of least pain ...

Basically, I'll be using the reference codec for H.264 SVC (currently in 
development) to generate a file containing H.264 NAL units.  The 
important difference between the output of this codec and a standard 
H.264 stream is the addition of two NAL unit types (20 & 21), which 
carry information about which layer of video is described in the 
preceding/current NAL unit.  For now, assume I know how to parse this 
file and determine which NAL units belong to which layers.  My intention 
is to send each layer out either multiplexed in the same RTP stream (the 
easy way) or in separate RTP streams (the hard / interesting way), 
according to this draft RFC: 
http://www.ietf.org/internet-drafts/draft-ietf-avt-rtp-svc-00.txt

So, from everything I've read so far, there doesn't seem to be any Real 
Code I have to write in the H.264 RTP classes - aside from setting up 
the correct SDP parameters, etc.  What I'm not sure about though is how 
to hook up a single file parser class (that I'd have to write) to one or 
more RTP Sink classes.  Is it as simple as just instantiating multiple 
instances of the H264VideoRTPSink class and including them as separate 
sub-sessions in my ServerMediaSession?  How would I indicate to the 
Live555 framework which sub-session a given NAL unit belongs to?

Does it sound like I'm on the right path here, or am I missing something 
huge?  I'd appreciate any direction I could get on this.

Thanks,

- Tim


More information about the live-devel mailing list