ラグナロクな人々 ホーム
ラグナロクな人々 * オンラインゲーム「ラグナロクオンライン」の不定期な体験日記です。役に立つかは鬼ギモンですが、ウェブログなサイトです。

« Second Lifeで動画ライブ配信 その2 | トップページ | 教授君の近状 »

2007.05.05

Second Lifeで動画ライブ配信 その3

3.セカンドライフでQuickTime ライブ配信
Darwin Streaming ServerとQuickTime Broadcasterを利用してセカンドライフの中でライブ配信をやってみようと思います。完成図は、その1の記事にあるショットのように、アバターがみるビューアの画面を、SL内で動画として配信するものです。ライブ配信、アーカイブ的な配信含めてセカンドライフのなかで起きている出来事が動画として楽しめるような、放送局を作られる方がでてくると面白そうですね。

私が試した環境は、まずSLビューア表示用PC、配信サーバ用Mac、動画確認用PC。計3台のPCとSLのアカントは2つ使います。(まぁビューア表示と動画確認を同じにすれば1アカでもできます)で、考え方としてビューア表示PCからモニタ画面をビデオ出力します。ビデオ出力をFireWireに変換するコンバータを経由させBroadcasterに取り込みます。Broadcasterは出力先をDarwin Streaming Serverに設定することでDarwinからライブ配信をすることが可能となります。セカンドライフ側は、QuickTimeを再生できるので、自分の土地にアドレスを設定すればライブだって配信できるわけです。

で、まず配信サーバを担うMacですがスペックはCore Duo2GHz、メモリ1GのMacBookを使いました。QuickTimeでのライブ配信はQuickTime Broadcasterが必要で、DarwinのようなWindowsやLinuxでも動くような互換アプリが存在しないため、Macでしかライブ配信はできないようです。そしてStreaming Serverは、Darwinを使用します。OS XサーバではQuickTime Streaming Serverが標準で入っているようですが、普通のMacには入っていないのでDarwinを使うことになります。

Broadcasterには、WindowsMediaエンコーダのように(便利な・・)画面取り込みの機能が付いていません。そして画面の取り込みはFirewire経由でしか取り込めないため、SL表示用PCを用意してアナログRGBのケーブルからいったんビデオ出力に変換して、さらにFirewireに変換という方法をとりました。ビデオ出力はパソコン画面をテレビに映す機器を使用すればいいですが、Firewireへの変換は、カノープスのADVC110を使いました。
Secondlife_07050603
接続図

買ったあとに気が付きましたが、、アナログRGBからFirewireに直接変換できるTwinPact 100というものが同じカノープスからでていたので、多少後悔ですが・・・でも定価\59,800と結構高いですね。。これを使えば、MacでSLビューアを表示しながら、その画面をライブ配信することもできそうです。(試してないので実際できるか分かりませんが、ただ処理能力的にきついかな)

とりあえず、ADVC110をMacに接続するとBroadcasterの取り込みデバイスとして認識され、SL表示用PCの画面がBroadcasterの画面上に表示されると思います。
Secondlife_07050604
ADVC110が認識されている

Broadcaster上では、出力する画面の大きさ、配信ビットレートなど設定します。DarwinとBroadcasterは同じMac上なので、配信先のIPアドレスは自分自身に設定します。
Secondlife_07050605

ホスト名は自身のPC localhost:554
映像のファイル名を適当に b_mv

次に、Darwin Streaming Serverをインストールします。Windows版ではActivePerlをインストールしないと動かないのですが、さすが?UNIX系のMacだけあって特に下準備しなくても、そのままDarwinが動作します。Darwinの諸設定はブラウザから設定します。アドレスはhttp://127.0.0.1:1220 Darwinから単独で映像を流す場合は、映像ファイルを指定したり設定が必要なのですが、ライブ配信の場合、経由するだけのようで、特になにかファイルを指定する必要はありません、Darwinが起動しているか見ておけばいいでしょう。
Secondlife_07050606
Darwin Streaming Server

接続する際の映像のURLはBroadcasterで設定したURLとなります。私の場合は、「b_mv」と付けたので、
rtsp://グローバルIPアドレス:554/b_mv
となります。とりあえず、これで、ポートの穴を開けておけば映像は配信されます。
Secondlife_07050607
QuickTime Broadcasterを手入力追加 ポート554をあける

これで直近QuickTime Playerで再生されるようになります。
Secondlife_07050608

ここまで動けば、あとはSL内でQuickTimeの設定をするだけです。自分の土地に、さっきQuickTime Playerで表示されたURLを入力して、画像に「*Default Media Tecture」を指定します。(画像はなんでもいい)
Secondlife_07050609
土地に映像を設定

次にモニタ代わりとなるプリムを生成します、単純に四角形の板を作ってそこにさっき指定した「*Default Media Tecture」を貼り付けます。
Secondlife_07050610
メディアテクスチャで指定した画像を貼り付ける

そうすると、動画の再生タブが表示されプレイすれば、めでたくライブ配信の動画が再生されます。
Secondlife_07050611_1
ライブ配信成功 うさぎの後ろに誰かいる・・・

そう、あと補足ですがビデオ出力したものをMacに取り込むと画面のまわりに黒いふちが表示されます。テレビに映すと表示されないもので、これは安全領域と言ってテレビは表示される画面のサイズが実際の映像より実はひとまわり小さいのです。これがないと、テレビでは逆に周りが削られて表示されてしまいます。
Secondlife_07050612
実際の表示サイズはやや小さい

そのため、わざとフレームを付け足して、ちゃんとテレビで隅々まで表示されるようにしたものだと思われます。PC上では関係ないので、それが、そのまんま表示されてしまったというところでしょうか。そのふちサイズを考慮して配信の画面サイズを決めるといいでしょう。
あともう一点
QuickTime Broadcasterは、1ストリーム(一人分)しか映像を送ることができません。そのためDarwinが同時接続分ストリームデータを複製して送信しています。コピーするのが仕事みたいなものでしょうか。なので帯域という点でみれば、BroadcasterからDarwinに対しては1ストリーム分で済むのでADSLレベルでもいけるかもしれません。一方Darwinからは要求された同時接続分の帯域が必要になります。
Secondlife_07050613_2

だいたい考え方としてエンコードビットレートに対して、ヘッダ情報というのを考慮する必要があるようで、実ビットレートは3、4割増しで考えます。1Mエンコードの場合は、実ビットレートは1.3~1.4M程度の余裕は必要なそうです。

とりあえずですが、ざっと説明してみましたが、使いようによって面白いことができる感じがしますよね。Broadcasterは、自宅などから撮影しDarwinは帯域を確保したデータセンタなどに設置すれば、仕事レベルでも十分行けるんではないでしょうか。

Posted by みーや |