Answers.Body: <p>Maybe I'm a bit late, but I'd use <a href="https://www.bento4.com/documentation/mp4dump/" rel="noreferrer">bento4 mp4dump</a>, it's really easy to install on mac with brew <code>brew install bento4</code></p>
  
  <pre><code>mp4dump 1.mp4 
  
  [ftyp] size=8+16
    major_brand = iso5
    minor_version = 200
    compatible_brand = iso6
    compatible_brand = mp41
  [moov] size=8+740
    [mvhd] size=12+96
      timescale = 1000
      duration = 0
      duration(ms) = 0
  ....
  </code></pre>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2018-07-11T14:36:54.883Z
Answers.LastActivityDate: 2018-07-11T14:36:54.883Z
Answers.UserDisplayName: SkarXa
Answers.Body: <p>You can also use <code>qtfaststart -l fileName</code> which outputs something more human readable like :</p>
  
  <pre><code>$ qtfaststart -l myFile.mp4
  ftyp (32 bytes)
  free (8 bytes)
  mdat (283805466 bytes)
  moov (3541465 bytes)
  </code></pre>
  
  <p>The Python <code>qtfaststart</code> is different from the <code>qt-faststart</code> binary (bundled with <code>ffmpeg</code>)  and can be installed using this command:</p>
  
  <pre><code>sudo -H $(which pip) install qtfaststart
  </code></pre>
  
  <p><code>qtfaststart</code> command line arguments :</p>
  
  <pre><code>$ qtfaststart -h
  Usage: qtfaststart [options] infile [outfile]
  
  Options:
    --version     show program's version number and exit
    -h, --help    show this help message and exit
    -d, --debug   Enable debug output
    -l, --list    List top level atoms
    -s, --sample  Create a small sample of the input file
  </code></pre>
  
  <p>The <code>qtfaststart</code> sources are <a href="https://github.com/danielgtaylor/qtfaststart" rel="nofollow noreferrer">here</a></p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-10-22T17:00:10.483Z
Answers.Text: On my Mac, where I get all these nifty utilities with `brew`, the command is actually `qt-faststart` and is part of the `ffmpeg` package.
Answers.UserDisplayName: Gwyneth Llewelyn
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-10-23T11:54:59.760Z
Answers.Text: @GwynethLlewelyn qt-faststart is a binary program but qtfaststart is a Python program, they have different command line arguments. I don't a Mac at hand so I cannot help you anyfurther than [this](https://stackoverflow.com/questions/17271319) or with [brew-pip](https://formulae.brew.sh/formula/brew-pip)
Answers.UserDisplayName: SebMa
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-11-26T22:23:06.703Z
Answers.Text: Thanks so much, @SebMa, you're quite right — there is indeed a difference — but unfortunately `brew` and `brew-pip` don't seem to like `qtfaststart`; apparently, there is a conflict somewhere between the `brew`-provided package, and the package provided by `pip` itself (i.e. `brew` believes both to be the same). `easy_install qtfaststart` will work with the system's Python (2.7.X in macOS Catalina).
Answers.UserDisplayName: Gwyneth Llewelyn
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2022-01-19T05:59:08.693Z
Answers.Text: Unfortunately this only list "top level atoms", not the whole tree
Answers.UserDisplayName: kino1
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2016-04-25T23:55:14.593Z
Answers.LastActivityDate: 2019-10-23T11:52:40.857Z
Answers.LastEditDate: 2019-10-23T11:52:40.857Z
Answers.UserDisplayName: SebMa
Answers.Body: <p>You can use <a href="http://atomicparsley.sourceforge.net/" rel="noreferrer">AtomicParsley</a> to parse the metadata of a MP4-file. For example</p>
  
  <pre><code> AtomicParsley /path/to.mp4 -T 1
  </code></pre>
  
  <p>will print the whole atom tree.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-03-16T23:25:23.663Z
Answers.LastActivityDate: 2015-03-16T23:25:23.663Z
Answers.UserDisplayName: Stephan Kulla
Body: <p>Can one "dump"/extract the MOOV atom from an MP4 file? If so, how? Hoping for an obscure FFMPEG command.</p>
  
  <p>I need to be able to process/play a stream without searching for the MOOV atom over and over again. For very long streams, this can run into several megabytes of data. It's rather strange, I don't think the MOOV atom is huge, I just think that it is scattered thruout the first N megabytes (i.e. toplevel data at the begnning, with references to further atoms that are later in the stream).</p>
  
  <p>Thus, it would make sense for me to extract the MOOV atom out of the file, keep it </p>
  
Tags: <ffmpeg><mp4><quicktime>
Title: How to extract MOOV atom/metadata from MP4 file?
UserDisplayName: Mark Gerolimatos
ThreadText: # How to extract MOOV atom/metadata from MP4 file?
  
  (Asked by: username_0 on 2015-03-09)
  
  Can one "dump"/extract the MOOV atom from an MP4 file? If so, how? Hoping for an obscure FFMPEG command.
  
  I need to be able to process/play a stream without searching for the MOOV atom over and over again. For very long streams, this can run into several megabytes of data. It's rather strange, I don't think the MOOV atom is huge, I just think that it is scattered thruout the first N megabytes (i.e. toplevel data at the begnning, with references to further atoms that are later in the stream).
  
  Thus, it would make sense for me to extract the MOOV atom out of the file, keep it
  
  **Tags:** ffmpeg, mp4, quicktime
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_5 on 2015-03-16. Score: 6 | Accepted answer
  
  You can use [AtomicParsley](http://atomicparsley.sourceforge.net/) to parse the metadata of a MP4-file. For example
  
  ```
   AtomicParsley /path/to.mp4 -T 1
  
  ```
  
  will print the whole atom tree.
  
  
  ---
  
  ### Answer by username_1 on 2018-07-11. Score: 8
  
  Maybe I'm a bit late, but I'd use [bento4 mp4dump](https://www.bento4.com/documentation/mp4dump/), it's really easy to install on mac with brew `brew install bento4`
  
  ```
  mp4dump 1.mp4 
  
  [ftyp] size=8+16
    major_brand = iso5
    minor_version = 200
    compatible_brand = iso6
    compatible_brand = mp41
  [moov] size=8+740
    [mvhd] size=12+96
      timescale = 1000
      duration = 0
      duration(ms) = 0
  ....
  
  ```
  
  
  ---
  
  ### Answer by username_2 on 2016-04-25. Score: 3
  
  You can also use `qtfaststart -l fileName` which outputs something more human readable like :
  
  ```
  $ qtfaststart -l myFile.mp4
  ftyp (32 bytes)
  free (8 bytes)
  mdat (283805466 bytes)
  moov (3541465 bytes)
  
  ```
  
  The Python `qtfaststart` is different from the `qt-faststart` binary (bundled with `ffmpeg`) and can be installed using this command:
  
  ```
  sudo -H $(which pip) install qtfaststart
  
  ```
  
  `qtfaststart` command line arguments :
  
  ```
  $ qtfaststart -h
  Usage: qtfaststart [options] infile [outfile]
  
  Options:
    --version     show program's version number and exit
    -h, --help    show this help message and exit
    -d, --debug   Enable debug output
    -l, --list    List top level atoms
    -s, --sample  Create a small sample of the input file
  
  ```
  
  The `qtfaststart` sources are [here](https://github.com/danielgtaylor/qtfaststart)
  
  > **Comments:**
  > **username_3**: On my Mac, where I get all these nifty utilities with `brew`, the command is actually `qt-faststart` and is part of the `ffmpeg` package.  
  > **username_2**: @username_3 qt-faststart is a binary program but qtfaststart is a Python program, they have different command line arguments. I don't a Mac at hand so I cannot help you anyfurther than [this](https://stackoverflow.com/questions/17271319) or with [brew-pip](https://formulae.brew.sh/formula/brew-pip)  
  > **username_3**: Thanks so much, @username_2, you're quite right — there is indeed a difference — but unfortunately `brew` and `brew-pip` don't seem to like `qtfaststart`; apparently, there is a conflict somewhere between the `brew`-provided package, and the package provided by `pip` itself (i.e. `brew` believes both to be the same). `easy_install qtfaststart` will work with the system's Python (2.7.X in macOS Catalina).  
  > **username_4**: Unfortunately this only list "top level atoms", not the whole tree  
  
  ---
  
  