2005年12月14日

mp4boxがfps指定値を地味に守らない件 -- その2

【概要】ffmpegX0.0.9u。2種類のx264+aac.mp4作成方法の比較
【関連記事】:mp4box がfps指定値を地味に守らない件 -- その1その3
mp4box -fps 23.976でmuxした際に生成される.mp4の映像fpsが23.975になる件。
MEncoderで吐いたrawvideo .264に原因があるやうです。

ffmpegX0.0.9uのiPod用クイックプリセット

ffmpegX0.0.9uのiPod用クイックプリセットは、ffmpegでデコードした映像をx264cliにパイプで渡し、一 旦映像のみ.mp4を出力する。
例えばこんな感じ。
#VIDEO
ffmpeg -i INFILE.MPEG -an -f yuv4mpegpipe -croptop 0 -cropbottom 0 -cropleft 0 -cropright 0 -s 320x240 -r 29.97 - | x264 -v -A i4x4 -b 1 --trellis 1 --qpmin 10 --qpmax 51 -B 269 --me umh --threads 2 --level 13 --fps 29.97 -o INFILE.ff.video.mp4 - 320x240
fps指定はffmpeg/x264cliとも、29.97か、23.976書式だ。

別途ffmpegで音声のみ.mp4を作った後で、mp4boxでmuxしている。
29.97fpsの場合はこんな感じ。
#MUX
mp4box -fps 30000:1001 -add INFILE.ff.video.mp4 -add INFILE.MPEG.ff.audio.mp4 -new INFILE.MPEG.ff.mp4
23.976fps(NTSC film)の場合、ここは24000:1001になる。
できあがりの.mp4をmp4box -infoにかけるとこんな感じ。どちらも納得のいく正確さだ。

29.97fps(NTSC)の場合
* Movie Info *
Timescale 600 - Duration 00:00:14.980
Fragmented File no - 2 track(s)
File Brand isom - version 1

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 29970 - Duration 00:00:14.981
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 449 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 320 x 240
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 00:00:14.869
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 697 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1

23.976fps(NTSC film)の場合
* Movie Info *
Timescale 600 - Duration 00:00:15.015
Fragmented File no - 2 track(s)
File Brand isom - version 1

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 23976 - Duration 00:00:15.015
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 360 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 320 x 240
Self-synchronized

Track # 2 Info - TrackID 2 - TimeScale 48000 - Duration 00:00:14.869
Media Info: Language "und" - Type "soun" - Sub Type "mp4a" - 697 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 48000
Synchronized on stream 1
どちらのTimescaleも妥当なものに見える。映像と音声の再生時間差はまだあるがとりあえずここでは置いておく。
なお、この方式でもBを使った場合、冒頭に白紙フレームが入る。Decode with QTでも同様だったので、x264cliでもDelay frameは発生するようだ。

ffmpegX0.0.9uのMEncoder

これに対し、ffmpegX0.0.9uのMEncoderは、一旦映像のみ.264(Rawvideo) を出力する。
raw .264出力でも、mp4boxでのmuxでも、23.976書式を使う。その結果、mp4box -infoの表示は地味に不正確になっている。

29.97fps(NTSC)の場合
* Movie Info *
Timescale 600 - Duration 00:00:14.915
Fragmented File no - 2 track(s)
File Brand isom - version 1

File has root IOD
Scene PL 0xff - Graphics PL 0xff - OD PL 0xff
Visual PL: AVC/H264 Profile (0x15)
Audio PL: AAC Profile @ Level 2 (0x29)
No streams included in root OD

Track # 1 Info - TrackID 1 - TimeScale 29969 - Duration 00:00:14.915
Media Info: Language "und" - Type "vide" - Sub Type "avc1" - 447 samples
MPEG-4 Config: Visual Stream - ObjectTypeIndication 0x21
AVC/H264 Video - Visual Size 320 x 240
Self
posted by ばる at 21:02| Comment(0) | TrackBack(1) | その他 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

[PC][DTV]x264のrawファイルをmp4boxでmuxしたときのfpsの微妙なズレ
Excerpt: [http://htffmpegx.seesaa.net/article/10664490.html:title] あぁやっぱり.264なファイルをmp4boxで23.976fpsと指定してmuxす..
Weblog: タイトル考えるのマンドクセ(’A`)
Tracked: 2005-12-15 22:50
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。