{'moov {'mvhd 00 # version 000000 # Flags !time # Creation time !time # Modification time !timescale # Time Scale - time unints per second !duration # Duration - in time units 00010000 # Preferred rate 0100 # Preferred volume 00000000 00000000 0000 # (reserved) 00010000 00000000 00000000 # Matrix [a b u] 00000000 00010000 00000000 # Matrix [c d v] 00000000 00000000 40000000 # Matrix [x y w] 00000000 # Preview Time 00000000 # Preview Duration 00000000 # Poster Time 00000000 # Selection Time 00000000 # Selection Duration 00000000 # Current Time 00000002 # Next Track ID } # 'mvhd {'trak {'tkhd 00 # version 00000f # Flags !time # Creation time !time # Modification time 00000001 # Track ID 00000000 # (reserved) !duration # Duration 00000000 00000000 # (reserved) 0000 # Layer 0000 # Alternate group 0000 # Volume 0000 # (reserved) 00010000 00000000 00000000 # Matrix [a b u] 00000000 00010000 00000000 # Matrix [c d v] 00000000 00000000 40000000 # Matrix [x y w] !width 0000 # Track width !height 0000 # Track height } # 'tkhd {'mdia {'mdhd 00 # version 000000 # Flags !time # Creation time !time # Modification time !timescale # Time Scale !duration # Duration 0000 # Language 0000 # Quality } # 'mdhd {'hdlr 00 # version 000000 # Flags 'mhlr # Component type 'vide # Component subtype 'appl # Component manufacturer 00000000 # Component Flags 0001001f # Component Flags Mask 19 'Apple Video Media Handler # Component Name } # 'hdlr {'minf {'vmhd 00 # version 000001 # Flags 0040 # Graphics Mode 8000 8000 8000 # Opcolor } # 'vmhd {'hdlr 00 # version 000000 # Flags 'dhlr # Component type 'alis # Component subtype 'appl # Cmponent manufacturer 00000001 # Component Flags 00010026 # Component Flags Mask 18 'Apple Alias Data Handler # Component Name } # 'hdlr {'dinf {'dref 00 # version 000000 # Flags (1 - the same file???) 00000001 # Number of entries 0000000c 616c6973 00000001 # Data references } } # 'dinf {'stbl {'stsd 00 # version 000000 # Flags 00000001 # Number of entries 00000056 # Sample description size 'jpeg # Data format 00000000 0000 # (reserved) 0001 # Data reference index 0000 # Version 0000 # Revision Level 'appl # Vendor 00000000 # Temporal quality 00000200 # Spatial quality !width # Width !height # Height 00480000 # Horizontal resolution 00480000 # Vertical resolution 00000000 # Data size 0001 # Frame count 0c 'Photo - JPEG # Compressor Name 00000000 00000000 00000000 00000000 000000 # padding 0018 # Color depth (24) ffff # Color table ID } #'stsd {'stts 00 # version 000000 # Flags 00000001 # Number of entries !nframes !frame_duration # TIME-TO-SAMPLE table (was 0x0a 0x28) - time units/sample } {'stsc 00 # version 000000 # Flags 00000001 # Number of entries # 00000001 !nframes 00000001 # SAMPLE-TO-CHUNK table - all in one chunk 00000001 !samples_chunk 00000001 # SAMPLE-TO-CHUNK table - each sample it new chunk } {'stsz 00 # version 000000 # Flags 00000000 # Sample Size ** Did not work with non-zero! !nframes # Number of entries !sample_sizes # nframes of 4-byte words } {'stco 00 # version 000000 # Flags # 00000001 # Number of entries # !mdata # # !nframes # Number of entries !chunk_offsets # } } #'stbl } #'minf } # 'mdia # {'udta # 00000000 # } } #'trak # sound track {'trak {'tkhd 00 # Version 00000f # Flags !time # Creation time !time # Modification time 00000002 # Track ID 00000000 # (reserved) !duration # Duration (correct) 00000000 # (reserved) 00000000 # (reserved) 0000 # Layer 0000 # Alternate group 0100 # Volume 0000 # (reserved) 00010000 00000000 00000000 # Matrix [a b u] 00000000 00010000 00000000 # Matrix [c d v] 00000000 00000000 40000000 # Matrix [x y w] 00000000 # Track width 00000000 # Track height } #'tkhd {'mdia {'mdhd # - required 00 # version 000000 # Flags !time # Creation time !time # Modification time !audio_timescale # Time Scale - 44100 // ??? !audio_duration # Duration // ??? 0000 # Language 0000 # Quality } # 'mdhd {'hdlr # - not required 00 # version 000000 # Flags 'mhlr # Component type 'soun # Component subtype 00000000 # Component manufacturer # 'niko # Component manufacturer 00000000 # Component Flags 00000000 # Component Flags Mask 00 # Component name # 'appl # Component manufacturer # 00000001 # Component Flags # 00010026 # Component Flags Mask # 18 'Apple Sound Data Handler # Component Name } # 'hdlr {'minf {'smhd 00 # version 000000 # Flags 0000 # Balance 0000 # Reserved } # 'smhd {'hdlr 00 # version 000000 # Flags 'dhlr # Component type 'alis # Component subtype 00000000 # Component manufacturer # 'niko # Component manufacturer 00000000 # Component Flags 00000000 # Component Flags Mask 00 # # 00000001 # Component Flags # 00010026 # Component Flags Mask #18 'Apple Alias Data Handler # Component Name } # 'hdlr {'dinf {'dref 00 # version 000000 # Flags (1 - the same file???) 00000001 # Number of entries {'alis 00000001 } } } # 'dinf {'stbl # Sample Table atom {'stsd # Sample Description atom 00 # Version 000000 # Flags 00000001 # Number of entries {'sowt # 16 bit LE, Data format # 0001 # Version # 0000 # Revision 00000000 0000 # (reserved) 0001 # Data reference index 0001 # Version 0000 # Revision level 00000000 # Vendor !audio_channels # 2b, Number of channels 0010 # Sample size, == 0x10 == 16 bit 0000 # Compression ID 0000 # Packet size !audio_rate # 4b, Sample rate - unsigned 16.16 FP # new fields... 00000001 # samples per packets - always 1 00000002 # number of bytes in a sample for a single channel !audio_bytes_per_frame # bytes per frame - 2 * channels 00000002 # bytes per sample - 2 # 00000000 # Terminator # 00000000 } } # 'stsd {'stts # Time-to-sample atom - from the "Some Useful Examples: Creating Audio Tracks at 44.1 kHz" 00 # version 000000 # Flags # !audio_stts # 00000001 # Number of entries !audio_samples # Samples count 00000001 # Sample duration } {'stsc # Sample-to-chunk atom - OK 00 # version 000000 # Flags !audio_stsc # # 00000000 # Number of entries #[ 00000000 # first chunk #... 00000000 # samples per chunk #] 00000000 # samples description ID - 01 or 02 ? } {'stsz # Sample size atom 00 # version 000000 # Flags !audio_stsz # Sample Size - 2 for Mono, 4 for Stereo - ? # 00000000 # Number of entries - empty } {'stco # Chunk offset atom 00 # version 000000 # Flags !audio_stco # } } # 'stbl } # 'minf } #'mdia } #'trak # {'udta # {'WLOC # 0017 # 0020 # } # 00000000 # optional terminating 32-bit value, see description of User Data Atom # } } !data_size 'mdat