Log in

View Full Version : MPEG-4 (m4a) questions


sderenzi
21st September 2007, 17:03
I'm confused, help :S So basically an MPEG-4 is composed of atoms in what is termed a TREE, I get that. So tags are stored as child or parent atoms, I understand that.... right-o.

So my question is what the minimal atoms needed are in order to allow playback of an AAC stream inside an MPEG-4 container?

Near as I can see it's unclear, I go here http://atomicparsley.sourceforge.net/mpeg-4files.html and see the atoms that compose tags but not a real understanding of the atoms which compose the MPEG-4 audio playback. Are they in a specific order within the TREE or can they just be placed anywhere as long as they're part of the right parent atom?

Actually do atoms maintain a specific order in the tree or do they just get added in the order the tags are filled?

Is there any program that will go through and verify an atom tree for integrity (that nothing is missing or out of place?)

I downloaded some songs off mp3sparks.com and when I checked the tree using Atomic Parsley I found it actually had duplicates of the same atom tree (before the atoms used for tagging come into play).... it had 2 of every atom and appeared to contain 2 trees. I was like wtf is this, why does it need 2 trees that have the same atoms. Any ideas?

I'm seeking compliance with the structure of MPEG-4 files but this makes it utterly confusing, what's worse is they seem to play fine but the trees (at least on these) were completely ludicrious........... it's CONFUSING.

So anyway there must be a basic structure to MPEG-4 (m4a) files that determines if they are compliant, does anyone actually know it for christ sakes?

I use mp3val on my mp3's, someone make the equivalent for m4a files already :p

sderenzi
22nd September 2007, 07:35
What the hell does the trak atom appear 3 times in this?

AtomicParsley/AtomicParsley /Users/Camille/Desktop/Fish\ -\ Silent\ Cruise.m4a -T
Atom ftyp @ 0 of size: 24, ends @ 24
Atom moov @ 24 of size: 82332, ends @ 82356
Atom mvhd @ 32 of size: 108, ends @ 140
Atom iods @ 140 of size: 42, ends @ 182
Atom trak @ 182 of size: 79808, ends @ 79990
Atom tkhd @ 190 of size: 92, ends @ 282
Atom mdia @ 282 of size: 79708, ends @ 79990
Atom mdhd @ 290 of size: 32, ends @ 322
Atom hdlr @ 322 of size: 33, ends @ 355
Atom minf @ 355 of size: 79635, ends @ 79990
Atom smhd @ 363 of size: 16, ends @ 379
Atom dinf @ 379 of size: 36, ends @ 415
Atom dref @ 387 of size: 28, ends @ 415
Atom stbl @ 415 of size: 79575, ends @ 79990
Atom stsd @ 423 of size: 103, ends @ 526
Atom mp4a @ 439 of size: 87, ends @ 526
Atom esds @ 475 of size: 51, ends @ 526
Atom stts @ 526 of size: 24, ends @ 550
Atom stsz @ 550 of size: 77620, ends @ 78170
Atom stsc @ 78170 of size: 40, ends @ 78210
Atom stco @ 78210 of size: 1780, ends @ 79990
Atom trak @ 79990 of size: 429, ends @ 80419
Atom tkhd @ 79998 of size: 92, ends @ 80090
Atom mdia @ 80090 of size: 305, ends @ 80395
Atom mdhd @ 80098 of size: 32, ends @ 80130
Atom hdlr @ 80130 of size: 33, ends @ 80163
Atom minf @ 80163 of size: 232, ends @ 80395
Atom nmhd @ 80171 of size: 12, ends @ 80183
Atom dinf @ 80183 of size: 36, ends @ 80219
Atom dref @ 80191 of size: 28, ends @ 80219
Atom stbl @ 80219 of size: 176, ends @ 80395
Atom stsd @ 80227 of size: 76, ends @ 80303
Atom mp4s @ 80243 of size: 60, ends @ 80303
Atom esds @ 80259 of size: 44, ends @ 80303
Atom stts @ 80303 of size: 24, ends @ 80327
Atom stsz @ 80327 of size: 20, ends @ 80347
Atom stsc @ 80347 of size: 28, ends @ 80375
Atom stco @ 80375 of size: 20, ends @ 80395
Atom tref @ 80395 of size: 24, ends @ 80419
Atom mpod @ 80403 of size: 16, ends @ 80419
Atom trak @ 80419 of size: 413, ends @ 80832
Atom tkhd @ 80427 of size: 92, ends @ 80519
Atom mdia @ 80519 of size: 313, ends @ 80832
Atom mdhd @ 80527 of size: 32, ends @ 80559
Atom hdlr @ 80559 of size: 33, ends @ 80592
Atom minf @ 80592 of size: 240, ends @ 80832
Atom nmhd @ 80600 of size: 12, ends @ 80612
Atom dinf @ 80612 of size: 36, ends @ 80648
Atom dref @ 80620 of size: 28, ends @ 80648
Atom stbl @ 80648 of size: 184, ends @ 80832
Atom stsd @ 80656 of size: 84, ends @ 80740
Atom mp4s @ 80672 of size: 68, ends @ 80740
Atom esds @ 80688 of size: 52, ends @ 80740
Atom stts @ 80740 of size: 24, ends @ 80764
Atom stsz @ 80764 of size: 20, ends @ 80784
Atom stsc @ 80784 of size: 28, ends @ 80812
Atom stco @ 80812 of size: 20, ends @ 80832
Atom udta @ 80832 of size: 1524, ends @ 82356
Atom meta @ 80840 of size: 1516, ends @ 82356
Atom hdlr @ 80852 of size: 34, ends @ 80886
Atom ilst @ 80886 of size: 213, ends @ 81099
Atom ©nam @ 80894 of size: 44, ends @ 80938
Atom data @ 80902 of size: 36, ends @ 80938
Atom ©alb @ 80938 of size: 65, ends @ 81003
Atom data @ 80946 of size: 57, ends @ 81003
Atom trkn @ 81003 of size: 32, ends @ 81035
Atom data @ 81011 of size: 24, ends @ 81035
Atom ©wrt @ 81035 of size: 34, ends @ 81069
Atom data @ 81043 of size: 26, ends @ 81069
Atom disk @ 81069 of size: 30, ends @ 81099
Atom data @ 81077 of size: 22, ends @ 81099
Atom free @ 81099 of size: 1257, ends @ 82356
Atom mdat @ 82356 of size: 14269524, ends @ 14351880
------------------------------------------------------
Total size: 14351880 bytes; 72 atoms total. AtomicParsley version: 0.9.0 (utf8)
Media data: 14269524 bytes; 82356 bytes all other atoms (0.574% atom overhead).
Total free atom space: 1257 bytes; 0.009% waste. Padding available: 1257 bytes.

Kurtnoise
23rd September 2007, 09:00
What the hell does the trak atom appear 3 times in this?
1 mp4a (audio stream) + 2 mp4s (scene description stream)...

sderenzi
24th September 2007, 19:44
What in the heck is a scene description stream? This makes no sense to me... why would an audio file need this???

Kurtnoise
24th September 2007, 20:39
hint = g0ogle + BIFS + stream description

;)

bond
28th September 2007, 19:15
there is no such thing as "mpeg-4 m4a" :p