メディアのストリーミング再生

カテゴリ: Wowza Media Server Proで作るストリーミングサーバー / 公開日: 2011年1月23日(日曜)15:07 / 投稿者: Tom Goodsun

インストールが終わったら、とにかく再生してみたいですよね。そのために基本的なストリーミング設定をしていきます。まずはWowzaがどのようにディレクトリを管理しているかを確認します。

Wowzaは/usr/local/WowzaMediaServerPro(/usr/local/WowzaMediaServerPro-x.x.xへのシンボリックリンク)にサーバー本体がインストールされ、サービスも/etc/init.d/からコントロールできます。基本的にはインストールディレクトリである/usr/local/WowzaMediaServerProに格納されているファイルをカスタマイズしていくことになります。

設定ファイルのほとんどがXMLで管理されており、もちろんrootで変更します。以下はディレクトリの構成表です。

/usr/local/WowzaMediaServerPro(/usr/local/WowzaMediaServerPro-x.x.x)
applications ストリーミングの種類に応じたWowzaのアプリケーション(ストリームタイプ)を格納します。
bin Wowzaの起動や停止、設定を行うためのシェルスクリプトが格納されています。
conf Wowzaのバーチャルホスト(デフォルトのホストも含む)やサーバーの設定ファイル、ライセンスファイルが格納されています。
content

デフォルトのWowzaホストが利用する再生メディアの格納ディレクトリ。

documentation Wowzaに関するドキュメント(説明書など)が格納されています。
examples

サンプルのストリームタイプのインストールファイル(シェルスクリプト)が格納されています。

lib Wowzaの.jarファイルが格納されています。
logs Wowza全体のログが格納されます。

今回テストするのはFLVを再生するためのシンプルな仕組みである「SimpleVideoStreaming」を使用します。examplesの中のSimpleVideoStreamingの中の「install.sh」を実行します。

# /usr/local/WowzaMediaServerPro/examples/SimpleVideoStreaming/install.sh 

すると、/usr/local/WowzaMediaServerPro/applications/の直下に「simplevideostreaming」というディレクトリが作成されます。中身は空ですが、このディレクトリの存在自体に意味があるのでこれでかまいません。これでひとまずWowzaを再起動しましょう。

 # /etc/init.d/WowzaMediaServerPro restart 

いよいよです。再度確認ですが、WowzaはFlash Mediaに対応したサーバーです。これにはActionscriptでConnectionクラスを生成して、SWFをWowzaに接続しなければなりません。端的にいうと一筋縄ではいかないということです。作りこもうとすると結構大変です。なので出来合いで行きましょう。世の中にはJW PlayerFlowplayerというプレイヤーがあります。フリーユースも可能です。

Longtail JW FLV Player

ひとまずJW Playerをダウンロードして、解凍しましょう。中身はこんな感じなっていると思います。

  • player.swf
  • preview.jpg
  • readme.html
  • swfobject.js
  • video.flv
  • yt.swf

メディアファイルであるvideo.flvを/usr/local/WowzaMediaServerPro/content/以下にアップロードします。ウェブサーバーの公開ディレクトリに以下の構成でファイルをアップロードします。index.htmlはその下のコードを貼り付けておいてください。

  • index.html
  • player.swf
  • swfobject.js

index.html

<html>
<head>
<title>TEST PAGE</title>
<script type="text/javascript" src="/swfobject.js"></script>
</head>
<body>
<div id="player"></div>
<script type="text/javascript">
	var so = new SWFObject('player.swf','mpl','470','320','9');
	so.addParam('allowscriptaccess','always');
	so.addParam('allowfullscreen','true');
	so.addParam('flashvars','file=video.flv&streamer=rtmpe://[ip-address]/simplevideostreaming');
	so.write('player');
</script>
</body>
</html>

それではお待ちかね。アクセスして再生してみてください。どうですか、再生できましたか?
でもこれでは本当に再生されてるか不安なところです。なので、コンソールでリアルタイムにログを確認しながら再生されているかどうかを確認します。

# tail -f /usr/local/WowzaMediaServerPro/logs/wowzamediaserverpro_access.log

例えば再生できない場合はどうするのか。「file not found」とプレイヤーにでる場合は再生するメディアが適切なディレクトリにないとかファイル名の指定方法が間違っているとかが考えられます。「server not found」はサーバーのIPアドレス、ポート番号(後述)、ストリームタイプが適切でない可能性があります。何はともあれ、上のコマンドを実行しながら確認すれば、原因もすぐわかるでしょう。