Copy link to clipboard
Copied
The new Interactive Advertising Bureau ready-to-serve delivery spec (& YouTube) require "faststart" historically referred to as "web optimised" or "streaming enabled" or similar. This includes placing the moov atom at the start of the file instead of the end so the file will start playing straight away instead of waiting until it's fully downloaded / buffered - which can be a big advantage for viewers if it's a longer or larger file or if they have low bandwidth. They can watch the video while it's buffering.
Adobe Media Encoder (and most other modern software, certainly on OSX) no longer let the user control this option. QT7 Pro & Compressor were the last major apps I know of that let you select this, however they are very old now.
In everything I've read people suggest AME places the MOOV atom at the end of the file by default. However when viewing the metadata of H264 MP4s encoded with AME, the MOOV atom appears immediately under the Atom ftyp line in the hierarchy tree i.e. is at the start of the file not the end. I know there are command line apps to edit the MOOV atom position, but that's not very convenient & may be unnecessary.
My suspicion is AME is actually placing the MOOV atom at the end of the file for QT .mov files (ideal for desktop playback), but assumes H264 MP4s are for online use & is placing the MOOV atom at the beginning by default already.
Can anyone confirm this or explain in the example below you you can tell tell the moov atom isn't at the start?
ps. If you don't know the answer, please don't reply with a non sequitur about why I should take a good hard look at myself for using a Mac instead of a PC or why faststart doesn't matter anymore because of fast internet speeds etc etc. I'm talking about an industry wide delivery requirement that I have no authority to change & it's commercial something I need to solve.
EXAMPLE METADATA OF H264 MP4 ENCODED WITH AME...
_________________________________________________________________________
Atom ftyp @ 0 of size: 24, ends @ 24
Atom moov @ 24 of size: 13297, ends @ 13321
Atom mvhd @ 32 of size: 108, ends @ 140
Atom trak @ 140 of size: 8789, ends @ 8929
Atom tkhd @ 148 of size: 92, ends @ 240
Atom edts @ 240 of size: 36, ends @ 276
Atom elst @ 248 of size: 28, ends @ 276
Atom mdia @ 276 of size: 8653, ends @ 8929
Atom mdhd @ 284 of size: 32, ends @ 316
Atom hdlr @ 316 of size: 64, ends @ 380
Atom minf @ 380 of size: 8549, ends @ 8929
Atom vmhd @ 388 of size: 20, ends @ 408
Atom hdlr @ 408 of size: 51, ends @ 459
Atom dinf @ 459 of size: 36, ends @ 495
Atom dref @ 467 of size: 28, ends @ 495
Atom url @ 483 of size: 12, ends @ 495
Atom stbl @ 495 of size: 8434, ends @ 8929
Atom stsd @ 503 of size: 156, ends @ 659
Atom avc1 @ 519 of size: 140, ends @ 659
Atom avcC @ 605 of size: 54, ends @ 659
Atom stts @ 659 of size: 24, ends @ 683
Atom stss @ 683 of size: 88, ends @ 771
Atom sdtp @ 771 of size: 762, ends @ 1533
Atom stsc @ 1533 of size: 28, ends @ 1561
Atom stsz @ 1561 of size: 3020, ends @ 4581
Atom stco @ 4581 of size: 316, ends @ 4897
Atom ctts @ 4897 of size: 4032, ends @ 8929
Atom trak @ 8929 of size: 4334, ends @ 13263
Atom tkhd @ 8937 of size: 92, ends @ 9029
Atom edts @ 9029 of size: 36, ends @ 9065
Atom elst @ 9037 of size: 28, ends @ 9065
Atom mdia @ 9065 of size: 4198, ends @ 13263
Atom mdhd @ 9073 of size: 32, ends @ 9105
Atom hdlr @ 9105 of size: 68, ends @ 9173
Atom minf @ 9173 of size: 4090, ends @ 13263
Atom smhd @ 9181 of size: 16, ends @ 9197
Atom hdlr @ 9197 of size: 51, ends @ 9248
Atom dinf @ 9248 of size: 36, ends @ 9284
Atom dref @ 9256 of size: 28, ends @ 9284
Atom url @ 9272 of size: 12, ends @ 9284
Atom stbl @ 9284 of size: 3979, ends @ 13263
Atom stsd @ 9292 of size: 91, ends @ 9383
Atom mp4a @ 9308 of size: 75, ends @ 9383
Atom esds @ 9344 of size: 39, ends @ 9383
Atom stts @ 9383 of size: 24, ends @ 9407
Atom stsc @ 9407 of size: 700, ends @ 10107
Atom stsz @ 10107 of size: 2840, ends @ 12947
Atom stco @ 12947 of size: 316, ends @ 13263
Atom udta @ 13263 of size: 58, ends @ 13321
Atom ©TIM @ 13271 of size: 23, ends @ 13294 ~
Atom ©TSC @ 13294 of size: 14, ends @ 13308 ~
Atom ©TSZ @ 13308 of size: 13, ends @ 13321 ~
Atom uuid=be7acfcb-97a9-42e8-9c71-999491e3afac @ 13321 of size: 19263, ends @ 32584
Atom free @ 32584 of size: 28896, ends @ 61480
Atom mdat @ 61480 of size: 9923720 (^), ends @ 9985200
(^)denotes a 64-bit atom length
~ denotes an unknown atom
------------------------------------------------------
Total size: 9985200 bytes; 54 atoms total.
Media data: 9923720 bytes; 61480 bytes all other atoms (0.616% atom overhead).
Total free atom space: 28896 bytes; 0.289% waste. Padding available: 28896 bytes
Thanks for the clarification. Yes I can confirm that we always place MOOV atom at the beginning of the file (right after FTYP atom) when exporting to H.264 in MP4.
Additional tech info; we allocate a free atom at the beginning when we begin encoding and so we can go back and write MOOV atom after the file is fully encoded. So this way MOOV can always be at the start of the file.
Hope this helps!
Copy link to clipboard
Copied
Hi Heath George,
Which version of Adobe application are you using?
Shivangi
Copy link to clipboard
Copied
Adobe Media Encode versions: 13.0.2 (Build 39) & 12.0.1 (Build 64).
Copy link to clipboard
Copied
Hi Heath,
Looking for a clarification on your question. As you say here, MOOV atom is placed at the beginning of the file for H.264/mp4 file produced in Premiere Pro and AME. Is that not what you want?
Encoding to H.264 in QuickTime format is not supported anymore in our apps but we instead recommend using H.264 format which then creates a mp4 file. This format has a lot more settings as compared with old H.264 in QuickTime. Is there anything missing in that support?
Copy link to clipboard
Copied
Hi,
When encoding videos. Older encoding software used to allow the user to set the moov atom position manually with options like "web optimized" or "optimized for streaming" etc which shifted the moov atom from the end of the file (default) to the beginning. Adobe Media Encoder does not currently offer a user setting for faststart / manual moov atom placement. So it must be placing the moov atom according to an assumption made by the development team automatically on encode.
I have not been able to confirm anywhere online or in Adobe documentation where Adobe Media Encoder places the MOOV atom when encoding H264 MP4s. In an Adobe article by Maxim Levkov he wrote "Unless specified otherwise, the moov atom is normally stored at the end of the file..." this is the only information I've been able to find about moov atoms from Adobe. I need to ensure I'm delivering MP4 files to clients with the moov atom at the start for faststart ready-to-serve compliance. Currently I'm using terminal apps to change the moov atom position, although suspect that my be unnecessary. Which is what I'm trying to confirm.
My question: where does Adobe Media Encoder place the moov atom when encoding H264 MP4 files? Is it at the beginning by default or the end?
My guess is it's being placed at the start for MP4s & at the end for other desktop formats. But can you confirm this please?
Copy link to clipboard
Copied
Thanks for the clarification. Yes I can confirm that we always place MOOV atom at the beginning of the file (right after FTYP atom) when exporting to H.264 in MP4.
Additional tech info; we allocate a free atom at the beginning when we begin encoding and so we can go back and write MOOV atom after the file is fully encoded. So this way MOOV can always be at the start of the file.
Hope this helps!
Copy link to clipboard
Copied
That does help. It's what I suspected from the metadata, but I wasn't confident I was reading it correctly. Thank you for confirming. The additional note about the free atom is also really helpful, as it means I don't need to worry about CBR vs VBR effecting the moov atom placement (noting some applications require VBR in order to place the moov atom after encoding). Thanks again,
Cheers, Heath