Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

iw2z

macrumors newbie
Original poster
Aug 12, 2009
3
0
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
 
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?
 
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 :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.