ustreamで配信を試してみる。

ネット界隈にはゲームのプレイをリアルタイム配信してる人がいる。あんな感じで、PCの画面をチャットメンバに伝えたいこともたまにある。
どうやったら配信できるものか、一日中試してたらなんとなく分かってきたので、ここに書いておく。


まず、配信の基本的な流れは、

  • 「ウェブカメラ」の映像を、
  • 「エンコーダ」でエンコードして、
  • 「メディアサーバ」で配信してもらう、

となる。
当たり前のことを書いたまでだが、この3要素を意識しているのとしていないのとでは、配信の容易さが違ってくる。
今回、最初は全然そう云うことを考えてなくて、結構手間取ってしまった。


それでは、それぞれの要素について詳しく書いていこう。
「ウェブカメラ」は、名前通りにUSB接続とかのウェブカメラのことだ。今回はPC画面を配信したいだけなので、本物のウェブカメラではなく、画面をキャプチャしてそのデータをカメラで撮影したデータに見せかけるソフト(仮想ウェブカメラ)を使う。こう云うソフトは幾つかあるのだが、Hmelyoff LabsのVH Screen Capture Driverが設定に柔軟性があって今回の目的に丁度良かった*1
「エンコーダ」は、名前の通り「ウェブカメラ」から取得したデータをエンコードするソフトだ。エンコードしたデータは、「メディアサーバ」にそのまま送信する*2。エンコーダはそんなに種類がないので、今回はAdobe Flash Media Live Encoder 3*3を使っておく*4
「メディアサーバ」は、配信主が送信した動画データを各視聴者に分配配信するソフト及び、そのソフトを導入したサーバだ。AdobeMicrosoftのそう云うソフトを入れれば自前で作ることもできるが、今回はustreamと云う外部の動画配信サイトを利用するので、何かのソフトを用意する必要はない。


それぞれの要素が用意できたら、後はそれらを適切に設定すれば良い。色々と調整するパラメータはあるけども、一応配信ができることは確認した。
まぁ、私のPCだとCPUパワーが足りなくて、CPUを使うゲームの画面なんかを配信しようとすると、10fpsでもエンコードが間に合わなくなるけども。せめてデュアルコアにしないと厳しいか。

*1:このVH Screen Capture Driverは、仮想ウェブカメラデバイスへの接続に対して、それぞれ別の表示内容を指定できる。故に、このソフトはデバイスへの接続があるまで表示内容の指定はできない。つまり、「エンコーダ」がウェブカメラへ接続した後に表示内容を指定できるようになる。他の同種のソフトは、「仮想ウェブカメラ」と「その表示内容」が常に1対1の対応になっていて、デバイスへの接続がなくとも表示内容の指定ができる。

*2:「メディアサーバ」に送らずに、ファイルに保存することもできる。

*3:Windows2000だと、そのままではインストールできなかったので、KDWを使ってインストールした。

*4:「メディアサーバ」によって、使えるエンコーダが自ずと決まってくる。