主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Apache で HTTP Pseudo-Streaming を行うには

最終更新日 2011-09-26 04:50:10 (1年以上前の記事です)

FLV や MP4 ファイルを Web で配信した際に、Apache では基本的にストリーミング配信はできません。
ようするに、配信中に動画の閲覧はできますが、動画の初めから見ることしかできず、
ダウンロードが完了するまで任意の場所へのシークなどができないわけです。

Flowplayer や JW Player などの Flash ベースのプレーヤーは、もちろんストリーミングに対応していますが、
サーバー側が対応していないとどうしようもありません。
Lighttpd を利用すれば、簡単にストリーミングサーバーが構築できますが、
実は apache でも PHP などのスクリプトで実行する事もできますし、
探すといくつかモジュールも存在します。

今回は mod_flvx と mod_H264_streaming を使用して、
Pseudo-streaming を実装してみたので、そのメモを残しておこうと思います。

環境は Ubuntu 10.04 LTS 。

mod_flvx

mod_flvx は Paul Querna によって書かれた小規模な module です。
ソースコードは mod_flvx.c 1つで、これを apache の apxs2 を利用してコンパイルし、インストールします。

まずは、 apxs2 を apt-get でインストールします。

$ sudo apt-get install apache2-threaded-dev

そして、 mod_flvx.c をここからダウンロードし、適当な場所に保存したらコンパイルしてインストールします。

$ wget http://people.apache.org/%7Epquerna/modules/mod_flvx.c
$ apxs2 -c ./mod_flvx.c
$ sudo apxs2 -c -i ./mod_flvx.c

これで、インストールされたはずです。
次に、 /etc/apache2/mods-available に flvx.load と flvx.conf を作成します。

# /etc/apache2/mods-available/flvx.load
LoadModule flvx_module /usr/lib/apache2/modules/mod_flvx.so
# /etc/apache2/mods-available/flvx.conf
<IfModule flvx_module>
	AddHandler flv-stream .flv
</IfModule>

最後に、作成したファイルへのリンクを /etc/apache2/mods-enabled に作成して、
apache を再読み込みさせます。

$ cd /etc/apache2/mods-enabled/
$ sudo ln -s ../mods-available/flvx.conf
$ sudo ln -s ../mods-available/flvx.load
$ sudo service apache2 reload

これで、 apache は自動的に .flv ファイルに対して Pseudo-Streaming を行います。
試しに curl -I "http://localhost/video.flv?start=100000" などと実行して試してみてください。

h264

次に、 h264(mp4) の対応です。
基本的に flvx と同じですが、こちらのモジュールの方が少し規模が大きい物になってます。
本家のサイトはこちらになります。
この通りに実行していけば、インストールまで行えます。

モジュールの設定ファイルに関しても、 flvx と同様に行うと良いと思います。

参考文献

Flowplayer Forums - Apache FLV streaming done right! (no php)
Mod-H264-Streaming-Apache-Version2 - h264

最終更新日 2011-09-26 04:50:10

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google