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:33720x480(無効領域なし)の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になる
- 再生用のプレイヤーとしては、OSMO4かIBM Toolkit for MPEG-4しかない
ということで、再生環境が整うまでは様子見ということに・・・