Difference between revisions of "Audible Audio"

From MultimediaWiki
Jump to navigation Jump to search
(revert spam/vandalism)
Line 4: Line 4:
* [http://www.digitalpreservation.gov/formats/fdd/fdd000103.shtml Description of the format from the US Library of Congress]
* [http://www.digitalpreservation.gov/formats/fdd/fdd000103.shtml Description of the format from the US Library of Congress]
* [http://en.wikipedia.org/wiki/Audible.com Wikipedia entry]
* [http://en.wikipedia.org/wiki/Audible.com Wikipedia entry]
==== Parsing metadata ====
This following Ruby code works for parsing the metadata on the only sample available:
  video = File.new(ARGV[0])
  video.read(189) # skip header
  (1..19).each { |x|
    sizes = video.read(8).unpack('NN')
    key = video.read(sizes[0].to_i)
    value = video.read(sizes[0].to_i+1)
    puts "#{x} key(#{sizes[0].to_i})=#{key} value(#{sizes[0].to_i)=#{value}"
  }
Sample output (stripped):
  13 key(5)=codec value(7)=acelp85
  16 key(10)=HeaderSeed value(10)=1158166611
  18 key(9)=HeaderKey value(43)=3759801365 1641076194 2988088058 4282540117
  19 key(15)=EncryptedBlocks value(5)=39333


[[Category: Container Formats]]
[[Category: Container Formats]]

Revision as of 16:07, 19 August 2009

Proprietary container format from audible.com. There is no published specification. It may contain one of five different encodings which are numbered 1 thru 5. 1-3 are rumored to be ACELP.net at varying bitrates. #4 is MP3. #5 is some unknown Sony format.

Parsing metadata

This following Ruby code works for parsing the metadata on the only sample available:

 video = File.new(ARGV[0])
 video.read(189) # skip header
 (1..19).each { |x|
   sizes = video.read(8).unpack('NN')
   key = video.read(sizes[0].to_i)
   value = video.read(sizes[0].to_i+1)
   puts "#{x} key(#{sizes[0].to_i})=#{key} value(#{sizes[0].to_i)=#{value}"
 }

Sample output (stripped):

 13 key(5)=codec value(7)=acelp85
 16 key(10)=HeaderSeed value(10)=1158166611
 18 key(9)=HeaderKey value(43)=3759801365 1641076194 2988088058 4282540117
 19 key(15)=EncryptedBlocks value(5)=39333