Linux で RealVideo Live!

-Linux を使った RealSystem構築入門-

lilo / RealTeam(RealTeam@lilo.linux.or.jp)

たなか としひさ(tosihisa@netfort.gr.jp)

$Id: LinuxReal.html,v 1.1 2000/05/12 17:25:41 tosihisa Exp $



Linux を使って、インターネット中継をする方法について解説します。このテキストでは、インターネット中継を実現するシステムとして、RealSystem を取り上げ、簡単に RealSystem ソフトウェアの紹介と解説をします。

なお、このテキストは、筆者及び RealTeam MLメンバーが独自に調査して作成したものであり、RealNetworks社の公式なものではありませんので、ご注意下さい。このテキストにおける御質問などは、たなか としひさ(tosihisa@netfort.gr.jp) もしくは RealTeam ML(RealTeam@lilo.linux.or.jp) まで御連絡下さい。

このテキストは、随時更新されます。最新のテキストは、http://www.netfort.gr.jp/~tosihisa/RealSystem/LinuxReal.html にあります。


1.インターネット中継って?

2.RealSystem って?

3.RealSystem が動作するディストリビューション

4.Real エンコーダ

5.Real サーバー

6.Real プレイヤー

7.RealPlayer 7 のインストール

8.RealPlayer 7 を ESD 経由でサウンド再生させる


1.インターネット中継って?

インターネット中継とは、文字通り、インターネットを通じて、映像/音声をリアルタイムに送信する事を言います。インターネットの爆発的な普及と、高速な回線により、まさにオンデマンドで、今何が起こっているのかを中継する事が出来ます。

2.RealSystem って?

RealSystem とは、RealNetworks社(http://www.real.com/) から供給されているソフトウェア一式の事を言います。RealSystem ソフトウェアは、大別すると、以下の3種類に分けられます。 この様に、RealSystem ソフトウェアは、各担当機能が、ソフトウェア的に分けられています。Realエンコーダが、直接 Realプレイヤーと通信する事はありませんし、Real サーバーが、直接キャプチャデータをエンコードする訳ではありません。上に挙げた3つのソフトウェアが、それぞれ連係しあい、初めてインターネット中継が実現できます。

以下の図は、それぞれのソフトウェアのイメージ図です。

図:RealSystem概念図

3.RealSystem が動作するディストリビューション

RealSystem ソフトウェア(Realエンコーダ/Realサーバー/Realプレイヤー)は、すべて Linux で動作します。従って、「全て Linux を使って」RealSystem を構築する事は可能ですが、しかしながら、ディストリビューションの違いにより、そのままでは動作しない場合もあります。

筆者らが調べた範疇では、主なディストリビューションの、RealSystem 対応は、以下の表の通りです。
 

エンコーダ
RealProducer G2
(有料/無料)
サーバー
BasicServer G2
(有料/無料)
プレイヤー
RealPlayer 5.x
プレイヤー
RealPlayer G2
Slackware 7.0
△(※1)
○(Ver 7)
△(※3)
RedHat 5.2
○(Ver 6)
△(※4)
RedHat 6.1
△(※1)
○(Ver 7)
△(※3)
Vine Linux 1.0
○(Ver 6)
△(※4)
Plamo Linux 1.4.x
△(※2)
○(Ver 6)
×
Plamo Linux 2.0β
△(※1)
○(Ver 7)
×
Debian GNU/Linux
--
○(Ver 6)
○(※5)

○:使用可能。
△:条件つき(パッチをあてる等)事で動作。
×:動作せず。
--:動作未確認。

(※1) RealNetworks 社より配布されているパッチを当てる事で動作します。パッチファイルは、RealProducer G2 ダウンロードページにあります。
(※2) glibc2.tgz を installpkg する事で動作します。
(※3) 2.2.x カーネルベースのディストリビューションでは、http://onramp.i2k.com/~jeffd/rpopen/ にある rpopen.tar.gz を合わせてインストールする必要があります。
(※4) 最新の RealPlayer G2(9月版以降のバージョン)では動作しない可能性があります。
(※5) potatoで確認しました。

RealServer G2 の表中にあるバージョンは、動作を確認できた RealServer G2 のバージョンです。

RealSystem ソフトウェアは、例えば RealProducer G2 は、Glibc2.0.x が必要です。また、Glibc2.1.x で RealProducer G2 を動作させる場合、RealNetworks会社より配布されているパッチを当てる必要があります。

なお、RealSystem ソフトウェアで、Realエンコーダである、RealProducer G2 を動作させる場合、Video4Linux に対応したビデオキャプチャカードが必要です。これは、多くの Bt848 ベースのビデオキャプチャカードなら、動作するはずなので、Bt848 ベースのビデオキャプチャカードを購入しておくと良いでしょう。
Linux の、Bt848ベースのドライバに関する情報は、 http://www.thp.uni-koeln.de/~rjkm/linux/bttv.html より入手できます。

Bt848 ベースのビデオキャプチャカードは、Linux 2.0.x カーネルでも動作しますので、Bt848 ベースのビデオキャプチャを使う場合は、必ずしもカーネルを 2.2.x にアップグレードする必要はありません(ただし、2.0.x カーネルには、Video4Linux は標準で含まれていませんから、別途 Video4Linux ドライバを入手する必要がありますが...)。Linux カーネル 2.2.x では、Video4Linux が標準で含まれていますので、Video4Linux をダウンロードする必要はありません。もちろん、新たに Linux カーネルをダウンロードしたならば、Video4Linux を有効にしてカーネル再構築の必要があります。

また、ノートPCでエンコードする場合ですが、九州大学の岡村さんが、IBM Smart Capture Card の Video4Linux 対応ドライバを作成されました。この場合、Linux2.2.x カーネルが必須ですが、ノートPCをお持ちで、IBM Smart Capture Card をお持ちの方は、ノートPCでも、RealVideoエンコードが可能になります。岡村さん作の IBM Smart Capture Card Video4Linux 対応ドライバは、ftp://sourceforge.org/pcmcia/contrib/ より入手できます。


4.Real エンコーダ

Realエンコーダは、ビデオからの映像/音声データを取り込み、変換し、Realサーバーに配信します。

Linux で動く Real エンコーダは2種類あり、
 

があります。基本的に、RealSystem ソフトウェアは、"Plus" がつくのが有料版で、ついてないものは、無料版です。
図:RealProducer G2画面
RealProducer "Plus" G2 と、RealProducer G2 の主な違いに、RealPlayer 5.0 形式のエンコードが出来る/出来ないと言うのがあります。

MS-Windows であれば、現在は RealPlayer G2 が大半を占めているようですし、特に問題はありませんが、Linux 版 RealPlayer が、G2 版はまだβ版しかなく、逆に大半が RealPlayer 5.0 であるため、Linux クライアント向けに配信する場合は、RealProducer "Plus" G2 を購入し、RealPlayer 5.0 互換でエンコードすると良いでしょう。

RealSystem G2 では、"SureStream" と言う転送方式が導入されています。RealSystem 5.0 では、1エンコードデータ(ストリーム)の転送bps が固定されていましたが、SureStream では、1エンコードデータ中に、複数の転送bpsを含める事が出来ます。すなわち、1つの RealProducer G2 で、20Kbpsや、それ以外の bps のエンコードデータを Real サーバーに転送できます。

RealProducer G2 を使って、エンコードデータを RealServer G2に送信する場合、注意する事があります。RealProducer G2 ←→ RealServer G2間のデータ転送ですが、RealSystem 5.0 では、データ転送は、基本的に RealEncoder 5.0 →RealServer 5.0 への一方通行だったので、IPマスカレードが入っても、特に問題は無く通信できるのですが、RealSystem G2 では、クライアント(RealPlayer G2)と RealServer G2 の接続回線速度から、エンコードbps を変化させる事が出来るため、RealServer G2から RealProducer G2に対しても、通信を行ないます(セッションを張りに行きます)。従って、RealProducer G2 を使って RealServer G2 と通信する場合、IPマスカレードを途中に置く事が出来ません(NAT なら通信が可能です)。RealProducer G2は、RealServer G2 から IPアドレス的に通信出来る所に設置する必要があります。

RealProducer G2 は、http://www.jp.real.com/products/tools/producer/ より入手出来ます。

なお、RealProducer G2 は、RealServer 5.0 とは通信できません。RealProducer G2 を使う場合、転送先のサーバーは、必ず RealServer G2 である必要があります。


5.Real サーバー

Realサーバーは、Realエンコーダからのエンコードデータを受けとり、実際にRealプレイヤーに配信します。

Linux で動作する Real サーバーは、いくつかの種類が販売/配布されていますが、パーソナルで使うとするならば、
 

の2種類があります。無料版は、基本的に個人使用あるいは評価向けに配布されており、企業や資金のある団体は、有料版を購入する必要があります。

(※2) Basic Server G2 は、1999年9月までは40クライアントまででしたが、その後、料金改定に伴い、同時接続クライアントが60クライアントまで引き上げられました。

Basic Server G2は、Web ベースにより、完全に保守が可能です。

図:RealServer G2 Web設定画面

また、Basic Server G2は、JAVAベースのモニタリング機能も持っており、Webブラウザから、接続状態の監視も可能です。

図:RealServer G2モニタ画面

Basic Server G2自身は、CPU 負荷は、余り必要としません。20Kbps の品質で、25 クライアント同時接続であれば、CPU 的には、Pentium 166MHz 程度でも、十分運営できます。Real サーバーに求められるのは、

  1. 速い回線(1Mbps程度の回線容量)
  2. RealVideo コンテンツを格納できるだけのディスク容量
  3. 128MB 程度のメモリ(-m オプションで使用メモリ量を設定できます)
です。

なお、どれくらいの回線容量が必要になるかですが、これについては、経験則ではありますが、おおよそ

必要回線容量 = (エンコードボーレート ×1.5)× 同時接続クライアント数

の式で出される程度の回線容量を必要とします。

例えば、エンコードする(配信する)ボーレートを 20Kbps とし、同時に25クライアント接続しているとすると、

(20K × 1.5) × 25  = 750Kbps

分の回線容量が必要(使用されている)になると言う事です。Real サーバーを構築される場合は、予想接続クライアントをまず考慮し、それに基づいて、上の式にあてはめ、必要回線容量を見積もると良いでしょう。

Basic Server G2を、Webブラウザから保守する場合、注意する事があります。Basic Server G2は、Web ブラウザから接続がある場合、そのブラウザのバージョンチェックを行ない、

以外のバージョンから接続された場合、Basic Server G2 は接続を拒否します。従って、Webブラウザから Basic Server G2を制御する場合、上に挙げた Web ブラウザで、接続して下さい。

Basic Server G2 は、http://www.jp.real.com/solutions/basic/plus.html より入手出来ます。


6.Real プレイヤー

Real プレイヤーは、Real サーバーと接続し、実際に映像データを見ることができます。
Real プレイヤーも、大別すると2種類あり、 があります。どちらも無料で配布されています。RealPlayer 5.0 は、ほぼ全てのディストリビューションで動作しますが、RealPlayer G2 は、最新のバージョンでは、Glibc 2.0.x ベースのディストリビューションで無いと、動作しないと言う制限もありますので、ご注意下さい。また、RealPlayer G2 の Linux 版は、現在β版のみです。β版とは言え、かなり安定して動作しているので、RealPlayer G2 が動作する環境をお持ちの方は、RealPlayer G2 を導入されても良いでしょう。
RealPlayer 5.0 は、Linux カーネル 2.0.x 系のディストリビューションでは問題無く動作しますが、カーネル 2.2.x 系のディストリビューションで動作させると、頭だけ再生して、エラーになってしまうと言う問題があります。その場合、http://onramp.i2k.com/~jeffd/rpopen/ にある rpopen.tar.gz をダウンロードして、インストールする事で、その問題を回避する事が出来ます。RealPlayer 5.0は、http://proforma.real.com/real/player/blackjack.html より入手できます。

RealPlayer 7 のインストール

RealPlayer 7 は、README を読みますと、 と言うのが特筆すべき所でしょうか。また、10%〜15% 再生能力が落ちるものの、 ESD(Enlightened Sound Daemon) 経由で、サウンド再生を行なう事も可能です。

RealPlayer 7 は、Glibc 2.0 以降の環境で動作します。筆者は Slackware 7 を使っておりますが、問題なくインストールできました。

RealPlayer 7 Linux 版は、RealNetworks 社のサイト(http://proforma.real.com/real/player/linuxplayer.html) よりダウンロードできます。

このページに接続し、必要項目を入力してから、"Download FREE Player" ボタンを押すと、しばらくしてからダウンロードサイト選択ページが表示されますので、そこからダウンロードして下さい。

ダウンロードが完了すると、

$chmod +x rp7install.bin
$su
Password: <- root のパスワードを入力して下さい。
#./rp7install.bin

として、RealPlayer 7 のインストールを開始します。RealPlayer 7 は、グラフィカルなインストール画面を表示します。

[図1:RealPlayer 7 インストール画面]
rp7-install-01.jpg

ここで、"Accept>" ボタンを押すと、インストールディレクトリ選択画面になります。

[図2:RealPlayer 7 インストールディレクトリ選択画面]
rp7-install-02.jpg
筆者は、ここでは特に変更せず、/usr/local/RealPlayer7 のまま選択しました。ここで、"Finish" ボタンを押すと、インストールを開始します。

[図3:RealPlayer 7 インストール中画面(rp7-install-03.bmp)]
rp7-install-03.jpg
インストールが完了すると、プラグインアプリケーションのインストールディレクトリ選択画面に移ります。ここで筆者は、/usr/local/bin を選択しました。

RealPlayer 7 のインストールが完了すると、そのまま引き続いて、お決まりの :-) RealPlayer 7 ユーザー登録画面に移ります(図4:RealPlayer 7 ユーザー登録画面)。

rp7-install-04.jpg

E-Mail と国を選択し、"Next>" ボタンを押すと、最後に、どんな回線状態でインターネットに接続しているか問い合わせてきますので、それも選択し、"Finished" ボタンを押します。

RealPlayer 7 が起動して、インストール完了です。

また、root でインストールしたなら、root のホームディレクトリ(通常は/root だと思います)に、.mime.types と .mailcap が出来ていますので、これを各ユーザーのホームディレクトリにコピーすれば、netscape でRealVideo コンテンツへの URL を選択する事で、RealPlayer 7 が起動するようになります。

RealPlayer 7 を ESD 経由でサウンド再生させる

RealPlayer 7 を ESD 経由でサウンド再生させる方法はいたって簡単で、RealPlayer 7 をインストールすると、そのユーザーのホームディレクトリに、.RealNetworks_RealMediaSDK_60 と言うファイルが出来ています。そのファイルに、

SoundDriver=2

と追加すると、ESD 経由でサウンド再生を行なうようになります。

実際に ESD 経由で RealVideo 再生を行なわせると、確かに 10% 程度再生能力が落ちますが、再生そのものは問題なく出来ている様です。しかしながら、RealPlayer 7 は、MP3 再生も可能になっているのですが、ESD 経由でMP3 を再生させようとすると、始めの数秒間しか再生せず、これは、今後に期待と言う所かも知れません。

RealPlayer 7 Linux 版を使って、色々 RealVideo コンテンツを再生させてみましたが、MP3 の再生では、上記の様な問題があるものの、ESD を経由せず、直接サウンド再生させる分には、特に問題なく再生できている様です。Glibc 2.0 以降のディストリビューションをお使いの方は、これを機会に使ってみるのも良いかも知れません :-)。