この特集のトップページへ
この回のトップページへ

RealProducerを使って配信する

 以上で配信のための設定が整った。いよいよRealProducerを使ってストリーミング配信をしてみよう。

RealSystem Serverの設定
 RealProducerを使ってストリーミング配信するには,まずRealSystem Serverに配信するユーザー名とパスワードを登録しなければならない。RealSystem Serverではセキュリティ保護機能を持っており,RealSystem Serverに登録したユーザー名とパスワードを提示したユーザーしかストリーミング配信できなくなっているのだ。

 そこでまず,Webブラウザから「http://localhost:10080/admin/index.html」で示される管理ページを表示させよう。そして,管理ページの[Broadcasting]ツリーの下の[Encoder]の部分をクリックする。すると,Fig.5に示すようにストリーミング配信にマッピングするパス名とポート番号を設定する画面が表示される。


上記URLの「:10080」は,RealSystem Serverをインストールした際のオプション指定に依存する。詳細は,本稿の前編を参考にしてほしい。

Fig.5■マッピング先の設定
fig05

 標準設定では,Fig.5に示したように/encoder/がマッピングされている。そのため,クライアントは「rtsp://サーバー名/encoder/ファイル名」のようにしてRealProducerから配信されたストリーミング配信を見ることができる(ファイル名の部分は,RealProducer側で設定する必要がある。詳細は後述)。

 この中でも重要なのが,[Authentication]の部分だ。[Authentication]の部分では,どのようなグループに属するユーザーがストリーミング配信できるのかを選択する。標準では,[サーバー名.EncoderRealm]となっていて、このグループに属するユーザーしか配信することができない。[サーバー名.EncoderRealm]には,いかなるユーザーも設定されていないので,このままの設定ではアカウントすべてでストリーミング配信ができない状態のままだ。

 そこで,[サーバー名.EncoderRealm]にユーザーを登録する作業が必要がある。ユーザーを登録するには,[Authentication]直下の[Create]というリンクをクリックしよう。すると,Fig.6の画面になってユーザー登録が可能になる。

Fig.6■Realmの編集
fig06

 Fig.6においてユーザーを登録するには,「SecureEncoder」をクリックした後で[ADD A USER TO REALM]を選択する。すると,Fig.7の画面が表示されユーザー登録が可能になる。ここでは,仮にFig.7の画面でrealtestという名でユーザー登録をしてみよう。パスワードは適当に設定してほしい。

Fig.7■ユーザーの登録
fig07

 Fig.7にて[OK]ボタンを押すと,そのユーザーがRealmに登録される。RealProducerを使う際には,ここで登録したユーザー名とパスワードを指定すれば,RealSystem Serverからストリーミング配信ができるようになるのだ。

RealProducerを使って配信する
 それでは最終段階のRealProducerによる配信だ。RealProducerは,コマンドラインで動作するプログラムである(そのためX Window System上でなくてもコマンドラインで実行できる)。また,起動オプションには幾つかの設定項目があるが,概ね次のオプションで起動すれば問題ないだろう。

$ realproducer -l 2:1,4:0 -s サーバー名:ポート番号/RMファイル名 -u ユーザー名 -p パスワード

 たとえば,動作しているRealSystem Serverからtest.rmというファイルとして配信する場合には,次のようにしてRealProducerを起動すればよい。

今回はテスト目的のため,RealProducerとRealSystem Serverを同じコンピュータ上で動作させる例を解説した。実用を考えると動作保証外である。安定した動作を求めるには,RealProducerとRealSystem Serverが動作するコンピュータは別々であることが望ましい。

$ realproducer -l 2:1,4:0 -s localhost:4040/test.rm -u realtest -p パスワード

 この時ユーザー(視聴者側)は,「rtsp://サーバー名/encoder/test.rm」というURL指定をすることでRealPlayerを介して映像を観ることができる。配信をしているサーバ以外のクライアントからアクセスするなどして,実際に映像が流れているかどうかを確かめてみるとよいだろう。ちなみにRealProducerは,「Ctrl」+「C」キーを押すと終了する。


筆者が今回試した結果,なぜかRealProducerから音声をエンコードすることができなかった。いろいろと試したところ,サウンドカードに直接別の音源ソースからLINE-INに入力をしてもRealProducerが扱わなかった。このことから,サウンドカードの問題と判断し今回はその原因追求を諦めた。しかし,もしかするとbttvの問題や,RealProducer自体の問題である可能性も否定できないことを付け加えておく。

 上記の設定は,テレビチューナーを入力ソースとしてRealSystem Serverに出力するものだ。テレビを入力ソースとする時,チャンネルは現在設定されているチャンネルが利用される。よって,あらかじめRealProducerで取り込みたいチャンネルをxawtvなどで事前に設定しておけばよい。


xawtvとRealProducerは,同時に実行することはできない。このため,RealProducerを起動後は,テレビのチャンネルを変更することができなくなるので注意が必要だ。

 なお,テレビ放映やすべての商用ビデオなどには著作権があることから,上記のオプション設定でインターネットにストリーミング配信をすることは違法になる。上記コマンドは,あくまでもテスト目的のものだ。RealProducerの各オプションを変更すれば,ビデオ入力に接続した入力ソースをストリーミング配信できる(むしろ,これがほとんどの使われ方だろう)。

 RealProducerの各オプションは,/usr/local/realproducer-8.5にインストールされるREADMEファイルに記載されている。ここでは利用頻度の高いと思われるオプションをまとめておこう。

オプション 解説
-i ファイル名 ビデオキャプチャではなく既存のmovファイルなどから読み込みたい場合に,そのファイル名を指定する
-o ファイル名 RealSystem Serverに出力するのではなく,RMファイルに変換したい場合に出力先ファイル名を指定する
-s サーバー名:ポート番号/ファイル名 サーバからストリーミング配信する場合,サーバ名,ポート番号,そしてクライアントから参照するファイル名を指定する
-l a1:a2,v1:v2

ビデオキャプチャ画像から配信することを指定する。各オプションの意味は次の通り

a1:a2

オーディオの入力ソースを指定する。幾つかのオプションがあるが,主に使用されるのは次のいずれかである。

2:0 マイク
2:1 Line in
2:2 CD
v1:v2

ビデオの入力ソースを指定する。幾つかのオプションがあるが,主に使用されるのは次のいずれかである。

4:0 テレビ
4:1 コンポジット信号1
4:2 S-Video入力
4:3 コンポジット信号3
-vx width,height 配信する映像の大きさを幅width、高さheightに変更する
-t num 圧縮率(使用帯域)を設定する。numが0のとき28.8kbps、1のとき56kbpsなど

 上記に示したオプションはあくまでも例であり,CPUの負荷や配信する画質を考えて適切な圧縮オプションを選択する必要がある。

 筆者が試した限り,RealProducerの実行にはかなりのCPUパワーを必要とする。そのため古いコンピュータにインストールしてLinuxを動かしているような環境でRealProducerを動かすと,エンコード処理をこなすだけで配信が間に合わなくなる可能性が高い。

 このような状況では,クライアントで動作するRealPlayer側がいつまでたってもバッファリング中から先に進まないという現象が発生するだろう。その場合には,必要がないと思われるデーモンを終了させてCPU負荷を軽減させるなどの対処が必要だ。また,配信映像の解像度を変更するなどして,適時調整してほしい。

まとめ

 今回は,前編,後編と2回に渡りRealSystemを利用したストリーミング配信について解説をした。筆者が試したところの正直な感想を書かせていただけば,RealSystem ServerをLinuxで動かすのは問題ないが,RealProducerをLinuxで動かすのはやや難しいといえる状況だった。

 その原因は,Linuxでビデオキャプチャカードを正しく認識させるまでが複雑であるということと,Linux版のRealProducerはコマンドライン版であるため設定や実行がやや面倒であるためだ。

 前編でも触れたように,RealSystem Serverが動作するOSとRealProducerが動作するOSは同じでなくても構わない。そのため豊富なビデオキャプチャカードが容易に動作し,GUIで操作することができるWindowsやMacintosh環境でRealProducerを動作させるのが現実的かもしれない。その映像を,Linuxで動作するRealSystem Serverを介しインターネットに配信するというスタイルが最も扱いやすいのではないだろうか。

[大澤文孝,ITmedia]

PREV 4/4