まず、大前提として、mp4データなんですが次のような書式になっています。
1:データはボックスという形のまとまりになっている。
2:ボックスは子ボックスを内部に持つことができるが、それはボックスのタイプ次第
3:ボックスの形式は次のとおり。
[4バイト(ボックスのデータ量)][4バイト(ヘッダ文字列)][内容]
となっています。
で、大まかな構成ですが・・・
[ftyp]
[moov]
[mdat]
これらが一番ベースとなるボックス。
でmoovはコーデック情報として、trakという子ボックスを持っています。
さて、ここから映像データを取り去るかというと、映像用のtrakデータをoffにしてやればいいみたいです。とりあえず動作しました。
で、offのやり方。
[ftyp]
[moov]
[trak(映像用)]
[trak(音声用)]
[mdat]
という形になっていたので、映像用のtrakをfreeに書き換えます。するとあら不思議、映像用のtrakの内容がそっくりそのままskip用の除外データになっちゃいます。
[ftyp]
[moov]
[free(映像用だがキャンセル)]
[trak(音声用)]
[mdat]
で、再生してみたところ、音楽のみのデータになりました。
もちろんiOS6.1(iPhone4S)で、バックグラウンド音楽再生もできました。
シーク等もばっちり。
あとはyoutubeのデータをプロキシするサーバーをぱぱっと書けば、なんとかなりそうです。
0 件のコメント:
コメントを投稿