[Live-devel] Vorbis and config parse

Ross Finlayson finlayson at live555.com
Wed Feb 27 13:51:11 PST 2013


> I am trying to add VP8/VORBIS codecs to VLC when it uses your library to
> receive such streams.
> To do this I need to get the VORBIS parameters (included in the a=fmtp
> configuration line).
> 
> I noticed you have some functions to parse this config string, so I
> tried to call parseGeneralConfigStr but it fails.
> Is it because this function can't parse vorbis config ?

Correct - because "parseGeneralConfigStr()" isn't the right function for decoding that data.  (That function is used only for payload formats (e.g., MPEG-4 audio or video) where the configuration string is encoded as a hexadecimal string: two hex digits for each byte of binary data - e.g. "DEADBEEFB00B".)  Vorbis, like H.264, uses a more efficient encoding: Base64.

According to RFC 5215 (the Vorbis audio RTP payload format specification), section 6, the configuration string (which is accessible, from client code, using "MediaSubsession::fmtp_configuration()" (or, equivalently, "MediaSubsession::fmtp_config()")) is the Base64 representation of the packed structure defined in section 3.2.1.

Therefore, first call "base64Decode()" (see "liveMedia/include/Base64.hh") on the configuration string.  That should give you a binary data structure that's formatted according to section 3.2.1 of RFC 5215.  Depending on what your Vorbis decoder accepts, you might need to do further parsing of that binary data.

BTW, if, for testing, you need a RTSP Vorbis audio (and VP8 video) stream, then you can use the "LIVE555 Media Server" to stream a ".webm" file (which contains Vorbis audio and VP8 video tracks).  Our server code automatically demultiplexes these tracks from the file for streaming.  (If you need examples of such files, just let me know.)

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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.live555.com/pipermail/live-devel/attachments/20130228/a2f16d89/attachment.html>


More information about the live-devel mailing list