Wowza Media Serverの使い方(入門編)

Flash Media Serverの(ほぼ)完璧なクローンとして、Wowza Media Serverというものがあります。元Adobe(しかもFMS担当だった気が)の社員がスピンアウトして立ち上げたもので、Javaで書かれていてMacでも動いたり、614,250円払わなきゃオリジン、エッジサーバの構成ができないFMSと違って$995で全てがそろってしまうナイスなストリーミングサーバです。詳細な違いは糸柳さんが詳しい説明を書いてくださっているので、そちらが大変参考になります。

ちなみに同じくFlashのストリーミングサーバでオープンソース版でRed5もありますが、以前のエントリーのとおり、FlashPlayerのバージョンで動作が異なったり、SharedObjectの挙動が怪しいときがあったりと、まだまだ安定さは欠ける模様です。

Wowza Media Serverのインストール

このWowza Media Serverですが、インストール方法は非常に簡単です。Windowsならインストーラに従って進めるだけ。Linuxは実行権限を追加して、自己解凍形式ファイルを実行するだけです。僕はcoLinux上のFedora7に入れてみました。

sudo chmod +x WowzaMediaServerPro-1.3.3.rpm.bin
sudo ./WowzaMediaServerPro-1.3.3.rpm.bin

/usr/local/WowzaMediaServerPro-1.3.3にインストールされてあるので、binに移動してライセンスキーを入力します。ライセンスキーは試用版の場合は利用許諾書に同意してメールアドレスを登録することで、取得することができます。

cd /usr/local/WowzaMediaServerPro/bin
./startup.sh
(ここでライセンスキーを入力)

起動スクリプトの設定

その後、chkconfigでサービスに登録しておくと便利です。

sudo /sbin/chkconfig --level 345 WowzaMediaServerPro on

こうしておくと、httpdやmysqldと同じようにinit.dスクリプトに追加されます。

sudo /etc/init.d/WowzaMediaServerPro (start|stop|restart)

アプリケーションの作り方

ActionScriptでストリーミングサーバに接続するためには、Wowza Media Server側でアプリケーションの設定を行います。アプリケーションをここで「tv」とすると、ディレクトリの構成は次のようになります。

WowzaMediaServerPro/
 -applications/tv
 -conf/tv/Application.xml

application/tvのtvディレクトリは空でOKです。ディレクトリを作成するだけでアプリケーションとして認識されます。また、conf/tv/のApplication.xmlは、conf/Applicatioin.xmlをコピーしたものです。一点注意する点として、アプリケーションの種類によってStreamのタイプを編集する必要がある点です。たとえば、ライブ系アプリケーションだと次のように編集します。

<Streams>
  <StreamType>default</StreamType>
  <StorageDir>${com.wowza.wms.AppHome}/content</StorageDir>
</Streams>

<Streams>
  <StreamType>live-lowlatency</StreamType>
  <StorageDir>${com.wowza.wms.AppHome}/content</StorageDir>
</Streams>

と編集します。StreamTypeが適したものでないと、swfがまともに動かないので要注意です。基本的にライブ系アプリだと「live-lowlatency」, オンデマンドストリーミングの場合は「file, default」と、しておけば大丈夫だと思います。詳しい仕様はこちらで確認できます。また、ここで設定したアプリケーションtvは次のURLでアクセスすることができるようになります。

rtmp://server-address/tv

ActionScript3でテストコード

折角なのでActionScript3でテストコードを書いてみます。ざっと書くとこんな感じになります。

package{

	import flash.display.Sprite;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.net.ObjectEncoding;
	import flash.events.NetStatusEvent;

	public class Player extends Sprite {
		
		private var nc:NetConnection;

		public function Player(){
			this.nc = new NetConnection();
			this.nc.addEventListener(NetStatusEvent.NET_STATUS, this.onNetStatusListener);
			this.nc.objectEncoding = ObjectEncoding.AMF0;
			this.nc.connect('rtmp://localhost/tv');
		}
			
		private function onNetStatusListener(evt:NetStatusEvent):void{
			var code:String = evt.info.code;
			if(code == "NetConnection.Connect.Success"){
				log("Success to connect to RTMP Server");
			
			} else if( code == 'NetConnection.Connect.Closed'){
				log("Close Connection");
				
			} else {
				log("Failed to connect to RTMP Server");
			}
		}	
	}
}

これを「Player.as」で保存して「mxmlc Player.as」でコンパイルすると接続テスト用swfが出来上がります。また、これを作るにはlog関数をあらかじめセットアップしておく必要があります。log関数についてはこちらを参照ください。

一点、注意しなければいけない点としてNetConnectionのエンコード方式をAMF0にしなければいけない点です。ActionScript3になってからAMF3形式が利用可能になっているはずなのですが、Wowza Media Serverと接続を行うときは、ここのエンコード方式を明示的に指定しておかないと、接続に失敗してしまいます。

関連広告

Trackbacks:0

TrackBack URL for this entry
http://blog.katsuma.tv/mt-tb.cgi/120
Listed below are links to weblogs that reference
Wowza Media Serverの使い方(入門編) from blog.katsuma.tv

Home > ActionScript > Wowza Media Serverの使い方(入門編)

Search
Feeds

Return to page top