rtmpのストリーミング動作は、安定した動作をするもののスケーリングすると一気に難度があがる上
配信中に、おいそれとサーバーを停止させることができません。
この問題に対処するために、adobeがhttpストリーミングを出していますが
Video on demandは簡単に導入できるもののライブは対応できないので独自につくってみました。
- red5サーバーに普通に映像をpublishする。
- publishデータを独自ファイル、fthとftmに分解して一定間隔ごとに保存していく。
- ftpで各httpサーバーにfth、ftmサーバーを配布する。
- プレーヤーからhttpでftfファイル(xml形式)を応答するphpにアクセスして、fth、ftmファイルの情報を手に入れる。
- fthファイルをダウンロードして処理する。
- ftmファイルをダウンロードして映像を流す。(これを繰り返す。)
- htsディレクトリの内容をred5のwebappsにコピーしてアプリケーションをインストールする。
- red5-web.xmlのproperty interval(各パケットの長さ(ミリ秒)) outputPath(出力位置) tmpPath(一時生成位置)を設定
- ftfFile.phpのconfig部を書き換える。
- flexのプロジェクトにflex、logger、playerの3つを導入してplayer.mxmlをコンパイルする。 細かい部分は割愛してます。
ライセンスはGNU LESSER GENERAL PUBLIC LICENSE Version 3,29とします。 http://www.gnu.org/licenses/lgpl.html
いまのところflex側のライブラリの作り込みが甘くパケットのダウンロードが遅れたりするみたいです。
ここが今後の課題です。
基本バージョンは自由につかっていただけるように公開します。
有償サポートとして以下を予定しています。
- wowzaやfmsをベースにしたHttpTakStreamingの実装
- ftpより高速なデータ配布、共有方式の実装
- セキュアなデータ送信
twitter: @taktod https://twitter.com/#!/taktod blog: プログラムしてみようか http://poepoemix.blogspot.com/