無料で使えるRed5とは?
Red5でできること
Red5はFlash Media Server互換のオープンソースによって作られているRTMPサーバーです。Javaで書かれているためLinuxなどUnix系のみならず、WindowsやMacなどJava5以上が動く環境であればどこでも動きます。Red5はRTMPを喋(しゃべ)るので、以下の3つが可能です。
1.動画または音声のストリーミング
2.Webカメラやマイクなどクライアントデータのサーバーでの保存
3.ライブストリーミング
2は、クライアントPCのFlashから、そのPCにつながれたカメラやマイクなどを利用して動画や音声などをサーバー側に転送し、サーバー側でそのデータをflv形式のファイルとして保存することができます。つまりFlashを利用した簡易なレコーダーのようなものが作れます。
1と2の組み合わせで実現できるのがライブストリーミングです。クライアントPCで入力したデータをそのままストリーミングすることによって、Flashのみでテレビ会議のようなものが実現できます。
FlashクライアントとRed5サーバーのやり取りでできること
また、動画や音声を扱う場合以外にも、FlashクライアントとRed5サーバーとのやり取りをさせることにより、以下の2つが可能です。
1つ目は、クライアントPCのFlashの中のActionScriptオブジェクトをサーバーとシンクロさせることによって、複数のクライアント間でオブジェクトの共有ができます。例えば、画面上のボールを動かすと、リモートにいる相手のPC上で表示されている同じFlashの中のボールが動く、といったことができます。
2つ目は、AMF(Action Message Format)によるサーバー上のメソッド呼び出しがサーバー=クライアント間で可能です。これによってデータベースを使ったような、より複雑な機能が実現できます。また、AMFはFlashがサーバーと通信する時のバイナリデータの形式です。
Red5は単に動画配信サーバーというわけではなくサーバー・クライアント間でメッセージをやり取りすることにより、よりインタラクティブな機能が実現できる可能性を秘めています。例えば、サーバーからのプッシュ技術を使うチャットやマルチプレーヤー・オンラインゲームなどが一例と言えるでしょう。AMFについてはAdobeのオープンソースプロジェクト「BlazeDS(http://opensource.adobe.com/wiki/display/blazeds/Developer+Documentation)」のページにて仕様が公開されています。
ところで、どうやってオープンソースでAdobe社の独自プロトコルであるRTMPを実装しているのでしょうか。RTMPは非公開のプロトコルなので、特に公式に情報公開を受けて作っているわけではなく、FMSとの間に流れるパケットなどを解析してプロトコルの中身を推察して作っているそうです。
次のページでは、Red5の現状と、本家のFMSと比べてどうなのか、という点について見て行きます。