Adobe HTTP Dynamic StreamingとOSMFPlayerでストリーミングサーバー

大量に持っているmp4ファイルをどこからでも見れるようにストリーミングサーバーを作成したくて,色々調べてみた.
無料で作れる物としてはApacheにモジュール導入するだけで済むAdobe HTTP Dynamic Streaming+OSMFPlayerが一番イケてそうだったので,試しに導入してみたメモ.

導入環境はDebian 5.0.8 amd64 + Apache2.2.9
Adobe HTTP Dynamic Streaming自体はApache2.2以降なら動くらしい.
まず,Adobeのサイトから以下の3つの物をダウンロード(無料で作れるAdobeアカウントが必要)

HTTP Origin モジュール
File Packager
OSMFのサンプル

今日現在ダウンロードするとファイル名は以下の3つ.
adobe_f4f_apache_module100_linux_x64.zip
adobe_f4fpackager100_linux_x64.zip
OSFMPlayer_zeri2.zip

OSMFPlayerのファイル名がおかしいのは仕様だと思いますw
解凍した中に入っているファイル名の綴りは"OSFM"です.

まず,apacheのモジュールの導入.

unzip adobe_f4f_apache_module100_linux_x64.zip
cd HTTP_Module_1.0_Linux_x64/adobe/f4fmodule

中に以下の3つのファイルが入っている.
libexpat.so.1
libF4V.so
mod_f4fhttp.so
これをモジュール置き場にコピー.

apache2からmoduleは/etc/apache2/mods-availableに実体を置き,/etc/apache2/mods-enabledにシンボリックリンクを張る仕様になったのでその通りに...

sudo cp libexpat.so.1 libF4V.so mod_f4fhttp.so /etc/apache2/mods-available/
cd /etc/apache2/mods-enabled
sudo ln -s ../mos-available/libexpat.so.1 libexpat.so.1
sudo ln -s ../mos-available/libF4V.so libF4V.so
sudo ln -s ../mos-available/mod_f4fhttp.so mod_f4fhttp.so

Apacheに設定しているDocumentRoot(Defaultだと/var/www)の中あたりに配信するファイルを作成するディレクトリを作成.
バーチャルホストの設定とかはご自由に.

sudo mkdir /var/www/video

次に,Moduleへ処理を渡す設定ファイルを作成する.

sudo vim /etc/apache2/conf.d/dstreaming.conf

ファイルの中身は以下の内容
(備考)moduleのパスは絶対パスを書かないとうまく動かなかった...

LoadModule f4fhttp_module /etc/apache2/mods-enabled/mod_f4fhttp.so


HttpStreamingEnabled true
HttpStreamingContentPath "/var/www/video"

これで設定は終わるのでApacheを再起動

sudo /etc/init.d/apache2 restart

次に動画の変換.
File_Packerを解凍します.

unzip adobe_f4fpackager100_linux_x64.zip
cd HTTP_Module_1.0_Linux_x64/adobe/f4fmodule

中に実行バイナリとライブラリが入っているので,ライブラリを所定の場所へ移動.
実行バイナリは/usr/binあたりに入れます.

sudo cp libexpat.so.1 libF4V.so mod_f4fhttp.so /usr/lib/
sudo cp f4fpackager /usr/bin/
cd ~/

これで動画が変換できるはずなのでmp4ファイルを用意して変換します.
変換と言っても,ファイルの分割とマニフェストファイル作成が主な作業なのですぐ終わります.

sudo f4fpackager --input-file MP4FILE.mp4 --output-path /var/www/video
#MP4FILEの場所は適宜読み替えてください

これで/var/www/videoに.MP4FILE.f4m, MP4FILE.f4f, MP4FILE.f4xの3つのファイルが出来てるはずです.

次にブラウザでビデオを見るためのOMSFPlayerを設定します.
これは自由に作れるので,後に改造すれば良いんですが,とりあえずAdobeのサンプルをそのまま設置して見ます.

sudo cp OSFMPlayer_zeri2.zip /var/www/
cd /var/www
sudo unzip OSFMPlayer_zeri2.zip

これで
OSMFPlayer.htmlその他のファイルがDocumentRootに展開されます.
imagesとかscriptsなんてフォルダが出来るので,webコンテンツを既に持っているなら/var/www/playerみたいなディレクトリに展開する方が良いかもしれません.

これでブラウザで以下のようにアクセスすれば動画が見れます.

http://SERVER_ADDRESS/OSMFPlayer.html?url=http://SERVER_ADDRESS/video/MP4FILE.f4m

以上です.
iptables.htaccessの設定は各自ご自由に.

動画を追加したり,コンテンツリストとサムネイルを表示するようなフロントエンドが欲しくなるな.今度作るかな...