Quicktime video files metadata

Discussion in 'Digital Video' started by iw2z, Aug 12, 2009.

  1. iw2z macrumors newbie

    Aug 12, 2009
    i'm not sure of this is the right place for this question, but i'll ask anyway...
    i've been working on an application that will give me some general info about a quicktime

    video file (Dimensions, Frame Rate, Compressor Name, Audio channels...)

    so i read the "Quicktime File Format Specification" document from apple.com, and i did get

    to read most of the data i need from the corresponding atoms (atoms are the building units

    of a quicktime file), but i came across some files that didn't have these atoms at all

    (since most of these atoms are optional)

    examples include
    - 'stsd' atoms hold the compressor name, but it's optional
    - 'stts' atoms hold data vital to the frame rate calculation, also optional
    - 'stss' atoms hold data regarding key frames, also optional

    and even though one of the atoms i need isn't even optional, i still couldn't find it

    ('tkhd' for the video dimensions)

    but when i open these files (which missing atoms) they work well, and when i open them in

    VLC player, i can see the data i need in the 'media information' provided by the player

    so my question is: how can i get the data i need even when the atoms aren't available? (it

    must be doable, VLC proves that!)

    ps. i'm working on a java applet, so i can only use standard java libraries
  2. jackerin macrumors 6502a

    Jun 29, 2008
    Do you have a link to a file without these atoms?
  3. iw2z thread starter macrumors newbie

    Aug 12, 2009
    a compressed video?

    hmm, well i don't have a link to the file, i'll try to upload it on rapidshare or sth later this evening...

    but i did a little extra goofing around, the file i have has cmov (compressed movie) atom which contains a dcom and a cmvd atoms, but i'm clueless after that, any suggestions?
  4. iw2z thread starter macrumors newbie

    Aug 12, 2009
    problem solved!

    ok i finally got this problem solved, so here's the solution in case someone else needs it:

    having a 'cmov' (compressed movie) atom means the movie resource has been compressed (ok that's really obvious!)
    now this 'cmov' atom contains 2 other atoms:
    1-'dcom' (data compression) atom
    2-'cmvd' (compressed movie data) atom

    dcom only contains 4 bytes for the size, 4 bytes for the atom type, and 4 bytes for the compression algorithm
    (all files i came across had 'zlib' as the compression algo)

    cmvd contains 4 bytes for the size, 4 bytes for the atom type, 4 bytes for the size of the uncompressed content, and the compressed content itself

    so java standard library already contains a decompressor for zlib and voila, the uncompressed data contains the missing atoms :)

Share This Page