2008年3月28日金曜日

3gpメタデータの書き込み

SO905iでも正しく表示が行われるPS3で作成した AAC ファイル(.3gp)のメタデータをAtomicParsleyで表示してみると
$ ~/bin/AtomicParsley スタート.3gp -t
User data "titl" [lang=jpn (utf16)] : スタート
User data "perf" [lang=jpn (utf16)] : ケツメイシ
User data "gnre" [lang=jpn (utf16)] : Rock
User data "albm" [lang=jpn (utf16)] : ケツノポリス5 | Track: 1
User data "yrrc" : 2007


なので,iTunesで作られたAACファイルにAtomicParsleyを使って'titl', 'perf', 'albm', 'gnre'を書き込んでやればSO905i上でも曲データが表示されるようになると思われる。試しにalbmを書き込んでみると……
$ ~/bin/AtomicParsley 16\ 後出し.m4a --3gp-album "Test Album" lang=jpn
AtomicParsley warning:
the 'albm' tag is only allowed on files of '3gp6' brand & later.
Skipping.
No changes.


どうやらAtomicParsleyは 'ftyp' atom の majorBrand の値を見てメタデータ形式を決定しているようなので,iTunes で作成した AAC ファイルに 3gp6 のtag を(無理やり)書き込めるよう AtomicParsleyを修正してみた。iTunes で作成したAACファイルのmajorBrandは'M4A ',PS3で作成したAACのmajorBrandは'3gp6'なので,AtomicParsley.cpp内部で'M4A 'を'3gp6'と同様に扱うよう修正。
*** AtomicParsley.cpp.orig 2008-03-28 01:42:33.000000000 +0900
--- AtomicParsley.cpp 2008-03-28 01:43:56.000000000 +0900
***************
*** 2114,2119 ****
--- 2114,2120 ----
metadata_style = THIRD_GEN_PARTNER;
break;

+ case 0x4D344120 : //'M4A ' -- these are all listed at http://www.mp4ra.org/filetype.html as registered brands
case 0x33677036 : //'3gp6'

case 0x33677236 : //'3gr6' progressive
***************
*** 2129,2135 ****
metadata_style = ITUNES_STYLE;
psp_brand = true;
break;
! case 0x4D344120 : //'M4A ' -- these are all listed at http://www.mp4ra.org/filetype.html as registered brands
case 0x4D344220 : //'M4B '
case 0x4D345020 : //'M4P '
case 0x4D345620 : //'M4V '
--- 2130,2136 ----
metadata_style = ITUNES_STYLE;
psp_brand = true;
break;
! //case 0x4D344120 : //'M4A ' -- these are all listed at http://www.mp4ra.org/filetype.html as registered brands
case 0x4D344220 : //'M4B '
case 0x4D345020 : //'M4P '
case 0x4D345620 : //'M4V '


修正した実行ファイル(AtomicParsley_3gp)でもう一度 albm を書き込んでみると
$ ~/bin/AtomicParsley_3gp 16\ 後出し.m4a --3gp-album "Test Album" lang=jpn --overWrite
......
Finished writing to temp file.
$ ~/bin/AtomicParsley_3gp 16\ 後出し.m4a -t
User data "albm" [lang=jpn (utf8)] : Test Album


m4aファイルに3gpのメタデータを追記できた。

0 件のコメント: