2012年8月18日土曜日

ネットがきたので今後したいこと

やっと家にネットがきました。

なので、またネットでの活動を再開したいですね。
さて、やりたいことを羅列しておきます。

ちなみに興味のある順です。

1つ目。放送するアプリケーションを作りたいです。一応前に、会社でパパっとJavaで組んだことはあります。たしか、v4l4j(カメラの取り込み) + xuggle(カメラ映像→flvに変換) + red5(rtmpに直して配信)でubuntu上につくりました。
今回はlibx264 + libmp3lame + (c言語で書き込む適当なrtmp化するプログラム)で作りたいなと思っています。

2つ目。HttpDynamicStreamingの動作を解析して、live用の変換プログラムをつくりたいです。openSourceMediaFrameworkのプログラムをちょっと読んでみたところ、どうやら、netStream.appendBytesで追記する形で実行しているようですので、案外簡単にできあがるかも・・・

3つ目。httpTakStreamingを拡張していきたいです。具体的には再度rtmfp経由の動作を作り直して適当なサービスを立ち上げたいですね。こちらでは、ついでにiphone用の非フルスクリーン再生のやつも作り上げたいです。

この3つやりたいですね。


で、余談は一番興味がある放送アプリケーションをつくる件について。
とりあえず想定しているマイルストーンは次のような感じ。
0:javaでとりあえず作ってみる。
v4l4jかデスクトップの画像をキャプチャ→xuggleにかける(flvに変換する)→flazrに取り込んでrtmpサーバーに放送として流す。
(動作するものができるのは楽しいけど、作る意義はないと思う。ffmpegをつかうわけではないため。)

1:映像を取り込んでflvで出力するプログラムをつくる。
libx264の練習。プログラムの作り方等はdoomの掲示板をあさったらあるみたい。
どうやらYUVの画像をx264に変換してくれるみたいです。

2:音声を取り込んでflvで出力するプログラムをつくる。
libmp3lameをつかって変換するみたい。生音声データ→mp3に変換してくれるみたいです。
mp3は先頭のデータをみれば、どういう長さのデータであるか等がわかり、かつ特定の設定の場合はflvのコンテナに含めることが可能なので扱いやすさからこれを採用したいところ。
余力があったらlibfaacとかつかってもいいですけど。

3:1と2を合体させて、動画(flv)を保存するアプリをつくる。

4:flazrを参考にしつつ、3を拡張させてrtmpの放送を実行するアプリをつくる。
ここまでこれれは御の字

5:tcpではなくudpをつかった低速な回線でも利用できるあたらしいプロトコルをつくる。
ここが一番やりたいところ、tcpは無駄がおおいプロトコルなので、無駄の少ないプロトコルを開発すれば、回線が早くないユーザーでも、映像配信ができるようになるかと思っています。

とかいうことを、1ヶ月くらい考えていました。


0 件のコメント:

コメントを投稿