MP4Boxの基本的な使い方


MP4Boxはコマンドラインを使用したコンソールアプリケーションです。mp4ファイルの結合や音声合成(MUX)等を行いたい場合に使います。ここではMP4Boxの基本的な使い方に絞って説明します。

MP4Boxの基本的な文法

MP4Box.exe -オプション "入力ファイル" "対象のファイル"

MP4Box.exe -オプション "入力ファイル" -new "新規作成するファイル"

並びとしては"オプション"→"対象のファイル"です。新しくファイルを作成したい場合は-newオプションを指定します。

結合方法

MP4Box.exe -cat "Movie2.mp4" "Movie.mp4"

MP4Box.exe -add "Movie1.mp4" -cat "Movie2.mp4" -new "Movie.mp4"

前者の方法は既に存在するファイルに付け足す方法です。後者が新規にファイルを作成する方法になります。
結合に失敗した場合は"No suitable destination track found - creating new one (type vide)"とメッセージが出力されます。このメッセージが出ると、別トラックを作成してそこに動画データが出力されます。
結合するファイルの形式が異なる(Level、解像度、FPS等が異なる)場合は失敗するので注意してください。
VFRの方法については「VFRなMP4(H.264/AVC)ファイルの作成方法」をご覧下さい。

音声合成方法(MUX)

MP4Box.exe -add "Video.mp4"#video -add "Audio.m4a"#audio -new "Movie.mp4"

動画と音声を合成し、一つの動画ファイルに仕上げます。上記の例では"#video"、"#audio"と明示的に指定していますが、ビデオだけ、または音声だけのファイルを別々に用意して合成する場合は別に指定しなくても大丈夫です。

多国語音声の作成方法

MP4Box.exe -add "Video.mp4" -add "Audio1.m4a":lang=jpn "Audio2.m4a":lang=eng -new "Movie.mp4"

各オーディオファイルに言語を設定することで多国語の動画ファイルを作成することができます。WMP11で再生中に切り替えるには、メニューの[再生]→[オーディオおよび言語トラック]で切り替えることができます。

トラックの情報表示方法

MP4Box.exe -info "Movie.mp4"

MP4Box.exe -info 1 "Movie.mp4"

前者の方法ならすべてのトラックの情報を表示します。後者の場合は数値で指定したトラック番号の詳細情報を表示することができます。結合などが上手く行かない場合は-infoオプションで原因を探ってみましょう。


前回 「PS3で再生できるMP4(H.264/AVC)ファイルの作成方法
次回 「VFRなMP4(H.264/AVC)ファイルの作成方法


(更新日:2007/10/17)

VFRなMP4(H.264/AVC)ファイルの作成方法


VFRVriable Frame Rateの略で、日本語で言うと可変フレームレートになります。24fpsのシーンと30fpsのシーンが交互に切り替わるような構成(混合フレーム)の場合にVFRな動画を作成する必要が出てきます。MP4ファイルはVFRをサポートしているので、完全なVFRを実現できます。

x264ならAviUtlのプラグインを使用する方法もありますが、ここでは手動で分割した可逆圧縮の動画を個別にエンコードし、MP4Boxを使用して結合する方法を紹介します。漢ならやっぱり手動です!

23.976fpsの動画(Movie01.avi)と29.97fpsの動画(Movie02.avi)があると仮定すると、下記のような手順になります。

  1. それぞれの動画のAVSファイルを用意する
  2. それぞれの動画のAVSファイルにAssumeFPSですべて同一のfpsを指定する
  3. x264でエンコードするときに--fps指定しない
  4. MP4Boxで結合するときにそれぞれのファイルに実際のfpsを指定する
各AVSファイルの中身

# infile01.avs
AviSource("Movie01.avi")
AssumeFPS(29.97)
ConvertToYV12()
return last

# infile02.avs
AviSource("Movie02.avi")
AssumeFPS(29.97)
ConvertToYV12()
return last

それぞれのファイルでAssumeFPSで明示的にFPSを指定しますが、すべて同じ値を指定する必要があります。

x264のコマンド

x264.exe --level 4.2 -q 20 --cqm jvt -b 2 -o "output01.264" --threads auto --progress "infile01.avs"
x264.exe --level 4.2 -q 20 --cqm jvt -b 2 -o "output02.264" --threads auto --progress "infile02.avs"

オプションに--fpsは指定しません。--level意外のオプションは例によって適当です。出力が264(raw)出力になっていますが、mp4出力でも大丈夫だと思います。

MP4Boxのコマンド

mp4box.exe -add "output01.264":fps=23.976 -cat "output02.264":fps=29.97 -add "Movie.m4a":lang=jpn -new "Movie.mp4"

ここで各動画の正しいfpsを指定します。これでVFRなMP4が完成します。


前回 「MP4Boxの基本的な使い方
次回 「MP4ファイルのアスペクト比の指定方法


(更新日:2007/10/1)