忘備録

年をとると忘れやすくなる。過去、これからのことを書き綴る。

着うたフル奮闘記(#9)

2006-01-13 13:14:22 | Weblog
昨日何歳??かの誕生日あー年は取りたくない!!若いころなら寒くてもゴルフに釣り、夜は飲み会と誕生日一週間はイベントが続いたもんだが、年を取ると寒さがこたえ、どうしても暖かいとこしか行きたくなくなる(パチンコ、酒)。

前回の続き

stsz -> sample (block byte) size box
[000000] 00 00 3B 1C 73 74 73 7A 00 00 00 00 00 00 00 00
[000010] 00 00 0E C2 00 00 01 11 00 00 01 5D 00 00 01 B5
以下省略
$00-03 size 0x00003B1C(15132)
$04-07 name 0x7374737A(stsz)
$08 version 0x00(0)
$09-0B flags 0x00000080)
$0C-0F block byte size for all 0x00000000(0) different sizes = 0
$10-13 number of block sizes 0x00000EC2(3778)
$14-17 block byte sizes 0x00000111(273) 以後3777block続く
全ブロック総バイト=mdatサイズとなる。

stsc -> sample/framing to chunk/block box
[000000] 00 00 00 28 73 74 73 63 00 00 00 00 00 00 00 02
[000010] 00 00 00 01 00 00 00 15 00 00 00 01 00 00 00 B4
[000020] 00 00 00 13 00 00 00 01
$00-03 size 0x00000028(40)
$04-07 name 0x73747363(stsc)
$08 version 0x00(0)
$09-0B flags 0x000000(0)
$0C-0F number of blocks 0x00000002(2)
$10-13 frames per block(first/next block) 0x00000001(1)
$14-17 frames per block(# of frames) 0x00000015(21)
$18-1B samples description id 0x00000001(1)
以後12バイトごと、number of blocks分続く
同一framesが続く場合、次に違うframesがくるまで省略できるので
第一フレーム0x15(21)で第二フレーム0x13(19)のfirst/next blockが0xB4(180)なので第一フレーム0x15(21)が179続いていることになる。

stco -> chunk/block offset box
[000000] 00 00 02 E0 73 74 63 6F 00 00 00 00 00 00 00 B4
[000010] 00 00 43 80 以後省略
$00-03 size 0x000002E0(736)
$04-07 name 0x7374636F(stco)
$08 version 0x00(0)
$09-0B flags 0x000000(0)
$0C-0F number of offsets 0x000000B4(180)
$10-13 block offsets 0x00004380 以後4バイトごと、number of offsets分続く
block offsetsはmdatの絶対アドレスを指している為、mdat以前のアトムを編集した場合(増減)はblock offsetsの値を修正する必要がある。

stss -> optional sync sample (key/intra frame) box
[000000] 00 00 02 E0 73 74 73 73 00 00 00 00 00 00 00 B4
{000010] 00 00 00 01 00 00 00 16 以後省略
$00-03 size 0x000002E0(736)
$04-07 name 0x73747373(stss)
$08 version 0x00(0)
$09-0B flags 0x000000(0)
$0C-0F number of key frames 0x000000B4(180)
$10-13 key/intra frame location 0x00000001
$14-17 key/intra frame location 0x00000016 以後省略
key/intra frame location は先ほどstscの# of framesの値を参照にし、第一キーよりの加算値となる。
本来このアトムはなくても聴くには支障がないが、着うた切り出しに必要となるもので、全ての携帯をチェックしたわけではないが付加されてない場合は切り出しが不能となる携帯もある。

今回までのアトムが実装された3G2ファイルであれば着登録(メール着)が可能である。
断片化(QTPRO)の場合はmoovアトム内に規定のアトムが実装されていない為(上記アトム外)に起こりうる問題であり規定のアトムを実装するこにより回避できる。

最新の画像もっと見る