動画(mp4)にチャプターを付ける

mp4の動画ファイルにチャプターを付けてみた。
色々調べたのだが、なかなか分かりやすい情報がなかったので、ここにまとめておく。

まず、できる動画ファイルは、mp4だけ。

mp4について少し説明するが、よく分からない人は読み飛ばしても良い。(自分もだいたいのところしか分かっていない)
mp4というのはコンテナと呼ばれ、箱のような役割を持つ。
この箱の中に、動画ファイルや音声ファイルが入っている、という構造らしい。
例えば、flvファイルをmp4ファイルに変換するとき、ffmpegで、-acodec copy -vcodec copyオプションを付けて変換すると、中の動画や音声はそのままコピーされ、コンテナだけがflvからmp4に変わる、という仕組みになっている。(できないflvファイルもある)
拡張子で言うと、mp4,m4v,m4aなど。
仕様書では、拡張子はmp4が望ましいとされているが、アップルの定めたm4v,m4aもよく使われる。
m4aはオーディオファイルなので、試しておらず、今回の方法が使えるかは不明。

さて、本題だが、今回はCUIでターミナルから行う。
使うのは、mp4v2というmp4のツール群の中の、mp4chapsコマンド。
homebrewを使っている人は、
brew install mp4v2
でインストールして下さい。

仮に、movie.mp4というファイルにチャプターを付けるとしよう。
このファイルが入っているのと同じ場所に、movie.chapters.txtという名前のテキストファイルを作る。
中身は、
00:00:00.000 チャプター名1
00:10:00.000 チャプター名2
といった感じで、付けたいチャプター名と時間を 全て書く。
そして、
mp4chaps -i movie.mp4
を実行すれば、チャプターが付く。

 ちゃんと付いたか確認するためには、
mp4chaps -l movie.mp4
を実行すれば、チャプターの一覧が表示される。
他に、チャプターを付け直すときは、-rオプションで一旦削除してからやり直し、テキストファイルで出力させるには、-xオプション...など。
後は、-hでヘルプが表示されるので、それを参照。

チャプターを付けたファイルを例えばQuickTimeで再生すると、再生バーの右の方に、 のようなボタンが表示され、ここからチャプターを選んでそこにジャンプすることができる。
iTunesでも同様。

あまり分かりやすくならなかっただろうか…