RTMFP (Real-Time Media Flow Protocol) | MY ANTENNA @ naoya

MY ANTENNA @ naoya

RIAシステム開発会社でプロジェクトマネージャー(PM)兼、システム営業やってます。

RTMPF (Real-Time Media Flow Protocol)についてちょっとまとめ。

[いそっちのとこ]
http://blog.isocchi.com/2008/12/flexair-rtmfpwinmx.html

[nodさんのとこ]
http://www.noridon.net/weblogs/archives/2008/12/cocomortmfp.html

[Adobeさんのとこ]
http://blogs.adobe.com/collabmethods/2008/12/try_rtmfp_and_clienttoclient_d.html

[上条さんのとこ]
http://blogs.adobe.com/akamijo/

MAXのときの記事もあったのでメモ
<転載ごめん>
RTMPの制約

太田氏はまず,前世代プロトコルであるRTMPの背景を説明。Flash PlayerとFlash Media Serverが通信する手段であるTCP/IPと,ActionScript3.0で接続を行うNetConnection/NetStreamクラスに触れた後,それらを使用することで音声やビデオの配信,サーバー経由のメソッドコール,メッセージ配信ができることを説明した。

その後,様々な場面・問題に対応するために派生したRTMPT,RTMPS,RTMPE,RTMPTEを順に説明後,RTMPの問題点として,TCPベースであるためデータ欠損時には再送信しなければならないこと,遅延が避けられないこと,P2Pを構築してもNATと互換性がないこと等を指摘し,RTMFPはそれらに対応するために生まれてきたと話した。

次世代プロトコルRTMFP

次に,RTMFPはUDPベースであり,それによってパケットレベルでの直接アクセスが可能になり,NATおよびファイアーウォールとの互換性が高まったと解説。UDP上に高度なネットワークプロトコルスタックを実装することで,高速なセッション確立,複数の並列メディアフローメッセージ,多様な輻輳情報を利用でき,瞬間的な切断からも迅速に対応できると説明した。

さらにセキュア面でも言及。すべてのパケットはブロック暗号で暗号化され,接続の確立時にSSLライクな認証をサポートしたと高度なセキュリティを保持しながらも,開発者はActionScriptレベルでアクセス可能で,コードはRTMPとほぼ同様に動作するなど,柔軟性を強調した。

RTMFPの目玉であるP2P通信についても解説。メディアデータはFlash Media Serverをバイパスし,FlashPlayer/AIRクライアント同士で送受信されるため遅延時間が減少,サーバー側における負荷がほとんどないと語った。

そして,RTMFPにおけるダイレクトP2Pの仕組み,ActionScript APIのコード利用に関して解説したのち,デモコードとデモアプリケーションを披露。比較的簡単にP2P通信によってウェブカムのデータ送信が行えることを示した。

Stratus

RTMFPを実現する次期Flash Media Serverは公開未定ということで,現在RTMFPを試せるRTMFPランデブーサービスとして,Adobe Labsで公開しているStratusが紹介された。StratusはAdobe IDがあれば誰ででも使用することができ,Stratusを利用することでFlash Media Serverを配置せずに1:1,1:少数の音声ビデオアプリケーションを構築できる。

太田氏は将来の可能性として,「Flash Player 10,AIR 1.5は第一段階に過ぎない。P2P技術で1対多の大規模なユースケースに適用することも視野に入れているため,私も期待している」と語り,それを実現するための技術"Groups"について紹介した。さらに現時点では不透明だが,可能性としてローカルのファイルのP2Pアップロードついても示唆された。

最後に太田氏は,上条氏のブログでもRTMFPを取り上げる予定であるため,デベロッパーの方は是非ブックマークしてほしいと語った。

100行にも満たない比較的簡単なコードで,Stratusを利用したFlashによるP2P通信が構築できることは,著者としても驚嘆した。読者の方も,これを機会に試してみてはいかがだろうか。