まめ畑

ゆるゆると書いていきます

MP4Boxを導入する

今作っているサービスにMP4Boxが必要になったため導入してみました。
その時のメモ。(最後に衝撃の事実有り)

まず、MP4Boxとは3gpファイルなどのMP4形式のファイル構造をいじったり、表示したりする事の出来るものです。
Windows版とLinux版が存在しますが、今回はLinux版についてのメモ。
Linux版はgpacというツールの中にいます。

まず、導入小とした目的ですが、ffmpegを使用してiモーションのストリーミング版を作ろうとしたためなんです。
ffmpegって結構曲者で、MP4のファイル構造はツリー構造になっていて、その中でストリーミングに影響を及ぼすのが、moovとmdataという項目。(他にもありますが)
前者がメタデータで後者がデータ本体で、この順番にffmpegがファイルを書き出せばいいのですが、実際は逆にファイルを生成してきます。
そこで、MP4Boxを使用してこの2つのフィールドを逆転し、ftypというファイルタイプフィールドにmmp4と指定する事でストリーミング再生出来るはずでした・・・。
その結果は最後にと言う事で、導入方法です。

  • 最新版ソースをDLし、解凍します(今回は0.4.4を使用します)

wget http://downloads.sourceforge.net/gpac/gpac-0.4.4.tar.gz
tar xzvf gpac-0.4.4.tar.gz

  • コンパイルとインストール

ここで注意が必要なのが、configureファイルに実行権限が付いていないので、実行権限を付与します
makeに時間がかかります。
chmod +x configure
./configure
make&&make install

  • 後は使うだけ

MP4Box -add input.3gp -brand mmp4:1 -new output.3gp

簡単だね!

後は、ストリーミング再生する場合のHTMLタグは通常のと若干違います。

<object declare id="適当に" data="file.3gp" type="video/3gpp">
<param name="stream-type" value="10" valuetype="data">
</object>
<a href="#さっきのidと同じのを">ストリーミング</a>

出来たよ!!

これで、問題なくストリーミング出来たんです、SH904iでは。
N905iでは、ファイルの読み込みが始まった時点でファイルに対するエラーが出て再生不可能です・・・。
どうしても無理な雰囲気。

他の機種ではやっていないのですが、何ででしょう???

そして、着うたに設定したいのに、れいの項目がない。
これって、MP4Boxで整形しただけじゃ付かないのかな?

更に調査が必要だ。。


少し購入した本

できる大事典 HTML & CSS

できる大事典 HTML & CSS


たのしいRuby 第2版 Rubyではじめる気軽なプログラミング

たのしいRuby 第2版 Rubyではじめる気軽なプログラミング