Quicktime video files metadata

  • Posted: 12 August 2009 06:15 AM

    hi
    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

    [ Edited: 18 March 2012 12:46 PM by Intruder ]      
  • Avatar

    Posted: 13 August 2009 04:02 AM #1

    I couldn’t pretend to answer this, but I sent the link to someone who might. smile

    Signature

    Editor - The Mac Observer

    Favorite (but less relevant than it used to be) Quote: Microsoft’s tyranny lies not in its success, but in the way it achieved and maintains that success.

         
  • Posted: 16 August 2009 03:03 AM #2

    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?

         
  • Posted: 17 August 2009 11:52 AM #3

    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 smile

         
  • Avatar

    Posted: 21 August 2009 02:10 PM #4

    Oy, I am glad you found the answer! My person is hip-deep in a project that prevented him from helping out.

    Signature

    Editor - The Mac Observer

    Favorite (but less relevant than it used to be) Quote: Microsoft’s tyranny lies not in its success, but in the way it achieved and maintains that success.