Re: [Live-devel] MPEG-4 Visual configuration bits in SDPHello Ross,

I would disagree that decoding SDP config bits is not needed for streaming at 
all.

For example, Axis 240S and 240Q video servers *do not* provide "x-dimensions" 
parameter in their SDP (or other similar parameters like "cliprect" or 
"framesize"). Thus, LIVE555 is not aware about video resolution when recording 
RTSP from these video servers. The width and height values must be supplied 
manually, which is not feasible in some cases. E.g. when recording MPEG-4 
stream to AVI file, the wrong width and height values in AVI header might 
result in unplayable file.

>From another hand, Axis 240S and 240Q video servers provide the required video 
>resolution info in bits "video_object_layer_width" and 
>"video_object_layer_height" from config parameter. Thus, config bits 
>parsing/decoding would be a useful feature in LIVE555. The decoding algorythm 
>is pretty simple and can be found in ISO/IEC 14496 Part 2 documentation in 
>"Visual bitstream syntax" chapter.

After all, LIVE555 currently has a static function 
samplingFrequencyFromAudioSpecificConfig() implemented in 
MPEG4GenericRTPSource.cpp. That's exactly what it is doing - parsing (i.e. 
decoding, in other words) SDP config bits to extract frequency. This value is 
being used in SubsessionIOState class when recording QT movies.

Kind regards,
Dmitriy Petrenko
  ----- Original Message ----- 
  From: Ross Finlayson 
  To: LIVE555 Streaming Media - development & use 
  Sent: Friday, December 10, 2010 10:07 AM
  Subject: Re: [Live-devel] MPEG-4 Visual configuration bits in SDP


    Just came across that it would be useful to have an easy-to-use decoder for 
MPEG-4 Visual configuration bits that are encoded in "config" parameter of SDP. 
Something like mpeg4vol command-line tool from mpeg4ip does. Are there any 
plans to implement this in the future?


  The 'config' parameter string is simply a string of bytes, encoded as 
hexadecimal digits (therefore, two hexadecimal digits per byte).  We do have a 
function:
          parseGeneralConfigStr()
  (defined in "liveMedia/include/MPEG4LATMAudioRTPSource.hh) that will convert 
a 'config' string to binary.  E.g., the 'config' string
          deadbeef
  would be converted to the following sequence of 4 bytes
          0xDE 0xAD 0xBE 0xEF


  However, we don't implement any additional 'decoding' of this data (or any 
other MPEG-4 data), because it's not needed at all for streaming.  (We don't 
include any audio/video decoding or encoding software.)
-- 

  Ross Finlayson
  Live Networks, Inc.
  http://www.live555.com/


------------------------------------------------------------------------------


  _______________________________________________
  live-devel mailing list
  live-devel@lists.live555.com
  http://lists.live555.com/mailman/listinfo/live-devel
_______________________________________________
live-devel mailing list
live-devel@lists.live555.com
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to