live vs. VOD

さっきまで、ライブストリーミング(live)とビデオオンデマンド(VOD)は同じ物だと思っていました。この混乱の為に、相応しいサンプルや文書を見つけられなかったようです。live/VODを含めて、次に挙げる文書を斜め読みしてざっくりと理解した内容をまとめます。

以下、言い切りの句は総て「らしい」を加えて読み直して下さい。でも、少なくとも、昨日の記事のアプリや VOD (構成法が判明したので、別記事で紹介します)を自作して動かせる程度には正しいとは思いますが。

製品群の違い
  • Flash Media Streaming Server (Flash Media Server;FMS)

アドビ社製のストリーミングサーバ。基本的なビデオ・サウンドなどの配信を行うサーバ。サーバからクライアントへの単方向の配信を目的としている。それ以外のサービスは自作する。価格は$955。

  • Flash Media Interactive Server

アドビ社製のストリーミングサーバ。ビデオ会議、ウェブカメラなどのアプリケーションが初めから使える。双方向性の配信・通信を目的としている。価格は$4,500。

  • Flash Media Developer Server

アドビ社製の開発者向けストリーミングサーバ。Flash Media Streaming Server相当で、開発者向けに提供されたもの。無料。ただし、Windowsのサーバ版OSが必要なので、個人には辛い。

FMSクローン。Flash Media Streaming Server に相当する。FMS では多くのアプリケーションをGUIからの設定で使用できるようになっているが、Red5 では手作業が必要。様々なアプリを自作すれば、双方向性配信やらなんやらも自在。プライスレス(コミュニティの膨大な労力と持ち出し・・・本当に感謝です)。

アドビ社の関連製品として、Flash Media Encoding Server と Flash Media Live Encoder がありますが、これらは、FMS と連携してビデオフォーマットの(ライブ)変換・作成を行うもの。プライスレスならば、ffmpegなどを利用することで相当の機能を実現可能。

live、VOD、progressive、embed video
  • embed video

FlashFlexなどでの開発時に swf に埋め込んだビデオのこと。アセット(asset;資産)としてのビデオ。他の方式との違いとして指摘されているのは、ビデオの差し替えの為にコンパイル(Flashだとパブリッシュ)が必要になるという事。

外部ビデオ(recorded video とも言われる)の再生のこと。この辺りからストリーミングビデオと呼ばれる。ローカル、リモートを含めて外部のビデオを再生することをプログレッシブと言う。特に HTTPプロトコルによるものであり、RTMP(Real-Time Media Protcol)プロトコルによるものとは区別されている。クライアント側での Flex コードでは source="http://serverName/someFolder/some-video.flv" などと記述。

  • VOD

ビデオ・オン・デマンド(video on demand)。外部ビデオの再生方式のことで、一般的な意味ではプログレッシブに再生される。特に RTMPプロトコルによる再生を言う。録画済みビデオ(recorded video)を配信するのはプログレッシブ再生と同様だが、視聴者のディスク領域を消費しないとか、保存させないということも可能。クライアント側の Flex コードでは source="rtmp://serverName/appName/some-video.flv" などと記述。

  • live

ライブストリーミングRTMPプロトコルで実現。録画済みビデオもライブとして配信可能だが、特に、撮影中のライブ動画の配信を目的とする。様々な構成が可能で、クライアント->サーバ、サーバ->サーバ、サーバ->クライアントをローカル、リモートに渡ってアップロード・配信ができる。クライアント側の Flex コードでは、source="rtmp://serverName/appName/_definst_/some-live-video" などと記述。他に live="true" オプションが必要。_definst_ はアドビ社製のFMSの既定になっている。インターネットラジオ Suono Dolcertmpアドレスには _definst_ が含まれているので、FMS を使っているのかなぁと思う。