実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ

ストリーミング(動画配信)サーバー
Helix server Basic Linux版 (CentOS5)  2009年8月





ここでは配信サーバーはLinux、エンコーダはカメラが扱いやすいWindowsを使うことにする。

●CentOS5ストリーミング配信サーバー(Helix server Basic Linux版 2009/08現在)

ダウンロード
http://www.jp.realnetworks.comよりBasic版(Helix server-Basic 無料、1年使用可)
@最初はOSの選択と個人データの記入
 (@、Aは最初にsubmitボタンを押してみると必須項目がわかる。メールアドレスは正確に。)
Aアンケートへの回答
 OSの選択はRedHat Enterprise Linux5を選択。これがCentOS5に対応している。
Bダウンロード(rs1201-ga-linux-rhel5.tar.gz)


インストール
@まず、メールが送られてくる(ライセンスファイルのダウンロードページが指定される)。
 ダウンロードページを開いてライセンスキーファイルをダウンロード。
 (Vistaではダウンロードできなかったので、Linuxでダウンロード。)
Ars1201-ga-linux-rhel5.binを実行可能ファイルにして、ターミナルより起動。
 ライセンスファイルをフルパスで指定→ライセンス確認文が続くが、enterを押していくと最後までながれて、最初にインストールディレクトリの指定(デフォルトでbinファイルと同じディレクトリ)とユーザID/パスワードの入力となる。(ユーザID/パスワードはメモしておく)
Bポートの設定は基本的にデフォルトのまま(enterキー)。
RTSP 554
HTTP 8080 (これだけ8080に変更しておく。80だとWebサーバーと喧嘩する。)
MMS 1755
Admin 26565 (設定で使うのでメモしておく)
これらはrmserver.cfgを編集すれば変更できる。

起動
起動は、# /解凍したディレクトリ/Bin/rmserver /解凍したディレクトリ/rmserver.cfg &
これを、rc.localに書き込んでおく。

サーバーの設定
http://333.333.333.210:26565/admin/index.html  (サーバーのIPアドレス:Administratorへのアクセスポート)
上のIDとパスワードを入力。
 server setup→ports ここにポート情報がある。
mount points→RealSystem Content→Base Path /解凍したディレクトリ/Contentなど
HTTP delivery /adminなど
 Logging&Monitoring→Server Monitor 接続のモニターができる。

ポートの設定(RTSPプロトコルを使う場合)
# iptables -A INPUT -p tcp --dport 554 -d 333.333.333.210 -j ACCEPT
# iptables -A OUTPUT -p tcp --dport 554 -s 333.333.333.210 -j ACCEPT
# iptables -A INPUT -p udp --dport 554 -d 333.333.333.210 -j ACCEPT
# iptables -A OUTPUT -p udp --dport 554 -s 333.333.333.210 -j ACCEPT


●windowsVista エンコーダ

ダウンロード
@Basic版realProducer
 http://www.jp.realnetworks.com/よりダウンロード。
アンケートに答える。中程にOSの種類を選ぶ項目がある。
ArealPlayer
 http://jp.real.com/より無償版をダウンロード。

エンコーダー(realProducer)の使用方法
画面左(エンコードの入力側)
 Input file ファイルを使用する場合
 Devices USBカメラなどのデバイスを使用する場合
  Audio、Videoのドライバを選択する。必要に応じてSetting。
画面右(エンコード出力側)
 ●エンコードの設定  Audiencesボタン
 ●ファイルに出力する場合は、左下の1番目のアイコンで出力先ファイル(.rmファイル)を指定→encodeボタン。
  疑似ストリーミング配信をしたい場合は、Outputのスピード設定を下げておかないとエラーが出やすくなるので注意。
  正式のストリーミング配信をする場合は、ストリーミング・サーバーのContentフォルダに置いておく。
 ●ストリーミング・サーバーにストリーミング仮想ファイル(=ライブ)として出力する場合は、左下2番目のアイコン。
  Destination name 適当な名前(適当にlive)
  Stream name 仮想ファイル名 拡張子はrm(適当にlive.rm)
  Broadcast method 「push, Account-Based Login(Helix Server)」
  Server address 333.333.333.210
  Path(Optional) なにも書かなくてよい。
  Port アカウントベースの場合Helix Serverサーバー上のHTTPポートを指定(ここでは8080)。
  Transport UDPまたはTCP
  Username サーバーへのアクセスID
  Password そのパスワード
  (これらの設定は、「Templates」で保存しておくとよい。)
  これで、encodeボタンを押すとエンコードが開始され、サーバーに仮想ファイル(=ライブ)として出力されていく。
  サーバーのLogging&Monitoring→Server Monitorでモニターができる。

ブラウザで見る
●ストリーミング・サーバーを使用する
 オンデマンド(エンコードされた.rmファイル《サーバーのContentフォルダに置いておく》を見る)
   rtsp://333.333.333.210/test.rm (またはhttp://333.333.333.210:8080/ramgen/test.rm)
   但し、後者の場合は新たに8080ポートを開いておかなければいけない。
   また後者の場合、Vistaではダウンロード画面になってしまい、realplayerが開かない場合がある。
 ライブ(サーバーに連続的に送られているストリーミング仮想ファイルを見る)
   rtsp://333.333.333.210/broadcast/live.rm
   (またはhttp://333.333.333.210:8080/ramgen/broadcast/live.rm)
 ここで、ramgen、broadcastはストリーム・サーバーの仮想ディレクトリ。
●httpサーバーに置いたものを見る
  http://www.my-dom.xxx/camera/test.rm
  http://www.my-dom.xxx/camera/test.ram(後述)

配信には、rtspプロトコルとhttpプロトコルを使う方法があるが、ストリーミング・サーバーを設置しているならrtspを使う。rtspプロトコルは負荷が少ないし、複雑な使い方ができる。httpの場合は疑似ストリーミングと呼ばれ、ストリーミング・サーバーを置くことが出来ずhttpサーバーから配信しなければならないときに使う。

smilを使うとプレイヤーを多彩に表現することができる


ホームページで見せる

相手にRealPlayerがインストールされていなければならない。(ダウンロードサイトを指示してインストールするように促しておくとよい。)

●ポップアップタイプ(外部でプレイヤーを起動するタイプ)
オンデマンド
  <a href="rtsp://333.333.333.210/test.rm">***</a>
ライブ
  <a href="rtsp://333.333.333.210/broadcast/live.rm">***</a>
これで、自動的にRealPlayerが起動して一応見ることができるが、 下記の理由で、とりわけhttpサーバーでの配信ではメタファイルを使用するのが普通。

メタファイル(.ram)を利用する
・ストリーム・サーバーの場合、サーバーを隠す。
・本体をダウンロードされないようにする。
・基本的にwebブラウザはhttpで通信するためのソフトなので、webブラウザから直接ストリーミングサーバーにコンテンツを要求するのは奨められない。
・httpサーバーから配信する場合(=htmlコンテンツ・フォルダ内にrmファイルを置かざるをえない場合)、直接<a href="http://www.my-dom.xxx/camera/test.rm">***</a>などとするとキャッシュにダウンロードしてからの再生となってしまう。これを避けるためには、httpサーバーから配信する場合ではメタファイルが必須。
記述例
  <a href="video.ram">***</a>
そして、このvideo.ramファイルに次のように書き込んでおく。
  オンデマンド rtsp://333.333.333.210/test.rm
         httpサーバーから疑似配信する場合 http://www.my-dom.xxx/camera/test.rm
  ライブ rtsp://333.333.333.210/broadcast/live.rm
注意 Vistaではダウンロード画面になってしまい、realplayerが開かない。

メタファイルの自動生成
ramgenを使う。
<a href="http://333.333.333.210:8080/ramgen/test.rm">***</a>
(8080は、Helixサーバー設定のHTTPポート値で指定したもの。80なら記入しなくてよい。なお、この場合はHelixサーバーのTCPの8080ポートを開けておく必要がある。)

●エンベッドタイプ(埋め込みタイプ、プラグイン再生タイプ)
メタファイルは、.rpmを使う(拡張子が変わるだけ)。

<!-- ムービー部分(ImageWindow) -->
<object id="RP1" width="320" height="224" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="ImageWindow" />
<param name="backgroundcolor" value="black" />
<param name="autostart" value="false" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="ImageWindow" backgroundcolor="black" width="320" height="224" autostart="true" nojava="false"></embed>
</object>
<div class='clearfix'>
<!-- 巻戻しボタン -->
<object id="RP1" width="26" height="26" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style="float:left;width:26px;height:26px;">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="RWCtrl" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="RWCtrl" width="26" height="26" nojava="true"></embed>
</object>
<!-- 再生ボタン -->
<object id="RP1" width="36" height="26" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style="float:left;width:36px;height:26px;">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="PlayButton" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="PlayButton" width="36" height="26" nojava="true"></embed>
</object>
<!-- 停止ボタン -->
<object id="RP1" width="36" height="26" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style="float:left;width:36px;height:26px;">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="StopButton" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="StopButton" width="36" height="26" nojava="true"></embed>
</object>
<!-- 早送りボタン -->
<object id="RP1" width="26" height="26" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style="float:left;width:26px;height:26px;">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="FFCtrl" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="FFCtrl" width="26" height="26" nojava="true"></embed>
</object>
<!-- 再生位置スライドバー -->
<object id="RP1" width="170" height="26" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style="float:left;width:170px;height:26px;">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="PositionSlider" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="PositionSlider" width="120" height="26" nojava="true"></embed>
</object>
<!-- 消音ボタン -->
<object id="RP1" width="26" height="26" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" style="float:left;width:26px;height:26px;">
<param name="src" value="./test.rpm" />
<param name="console" value="Clip1" />
<param name="controls" value="MuteCtrl" />
<embed name="RP1" src="./test.rpm" type="audio/x-pn-realaudio-plugin" pluginspage="http://jp.real.com/" console="Clip1" controls="MuteCtrl" width="26" height="26" nojava="true"></embed>
</object>
</div>


テストページ 現在サーバーは停止しています



TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く