2011年5月29日日曜日

RtmpClientの使い方その4.1 ほかのプロトコルのhandshakeについて

twitterでRTMPEをやっているという方からtweetが・・
そういえばやってなかったので実験してみました。

■Handshakeの動作がどうなっているか確認
conf/logback.xmlの設定のorg.red5.server.net.rtmpの指定をDEBUGに変更したらログが表示されるようになります。

FlashPlayer10(RTMPE)
Scheme1でHandshakeするようです。
その後でPublicキーの相互やりとりを実施となるようです。

RtmpClientの場合(RTMP(暗号認証指定時))
Scheme0でHandshakeをおこなってから
同じようにPublicキーのやりとりを実施しています。

FlashPlayer10(RTMPT)
Scheme1でHandshakeするようです。

・感想
全部Scheme1で認証するようにFlashPlayer側がかわってしまったのでしょうか・・・
内部にもいろいろ隠し仕様が追加されてるような気がします。(確定ではないです。)

■動作的にどうなるか?(demos/publisher.htmlにて確認)
FlashMediaServerの場合
・rtmpe://サーバー/liveで接続して
放送:ok
視聴:ok
まぁあたりまえです。

Red5の場合
・rtmpe://サーバー/liveで接続して
放送:ok
視聴:ng(パケットが送られてこなくてフリーズする?)
となっているようです。
根拠は
rtmp:視聴 rtmpe:放送では問題なく動作
rtmp:放送 rtmpe:視聴ではやはり固まります。

・rtmpt://サーバー:5080/liveで実行した場合
放送:ok
視聴:ok
だが、しばらくたつとフリーズしてブラウザが落ちるようです。(Chrome OSX)
内部でFlashPlayer動作用のプロセスがかたまったまま、ブラウザを閉じても終了しないそんな感じになっておりました。

・感想
かろうじてrtmpeで放送するのは使えますかね。ほかはちょっと・・・
というかrtmpeの放送処理もちょっと・・・

■まとめ
簡単におこなった実験ですので、確定ではありませんが、rtmp以外のプロトコルに関しては、今後のred5のバージョンアップを待つか、Red5の大本のソースコードに切り込んでいしか方法はないような感じかと思います。
しかし、Flashのバージョンアップしてから機能のメンテナンスをきちんと実行しないのは、面倒だからやっていないのか、はたまた問題がでてるのはわかっているけど、Flashの動作の解析がうまくいかなかったのか、どうなんでしょう。

0 件のコメント:

コメントを投稿