10月 03

 
 
■mora楽曲がiPhoneで再生できない原因と解決

 mora楽曲のmp4には、「moov.meta.hdlr」と「moov.meta.ID32」というコンテナ情報(atom)がついています。この情報があるとiPhone/iPod touch上では処理ができず、楽曲再生がスキップされてしまうようです。なので、これを親atomツリーである「moov.meta」ごと消せば、音楽データ自体を再エンコードすることなく(=つまり再劣化なし&artist情報など保持して)、mora楽曲をそのままの形でiPhone/touchで再生できます。

 
 
■変換ソフトを作った方がいたのでリンク 2012年10月06日追記

モーラその後に by @gageas

 簡単に、おそらく複数ファイル同時に処理できると思います。また、moraのmp4の「moov.meta.ID32」には、アルバムアートの他に歌詞Jpeg画像が埋め込まれていたようです。このソフトでは歌詞画像が埋め込まれていた場合、iTunes形式のアルバムアート2枚目として登録してくれるようです。素晴らCー(^^

上記ソフトがあれば以下の処理は必要ありませんが、一応情報として残して置きます。

 
 
■必要なツールの準備 ※Windows32bit環境での対応方法です

 次の2つのファイルを落としてきて、mora楽曲のある一時ダウンロードフォルダなどに必要ファイルをすべて置きます。

AtomicParsley.exe
mp4のatomツリーを編集するコマンドラインツール ※バイナリは32bit版のみの様子
http://www.xucker.jpn.org/keyword/atomicparsley.html
簡易的な使い方の説明サイトです。サイトからさらにダウンロード先へ飛んで落としてください。

zlib1.dll
上記exeを動かすために必要です。
http://www.zlib.net/
dllバイナリの場合、次のページから『zlib125dll.zip』を落として解凍。
http://www.winimage.com/zLibDll/index.html
中にある、dll32フォルダ内のzlibwapi.dllを『zlib1.dll』にリネームしてAtomicParsley.exeと同じフォルダに置きます。

 
 
■mora楽曲(mp4)をドラッグ&ドロップすれば、iPhoneで再生可能な音楽ファイルになるバッチファイルを作成

 上記一連のファイルと同じフォルダに新規テキストファイルを作成し、次のコードをコピペして、ファイル名を『mora2iphone.bat』とします。


@echo off
setlocal

rem set workdir
CD /D "%~dp0"

rem rename mp4->m4a
ren "%~nx1" "%~n1".m4a
set FILE="%~n1".m4a

rem remove atom "moov.meta"
AtomicParsley.exe %FILE% --manualAtomRemove "moov.meta" --overWrite

echo.
echo iPhoneで再生できるファイルになりました。このウインドウを閉じ、iTunesに楽曲を登録して転送してください。
echo.
pause > NUL

endlocal

 
 
 
■仕上げ 以降は毎回この作業だけ

 moraから落とした楽曲、AtomicParsley.exe、zlib1.dll、上記バッチファイルであるmora2iphone.bat・・・・この4つが、すべて同一フォルダにあるのを確認したら、あとはmora楽曲をバッチファイルに1曲ずつD&Dすれば、iPhoneで再生できるよう処理が行われ、拡張子m4aへ変更されたファイルとなります。iTunesに登録し、iPhoneなどへ転送して再生チェックしてみてください。
 注意点として、落としたmora楽曲そのもののコンテナ情報を元に戻せない形でいじるので、必要があれば先にバックアップしておいてください。または、上記bat内コードの–overWriteを消せばD&Dしたファイルは元のまま、自動で別ファイルとして処理済みファイルが作られます。

 
 
 
■未検証ながら、考えられる副作用

 上記処理をした楽曲は、mora(ソニー)の音楽管理ソフトやSony WalkMan、Android等のiOS以外の端末で、アルバムアートが消えている可能性があります
※各端末持ってないので未検証。追記:PS3再生ではアルバムアート消えてました。※1

 
 iPhoneでの再生障害となっていた、消した「moov.meta.ID32」というのは、ID3v2のデータ構造を用いた埋め込みアルバムアートのデータのようです。

 通常、iTunes/iPhoneで用いるアルバムアートは、「moov.udta.meta.ilst.covr」というiTunes専用形式のメタデータatomツリー内に埋め込まれているため、上記処理をしてもiTunes/iPhone上などではアルバムアートはそのまま残り続けます。mora楽曲は、iTunes形式の各種楽曲情報・アルバムアートがはじめから埋め込まれています。

 つまり、moraの楽曲はID3v2データ構造でのアルバムアート埋め込みと、iTunes形式用のアルバムアート埋め込みの、2種類の対応がなされていて汎用性を確保しているようです。

 そして、iTunes上でアルバムアートをいじっても、変更されるのは「moov.udta.meta.ilst.covr」内のデータのみです。「moov.meta.ID32」内のアルバムアートにはiTunesから触れることはできません。

 自分はiPod touchしか持ちあわせていないため、「moov.meta.ID32」にアルバムアートを埋め込んだり読み出す仕組みを、実際にSony製品やAndroidなどが使っているのかは確認できてませんが、いちいちデータがあるということは誰かが使ってるんでしょう。

 なので、上記の処理したmora楽曲は、iPhoneなどiOSデバイス及び、iTunes形式に準拠したデバイス以外では、アルバムアートが消え非表示となる可能性があります。
 ただ、Sony系列であるmora楽曲に、素でiTunes形式のアーティストなどの楽曲情報やアルバムアートが埋め込まれているということは、Sony系端末やAndroid端末でも、iTunes形式のアルバムアート表示に対応している可能性もありそうです。むしろ、そっちの可能性のほうが高いかも??これはWalkmanとかAndroid持ってる人は、試してみてください。

 
※1
 SONY系機器がうちにありました。PS3です。ということで、この記事の処理をしたm4aと、moraそのままの拡張子だけm4aに変えたものを、Dropbox経由でPS3に持ち込んでみました。結論からいうと、PS3では、この記事で処理したm4aはやはりアルバムアートがなくなっていました。moraからダウンロードしたそのままのものは、アルバムアートが表示されました。どちらも再生は普通にできます。
 SONY系機器・ソフトウェアはやはり「moov.meta.ID32」のアルバムアートを利用していて、「moov.udta.meta.ilst.covr」のiTunes形式のものは読み取れない、と考えるのが妥当かもしれません。製品ごとに状況はもしかしたら異なるかもしれませんが。

 
 
■背景

 以下のコードは、mora楽曲の素のままのatom(情報コンテナ)データツリー構造を表示したところです。下にまだデータは続きますが、黄色くしている箇所が、iPhone/touchで再生問題となっているatom=ID3v2形式のアルバムアート埋め込み情報です。これがあるとiPhone(上のiPodアプリ)はイレギュラーなデータと見るのか、その楽曲をスキップしてしまいます。

D:\DLTemp>AtomicParsley mora.mp4 -T
Atom ftyp @ 0 of size: 24, ends @ 24
Atom moov @ 24 of size: 146748, ends @ 146772
     Atom mvhd @ 32 of size: 108, ends @ 140
     Atom trak @ 140 of size: 43549, ends @ 43689
         Atom tkhd @ 148 of size: 92, ends @ 240
         Atom edts @ 240 of size: 36, ends @ 276
             Atom elst @ 248 of size: 28, ends @ 276
         Atom mdia @ 276 of size: 43413, ends @ 43689
             Atom mdhd @ 284 of size: 32, ends @ 316
             Atom hdlr @ 316 of size: 33, ends @ 349
             Atom minf @ 349 of size: 43340, ends @ 43689
                 Atom smhd @ 357 of size: 16, ends @ 373
                 Atom dinf @ 373 of size: 36, ends @ 409
                     Atom dref @ 381 of size: 28, ends @ 409
                         Atom url  @ 397 of size: 12, ends @ 409
                 Atom stbl @ 409 of size: 43247, ends @ 43656
                     Atom stsd @ 417 of size: 91, ends @ 508
                         Atom mp4a @ 433 of size: 75, ends @ 508
                             Atom esds @ 469 of size: 39, ends @ 508
                     Atom stts @ 508 of size: 408, ends @ 916
                     Atom stsc @ 916 of size: 52, ends @ 968
                     Atom stsz @ 968 of size: 40732, ends @ 41700
                     Atom stco @ 41700 of size: 1956, ends @ 43656
                 Atom hdlr @ 43656 of size: 33, ends @ 43689
     Atom meta @ 43689 of size: 51251, ends @ 94940
         Atom hdlr @ 43701 of size: 42, ends @ 43743
         Atom ID32 [und] @ 43743 of size: 51197, ends @ 94940
     Atom udta @ 94940 of size: 51832, ends @ 146772
         Atom albm [jpn] @ 94948 of size: 23, ends @ 94971
         Atom cprt [jpn] @ 94971 of size: 43, ends @ 95014
         Atom dscp [jpn] @ 95014 of size: 36, ends @ 95050
         Atom gnre [jpn] @ 95050 of size: 16, ends @ 95066

 
これがこの記事の一連の処理をするとなくなります

D:\DLTemp>AtomicParsley mora.m4a -T
Atom ftyp @ 0 of size: 24, ends @ 24
Atom moov @ 24 of size: 97497, ends @ 97521
     Atom mvhd @ 32 of size: 108, ends @ 140
     Atom trak @ 140 of size: 43549, ends @ 43689
         Atom tkhd @ 148 of size: 92, ends @ 240
         Atom edts @ 240 of size: 36, ends @ 276
             Atom elst @ 248 of size: 28, ends @ 276
         Atom mdia @ 276 of size: 43413, ends @ 43689
             Atom mdhd @ 284 of size: 32, ends @ 316
             Atom hdlr @ 316 of size: 33, ends @ 349
             Atom minf @ 349 of size: 43340, ends @ 43689
                 Atom smhd @ 357 of size: 16, ends @ 373
                 Atom dinf @ 373 of size: 36, ends @ 409
                     Atom dref @ 381 of size: 28, ends @ 409
                         Atom url  @ 397 of size: 12, ends @ 409
                 Atom stbl @ 409 of size: 43247, ends @ 43656
                     Atom stsd @ 417 of size: 91, ends @ 508
                         Atom mp4a @ 433 of size: 75, ends @ 508
                             Atom esds @ 469 of size: 39, ends @ 508
                     Atom stts @ 508 of size: 408, ends @ 916
                     Atom stsc @ 916 of size: 52, ends @ 968
                     Atom stsz @ 968 of size: 40732, ends @ 41700
                     Atom stco @ 41700 of size: 1956, ends @ 43656
                 Atom hdlr @ 43656 of size: 33, ends @ 43689
     Atom udta @ 43689 of size: 53832, ends @ 97521
         Atom albm [jpn] @ 43697 of size: 23, ends @ 43720
         Atom cprt [jpn] @ 43720 of size: 43, ends @ 43763
         Atom dscp [jpn] @ 43763 of size: 36, ends @ 43799
         Atom gnre [jpn] @ 43799 of size: 16, ends @ 43815

 
次はmp4box -infoの表示です。
通常、iPhoneなどで再生できるm4a(aac)は次のような形で情報が出てきます。

* Movie Info *
        Timescale 90000 - Duration 00:05:53.406
        Fragmented File no - 1 track(s)
        File Brand mp42 - version 0
        Created: GMT Tue Mar 24 15:00:28 2009

File has no MPEG4 IOD/OD

Chapters:
        Chapter #1 - 00:00:00.059 - "morning star"

iTunes Info:
        Name: morning star
        Artist: EGO-WRAPPIN'
        Album: EGO-WRAPPIN' AND THE GOSSIP OF JAXX
        Comment: ExactAudioCopy v0.95b4
        Genre: Jazz
        Created: 2009
        Encoder Software: Nero AAC codec / 1.3.3.0
        TrackNumber: 3 / 11
        Cover Art: PNG File

Track # 1 Info - TrackID 1 - TimeScale 44100 - Duration 00:05:53.406
Media Info: Language "Undetermined" - Type "soun:mp4a" - 15220 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 44100
Self-synchronized

 
ところが、mora楽曲(素)だと余計な情報がついてるのがわかります。

[iso file] Box "gnre" has 4 extra bytes
* Movie Info *
        Timescale 90000 - Duration 00:03:56.101
        Fragmented File no - 1 track(s)
        File Brand mp42 - version 0
        Created: GMT Sat Sep 22 02:39:22 2012

Moov Meta type: "ID32" - 0 resource item(s)
File has no MPEG4 IOD/OD

Copyrights:
        (jpn) (P)2012 King Record.Co.,Ltd.

iTunes Info:
        Name: Salvage
        Artist: Team.縺ュ縺薙°繧甜迪ォ]featuring.迚・悸辜育↓
        Album: Salvage
        Comment:
        Writer: nyanyannya
        Album Artist: Team.縺ュ縺薙°繧甜迪ォ]featuring.迚・悸辜育↓
        Genre:
        Created:
        Disk: 1 / 0
        TrackNumber: 1 / 0
        Cover Art: JPEG File

Track # 1 Info - TrackID 1 - TimeScale 44100 - Duration 00:03:56.332
Media Info: Language "English" - Type "soun:mp4a" - 10178 samples
MPEG-4 Config: Audio Stream - ObjectTypeIndication 0x40
MPEG-4 Audio AAC LC - 2 Channel(s) - SampleRate 44100
Self-synchronized

 
当初、先頭行の報告箇所が問題かと思いatom調整などしてみたけど変わらず。
ID32のatomが問題と分かりました。

iPhoneではこのatomを読みに行ったはいいが中身が解析できず?
(ID3v2はmp3時代の遺産メタデータ構造なはずですし…。
それを内包できるのがmp4コンテナのいいところみたいですが)
「まったくわけがわからないよ・・・」と再生をスキップしてしまうんでしょう。
まぁ知りませんけど。

 
ちなみに研究テスト用に買った曲。250円。

Team.ねこかん / Salvage @ foobar2000カスタマイズ表示

Team.ねこかん / Salvage @ foobar2000カスタマイズ表示

CD出てなくて、現状配信のみみたいなのでちょうどいいや、と。
ビットレートも、ちゃんと318kbpsとなってます。
iPod touch 2genでテストしましたが、無事再生できています。

この曲はmoraが320kbpsで、現時点で一番音質がいいかもしれないですね。
他配信はwma、iTMSでは256kbpsだろうし。

 
おしまい
 

 

 




9月 13

 
やっと2Gから買い換えられるときが来た(。-_-。)

待つこと4年

長かった・・・




4月 03

NeroAACEnc.exeのバージョン自体は1.5.4.0

【症状】
・44.1kHz以外のソース(32kHz/48kHzなど)のwavなり他フォーマットから
 foobar2000でm4aエンコードすると、再生時間が狂ったファイルが出来上がる。
 ignorelengthオプションつけても変わらない。1.3.3.0では問題ない。

・低ビットレート時(br 24000/br 32000など)のLCプロファイルの音質が、
 明らかに1.3.3.0に劣る。

【結論】
何かバグってる
2009年末リリースされてずっとそのまま




7月 21

Thunderbird 3.1.1/3.0.6公開、複数の脆弱性を修正 -INTERNET Watch.

雷鳥を更新した。
3.0.xとかでずっと使っててどっかでアップデートしたときに
カレンダーアドオンのLightningが動かなくなったので、メインマシン他では
すべてアップデート控えてたんだけど雷鳥本体に3.1系ってのが出てたのか。
だからか。Lightning自体もう3.1系向けにしかアップデート下ろしてなかったんだ。

3.1.1にしたら最新Lightningおよび
googlecalenderアドオンも無事アップデートできた。
1つまた刺さり続けて放置していた小さな刺がとれた。




6月 26

環境は iPod touch2G/OS 3.1.3/Spirit Jailbreak。
※なので3世代目以降のデバイスではこのポストとは事情が違ってくるはずです。

テストファイルは、wmaはWMA 9.2/48 kbps/44.1 kHz/2-pass CBR。
wmvは[映像]WMV9/320×240/10fps [音声]WMA 9.2/32 kbps/22.05 kHz/1-pass CBR。

アプリ名 wma wmv BG動作 SymLink
脱獄 MPlayer × △コマ落ちひどい ×
dTunes × ×
vlc4iPhone ×
OpenStreamer △音ズレひどい
yxflash △音ズレひどい ×
公式 SharePlayer △3GS/touch3Gのみ ×
OPlayer △3GS/touch3Gのみ △3GS/touch3Gのみ

 
BG動作はBackgrounderによるバックグラウンド動作の可否。
SymLinkは内部ファイルブラウザがシンボリックリンクを解釈するか否か。
各アプリ管轄領域にGoodReader領域へのシンボリックリンクを作成して
ちゃんとファイルを辿れるかをチェックした。

 
 
まず脱獄アプリ。
基本的には、どのアプリも公式アプリと比べると未完成的で不安定。
その中ではyxflashが一番ベターだけど、wmvは音声ズレがひどい。
wmaは特に問題なし。しかし重要な要素のバックグラウンド再生ができない。

vlc4iphoneは、wmv再生可能。○をつけてるけど”一番マシだった”レベルの話です。
GUI設計は雑(つうかまともに動かない)だし絵も激しい画面変化にはついていけず崩れる。
けど音声ズレはないので一番ベター。wmaは対応謳ってるのに再生できない。
wmvのバックグラウンド動作は可能。ただし、スリープ時には自動でポーズが掛る。

※2010.07.21修正
vlc4iphoneが最近アップデートされOpenStreamerというアプリになった。wmvも一応再生可能だったが、touch2Gでは描画が著しく劣化した上、音声ズレが発生。まともに使えるものじゃなくなった。シークバーもないし。ちなみにwma再生とBG動作は可能だった。

 
 
そして公式アプリ。
SharePlayerは、有料アプリだけあってGUI周りは圧倒的に上。
ただし動画再生は3GSかtouch3G(2009late)以上じゃないと
処理できず音声しか流れない。wmaの再生だけは可能。

※iOS4対応にバージョンアップしてOS3.x系では動かなくなった。
 レビューにも文句が出てるので対応されるかもしれないが不明。
※追記。数カ月たってもiOS3.X系は放置されてます。再対応される様子なし。
 なのでiOS3.Xで動くSharePlayerは、もう公式経由では入手不可能です。

OPlayerも有料アプリだけど、wmvどころかwmaの音声再生すら
3GS/touch3Gを要求されるためtouch2Gじゃ無用の長物になっている。
なのでBG動作やシンボリックリンク状況はチェックしてない。

 
 
基本的には動画処理は全部キワモノレベル。
ソフトウェアデコードなので処理にも限界がある。
PCのようにどんな画面サイズやフレーム/ビットレートでも
スムーズに再生できるとは思わないほうがいいです。
そういう、何でも再生用途ならAirVideoや
OrbLiveのリアルタイムトラコがたぶん有用です。