いれたといってもDevelop版ですけどね。
今回いろいろなsegmentをつくるプログラムを書いてるわけですが、元になるサーバーをFlashMediaServerにしたいと思います。
理由はこんな感じ
1:小規模solutionに展開していいらしい。
え?小規模ソリューションの展開にご使用していいの?
2:Flazr経由でのFlashMediaServerのデータのダウンロードができる件。
Red5のRtmpClientでは無理だったんですが、Flazrなら接続もデータのダウンロードも可能です。もちろんxuggleのffmpegのつなぐことも可能でした。まぁ、ちょっと謎解きが必要ですけど。なお、H.263のDisposable InnerFrameの件もRed5じゃなければ問題なく扱えるみたいです。
3:堂々とFlashMediaLiveEncoderが使える件。
Adobeが提供している無料で高画質配信できるアレです。
ライセンスにたしか、FlashMediaServerにしか流しちゃだめよというのがあったかと思います。
これですね。Flash Media Serverには流してよし、このソフトをつかってサーバーや実行ファイルをつくったり、他のプログラム(ストリームをやりとりする系)に流すのはだめって書いてあります。
まぁ、FlashMediaServerのライセンスにFlash以外の3rdパーティーのクライアントでつないじゃダメといった条項はなさそうだし、今回やりたいことはオッケーであろうと判断しました。
まぁ、単なる言い訳ですね。
さて、サーバーに導入するにあたってRed5のときと同じく、特定のアプリだけにしかアクセスできなくしたいと思います。
[fms]/applicationsの中にある邪魔なプログラムをすべて撤去します。(liveとかvodとか)
で、アプリ用のディレクトリを作ります。
今回はtestというディレクトリにしました。(あとで多分変更する。)
[fms]/applications/test/
これだけでアプリケーションとして有効になるので
rtmp://[ドメイン]/test
でアクセスできるようになるわけですが、これだけだと、任意のRoomアクセスできるし、ストリームも流し放題になります。
そこで次のようにやりました。
[fms]/applications/test/main.ascを準備して以下のコードを書きました。
application.onPublish = function(client, stream) {
if(stream.name != "test") {
this.disconnect(client);
}
}
if(application.name != "test/_definst_") {
application.shutdown();
}
test/_definst_以外のアプリケーションは生成させない。(room)を禁止する。
testという名前以外で放送開始したら、クライアントを切断させる。
ついでに[fms]/applications/test/streams/のディレクトリの所有者をrootに変えました。
これでrecordで放送されてもファイルはできません。
以上で特定のアプリのみRoom禁止、放送もできるけど放送可能なストリーム名は固定され、かつ録画もできない
という状況をつくりました。
0 件のコメント:
コメントを投稿