先の投稿で書いた
https://github.com/taktod/red5_php
このリポジトリですが、拡張としてRed5サーバーが別のRed5サーバーにクライアントとしてつなぎにいって、処理をするためのプログラムをいれようと思っています。
対象ファイルは
com.ttProject.red5.server.adapterパッケージ
ApplicationAdapterEx.java(冗長化用の拡張命令付きのApplicationAdapter)
ApplicationAdapterPhpEx.java(冗長化用の拡張命令付きのPHP用ApplicationAdapter)
com.ttProject.red5.server.adapter.libraryパッケージ
BroadcastStream.java(パケットデータをサーバーに接続しているユーザーに送るためのIBroadcastStream派生クラス(xugglerを参考にしてます。))
IRtmpClientEx.java(他のサーバーとのやり取りイベント用のインターフェイス)
RtmpClientEx.java(他のサーバーに接続しにいくためのプログラム)
の5つのファイルです。
基本的にRtmpClientExで他のサーバーからデータを取得して、BroadcastStreamで自分のサーバーにつながっているユーザーに情報を受け流す。
という処理が目標です。
注意点は
・BroadcastStream.javaの一部ですが、Red5側のRTMPMessageのクラスの動作が最近かわってしまったために、古いプログラムを使っている人は修正する必要がある。
・BroadcastStreamとRed5の本体、Clientのフラッシュプレーヤーとの情報やりとりの放送開始、停止等の命令が若干うまく動作しない。(Red5の解析がもっと必要。)
・映像をやりとりしているRtmpClientExに向かってサーバーからクライアントの関数呼び出しを実行すると映像やりとりが壊れる。(映像用と命令用と2つ接続して使えば問題なく動作する。:これはたぶんRed5のバグ)
このあたり注意が必要です。
まだ、完成してはいないので、今後の更新にご期待ください。ゴールデンウィーク中にはとりあえず完成させたいな。
何か質問等ありましたら、コメント等でどうぞ。
0 件のコメント:
コメントを投稿