24000:1001

最近のx264とmp4boxでいくつか24fpsなmp4を作ってみると、TimeScaleが上手く23976にならなかったので、何故なのか調べてみた。

素材
DVDをDGIndexで読み込んで、TIVTCで24fps化したもの。
24000(frames), 1001.000(sec), 23.9760(fps)
ツール
x264 rev.522
mp4box 20060505版
mp4 TimeScale frames sec fps(frames/sec)
x264(--fps 23.9760)→mp4 24000 24000 1001.000 23.9760239760
h264 raw→mp4box(-fps 23.977)→mp4 23977 24000 1000.959 23.9770060511
h264 raw→mp4box(-fps 23.976)→mp4 24000 24000 1001.000 23.9760239760
h264 raw→mp4box(-fps 23.975)→mp4 23975 24000 1001.042 23.9750180312
h264 raw→mp4box(-fps 24.000)→mp4 24000 24000 1000.000 24.0000000000
  • fps=23.976以外を指定した場合はTimeScaleはfpsを1000倍した数値になる
  • オプションでfps=23.976を指定した場合はTimeScaleは24000になる
  • fps=23.976ではTimeScaleが24000に変化するが、長さがちょうど1001秒となりNTSC的には正確!

どうやら、fps=23.976が指定された場合、これはNTSCの24000:1001のことだとGPACが認識してくれて、fps*1000という単純なタイムスケール算出をしなくなるらしい。

続きを読む

アスペクト比について

SARまたはPARとして指定するのはピクセル比らしい

http://star-garbera.sakura.ne.jp/blog_dual/2005/10/x264_cli_sar.php
720x480(無効領域なし)の16:9 - 32:27
720x480(無効領域あり)の16:9 - 40:33
704x480(無効領域Crop)の16:9 - 40:33

720x480(無効領域なし)の4:3 - 8:9
720x480(無効領域あり)の4:3 - 10:11
704x480(無効領域Crop)の4:3 - 10:11

mp4メニュー

mp4コンテナには、チャプターやメニューが付けられるらしい。

  • mp4のメニューはBIFSというものをMP4に組み込むことで実現されている
  • BIFSはバイナリー形式なので編集するには不向き
  • 編集用に、XMT-AとXMT-OというXML形式のフォーマットがある
  • XMT-AはBIFSと1:1形式で低レベル、XMT-Oはそれの高レベル版
  • 作成手順としては、XMT-O→XMT-A→BIFS→MP4になる

ということで、再生環境が整うまでは様子見ということに・・・

解説
HowTo create DVD-like Menus in MP4 - MP4Menu - Doom9's Forum
ダウンロード
MP4MENU download | SourceForge.net