fc2ブログ
Dies irae

  Top > ストリーミングサーバ > Pseudo-Streaming(擬似ストリーミング)を用いてシーク機能の実装  

Pseudo-Streaming(擬似ストリーミング)を用いてシーク機能の実装

2011 - 11/04 [Fri] - 11:50

Flashを用いたWebプレーヤでは基本的に「ダウンロードしながら再生」はできるものの、シークなどはダウンロードが済んだ部分しかできません。HTML5だと自在にシークできますが。そこでApacheにモジュールを組み込むことで任意の場所にシーク出来るようにします。

ストリーミングのおさらい。
◆Pseudo-Streaming
擬似ストリーミング。プログレッシブダウンロード。個人サーバでよく使われる。シークやビットレート操作などはサーバの設定やWebプレーヤをいじれば対応できるっぽい。

◆RTMP-Streaming
本来の意味でのストリーミング。ライブストリーミング。ライブ配信やトランスコードとかはこっちを使用。


ではシーク機能について説明します。ここで必要なのは
①サーバ側のPseudo-Streamingの有効化(Apacheでモジュールを使用)
②Webプレーヤ設定


です。

①サーバ側の設定
apxs2が入ってない場合は
$ sudo apt-get install apache2-threaded-dev

ではダウンロードから
$ wget http://h264.code-shop.com/download/apache_mod_h264_streaming-2.2.7.tar.gz
$ tar -zxvf apache_mod_h264_streaming-2.2.7.tar.gz


ビルドしてインストール。この時apxs2の場所を指定します。Ubuntuだと/usr/bin/apxs2だと思うので
$ cd ~/mod_h264_streaming-2.2.7
$ ./configure --with-apxs="/usr/bin/apxs2"
$ make
$ sudo make install


これでインストールは完了です。次にモジュールの有効化
/etc/apache2/mods-available に h264.load と h264.conf を作成します。名前は他のモジュールと重ならなければ何でもいいです。

$ sudo emacs -nw /etc/apache2/mods-available/h264.load
LoadModule h264_streaming_module /usr/lib/apache2/modules/mod_h264_streaming.so

$ sudo emacs -nw /etc/apache2/mods-available/h264.conf
AddHandler h264-streaming.extensions .mp4

ファイルを作成したら有効化
$ sudo a2enmod h264

Apacheの再起動。
$ sudo /etc/init.d/apache2 restart

これで大丈夫だと思います。ちゃんと機能してるかは、wgetでレスポンスヘッダを見る(wget -S アドレス)といいです。
X-Mod-H264-Streaming:version=~
が出てればOK。僕の場合.confの書き方を<if modules="~">にしてましたが、それがうまく動かなかった?ためか上のレスポンスが返ってこない=モジュールが機能しておらず、実装に手間取りました。

②Webプレーヤの設定(JW Player)
これは次の1行を加えるだけでいいと思います。

provider:'http',

これはjwplaey.js用です。swfobject.jsではまた書き方が少し変わります。が、providerがhttpと言うのは同じはずです。
以下例です。

<script type='text/javascript' src='/jwplayer/jwplayer.js'></script>

<div id="mediaplayer"></div>

<script type="text/javascript">
  jwplayer('mediaplayer').setup({
    'modes': [
        {type: 'flash', src: 'player.swf'},
    ],
    'width': '480',
    'height': '270',
    'file': '/videos/bunny.mp4',
    'image': '/thumbs/bunny.jpg',
    'provider':'http'
  });
</script>


以上です。

ソース:
Apache で HTTP Pseudo-Streaming を行うには
Mod-H264-Streaming-Apache-Version2
JW player Configuration Options

コメントの投稿





管理者にだけ表示を許可する

 | ホーム | 

プロフィール

Cicatrice

Author:Cicatrice

検索フォーム

カテゴリ

最新記事