こんにちは、管理人の高田です。
以前「Youtube用動画に最適なエンコード値とエンコーダの設定メモ」という記事を書きましたが、実は私自身Youtube側が用意した推奨値の説明部分に耳慣れない言葉がいくつかありました。
その中のひとつが、コンテナ「MP4」の説明部分に注釈として記載されていた"ファイルの先頭にmoovアトムを含めます(ファスト スタート)"という文言です。
この「moovアトム」とは一体何のことで、そして、それを「先頭に含める」というのは具体的にどのようなことを指すのでしょうか?
記事の目次
「moov atom」とは?
まずは「moovアトム」について簡単に概要を確認しておきましょう。
MP4では、ファイルを構成している各データを、種類ごとに「atom(アトム)」という塊に分けて管理しています。
- ftyp atom:ファイルタイプが記述されている
- moov atom:動画のサイズや再生時間などの各種メタ情報が格納されている
- mdat atom:映像データ、音声データ本体が格納されている
atomには主要なものが3つあり、moovアトム(moov atom)はそのうちの一つです。
MP4ファイル全体のインデックス情報(各種メタ情報)を格納しているのがmoovという名前のatomになります。
参考記事:外部サイト profile?atom?mp4のよくわからないあれこれ(atom編) | DACエンジニアブログ:アドテクゑびす界さん)
moov atomの位置が重要なワケ
では、なぜmoov atomの位置が Youtube用動画のエンコード時に重要になるのでしょうか?
それは WEB上の動画再生ソフト(Youtubeなど)では、このmoov atomデータを読み込まないと再生が開始できない仕組になっているからです。
moov atom が ファイルの後ろの方に格納されていた場合、Youtube側は再生を開始する前に、まず 頭からmoov atomがある場所まで・・・つまり全データを読み込む必要があります。
これは例えば、PC上のストレージに保存した動画データを再生するような場合には 大きな問題にはなりません。
しかし Youtubeのようにデータをダウンロードしつつ同時に再生を行う方式(プログレッシブダウンロード)のサービスにおいては、致命的な欠陥になってしまうわけです。
初めに数百Mb~数Gb程度の全動画データをダウンロードしないと再生がスタートできないわけですから。
そのためYoutubeでは「MP4で書き出す際にはmoov atomをファイルの先頭に持ってきてね」と注釈しているわけです。
「ファストスタート」とは?
また、このように動画ファイルをネットでの再生環境に適応させることを「ファストスタートにする」とか「WebOptimisedする」とか「ストリーミングに最適化する」といいます。
下の写真は無料エンコーダのHandBrakeのエンコード設定画面です。
チェック項目の一つに「Web Optimized」というのがあります。これがmoov atomの位置を先頭に持ってくるための設定項目になっているわけです。
MP4ファイル内のatomの位置を確認する方法
では、今手元にあるMp4動画データにおいて、そのファイルがファストスタートになっている(moov atomが先頭に来ている)かどうかを確認するにはどうすればよいのでしょうか?
内部構造を確認するには「MP4reader」というツールが便利です。
操作は簡単で「File > Open」でチェックしたいMP4の動画ファイルを選択するだけです。
ポイントになるのは「moov(メタ情報)」と「mdat(動画データ本体)」の位置関係です。
ファストスタートになっていない場合
Web optimizedにチェックを入れなかったもの…すなわちファストスタートの設定をせずに書き出したものをMP4readerで表示させると以下のようになります。
mdatがよりもmoovが下にきていますね。
ファストスタートになっている場合
こちらは、Web optimizedにチェックを入れて書き出した方の動画です(※動画の内容は全く一緒です)。
このようにmdatよりもmoovが上に来ていれば、その動画は「ファストスタートになっている」ということになります。
ファストスタートにした場合でも一番上は常に「ftyp」になります。moov atom が mdat atomよりも先に来ている場合が"ファストスタートになっている状態"ということになります。
moov atomの位置を変更する方法
それでは実際にmoov atomの位置を指定してファストスタートのMP4動画ファイルを作成するにはどうすればよいのでしょうか?
1:既に作成済みの動画をファストスタートにする
既に書き出し済みのMP4動画ファイルをファストスタートするためには Data Go Round,LLCさんの「MP4 FastStart」というツールが便利です。
Data Go Round Lab
MP4 FastStart H.264 MP4 is a great format for the web, as are all the MP4 variants. MP4 is both a part of Quicktime, and now a part of Flash. The problem is that many of the editors and converters out there, like Sony Vegas and Adobe Premier, produce MP4 files that don’t work well on the Web.They won’t progressively stream.
MP4 FastStartを起動したら「OpenFolder」ボタンをクリックして、ファストスタートにしたいMP4動画を含むフォルダを選択します。ちなみにMP4以外の動画は選択できません(.m4vもダメ)。
ファイル名が表示されたら それを選択した状態で、「Make FastStart」ボタンを押します。
上図のように、Log部分に「Completed:(ファイル名)」と出れば終了です。
「No Files selected」と出てしまう場合は、ファイル名をクリックしてきちんと選択状態にしてください(説明図の2)。
ツール使用前と後を比べてみたのが以下の画像です。
ツール使用前
ツール使用後
無事にMoovアトムが、mdatよりも上に来ました。
2:これから書き出す動画をファストスタートにする
これからMP4動画を新規に書き出す場合は、エンコーダ側でファストスタートの設定をしてあげましょう。
HandBrakeから書き出す場合
HandBrakeをはじめとするエンコードソフトの多くには「Web Optimized」などのチェック項目があります。
ここにチェックをいれることで、ファストスタートにすることができます。
EDIUS(ver6)から書き出す場合
私が使用しているver6においては、MP4書き出し時(h264/AVC)に、特にファストスタートの設定項目はありません。
書き出した動画ファイルはmoovアトムがお尻に来ているため、上述のMP4 FastStartなどを使ってファストスタートに変換する必要があります。
ADOBEソフトから書き出す場合
CC2014現在のAdobe製品(MediaEncorder、AfterEffectsの動画書き出し)においては、H264書き出し時に特にmoovAtomの位置に関する設定項目がありません。
そこで公式サポートに問い合わせてみたところ MP4の書き出しに関してはデフォルトでファストスタートで書き出すようになっているそうです。
Adobe:弊社Media EncoderのCC 2014バージョンにはmoovatomについてのカスタム設定が出来る項目がございません。また、書き出し時はデフォルトで基本的にヘッダー配置(先頭)になるように設定されております。
Q:例えばYoutubeにUPする際などは「moov atomを先頭にするように」とされていますが、これはMedia Encorderから書き出す分には、特別に設定しなくても大丈夫ということでしょうか? 他のバージョン(2015など)では設定が可能ですか? AEなどから書き出す際は設定が可能だったりしますか?
Adobe:はい、基本的に先頭で設定されているのでご自身で設定する必要はございません。申し訳ございませんが、AeやCC 2015でもカスタム設定する項目はございません。
ただし 過去のアドビの記事によるとCS2あたりまでは デフォルトだとmoovAtomがお尻にくるような仕様になっていた模様です。
バージョンによって挙動が変わってくるので、まずは作成した動画をMP4readerなどで確認してみましょう。
まとめ
というわけでWEB動画作成時に”ムーブアトム(moov atom)を先頭に含める”ための具体的な方法でした。
Adobe CreatveCloudの導入/更新を検討している方には、たのまなの「アドビオンライントレーニング通信講座」がおすすめ。
Adobeアプリの動画講座に加えて、CreatveCloud コンプリートプラン(全アプリが利用可能なプラン)が付属し、なんと"学割価格" で利用できてしまいます。
※私が 実際にトレーニング講座を受講した際の感想を記事にしていますので、興味がある方はそちらも合わせて読んでみてください。
参考にさせて頂いたサイト
・profile?atom?mp4のよくわからないあれこれ(atom編)-DACエンジニアブログ:アドテクゑびす界さん-
・MP4ファイルのFast Start -yamaq blogさん-
・[動画処理] MP4動画をプログレッシブダウンロード再生するには-端くれプログラマの備忘録さん-
・MP4/3GPP/3GPP2ファイルフォーマットの基礎知識-unoh.github.comさん-
・お勉強:マルチメディア- FLV動画のエンコード -exB -extreme B-AREAさん-
・Flash Playerにおける高解像度H.264ビデオおよびAACオーディオのサポートについての説明-Adobeさん-
・Understanding the MPEG-4 movie atom -Adobeさん-
コメントを残す