MP4ファイルのFast Start

8 6月

知り合いから、「この動画ファイルをムーブアトムにしてください」と言われて、「鉄腕じゃなくてですか?」なんてボケ返す余裕もなく、直ちにGoogle検索しました。ムービーファイルをWebサイトに置いて、ユーザーのリクエストに対して再生を開始する際に、最近は再生クリック後少し経てば映像が動き出します。これはFast Startが有効になっているからで、Webサイト側でそのように「加工」していることも多いと聞きました。

QuickTimeでエンコードする際に、ストリーミング向けのチェックボックスを目にした記憶があるかもしれません。これはおそらくFast Startを有効にするための設定だと思われます。ワークフローで受け渡しをするメディアファイルではFast Startを気にすることはありませんが、完パケをWeb用に変換する際には意識する方が安全です。

MP4形式のメディアファイルの場合は、内部のデジタルデータはAtomと呼ばれるブロックに分かれていて、それぞれの役割があるそうです。その中のひとつ「moov Atom」には、ファイルのメタデータが含まれていて、アプリケーションはこれを読み込まないことにはメディアファイルの素性がわからないため再生できない仕組みだそうです。通常はmoov Atomブロックはファイルの最後に付いていますが、この構造ではWebサイトからファイルすべてをダウンロードしなければ再生ができなくなります。そこですぐに再生を始めるために、moov Atomを再配置もしくはエンコード時にそのように配置する。これによりメディアファイルがFast Startな状態にセットされるわけです。

実際にデータの中を見ると一目瞭然でした。この場合はftyp、free、mdat、moovの四つのAtomがあることがわかります。最初の結果はmoovが四つ目の最後のブロックなので、通常の配置でした。mvhdとtrakはmoovのサブAtomなので大きなAtomは四つだけです。

Atom ftyp @ 0 of size: 32, ends @ 32
Atom free @ 32 of size: 8, ends @ 40
Atom mdat @ 40 of size: 36644799, ends @ 36644839
Atom moov @ 36644839 of size: 66501, ends @ 36711340
Atom mvhd @ 36644847 of size: 108, ends @ 36644955
Atom trak @ 36644955 of size: 28528, ends @ 36673483
(途中省略)
Atom data @ 36711311 of size: 29, ends @ 36711340

二つ目のこちらの場合は、moovが二つ目のブロックに来ていて実データと思われるmdatの手前にあることから、ファイルの先頭付近に配置されています。

Atom ftyp @ 0 of size: 32, ends @ 32
Atom moov @ 32 of size: 66501, ends @ 66533
Atom mvhd @ 40 of size: 108, ends @ 148
Atom trak @ 148 of size: 28528, ends @ 28676
(途中省略)
Atom free @ 66533 of size: 8, ends @ 66541
Atom mdat @ 66541 of size: 36644799, ends @ 36711340

MP4ファイルをFast Startモードに変更するためには、世の中にはいろいろ便利なツールがあるとのことで、Windowsのツールを私も試してみました。また、ffmpegでもオプションの使い方次第で、再エンコードなしでmoov Atomを先頭に移動することも可能です。

One thought on “MP4ファイルのFast Start

  1. Pingback: WEB動画作成時に”ムーブアトム(moov atom)を先頭に含める”ための具体的な方法 | 映像知識のメモ帳

コメントを残す

メールアドレスが公開されることはありません。