<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>

CC BY-SA 4.0
2018-07-11T14:36:54.883Z
2018-07-11T14:36:54.883Z
SkarXa
<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>

CC BY-SA 4.0
2019-10-22T17:00:10.483Z
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.
Gwyneth Llewelyn
CC BY-SA 4.0
2019-10-23T11:54:59.760Z
@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)
SebMa
CC BY-SA 4.0
2019-11-26T22:23:06.703Z
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).
Gwyneth Llewelyn
CC BY-SA 4.0
2022-01-19T05:59:08.693Z
Unfortunately this only list "top level atoms", not the whole tree
kino1
CC BY-SA 4.0
2016-04-25T23:55:14.593Z
2019-10-23T11:52:40.857Z
2019-10-23T11:52:40.857Z
SebMa
<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>

CC BY-SA 3.0
2015-03-16T23:25:23.663Z
2015-03-16T23:25:23.663Z
Stephan Kulla
<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>

<ffmpeg><mp4><quicktime>
How to extract MOOV atom/metadata from MP4 file?
Mark Gerolimatos
# 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 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, 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

> **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**: @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)  
> **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  

---

