災害アーカイブシステム
動画配信ソフトウェア連携設定・利用マニュアル

平成２７年９月１日
国立研究開発法人防災科学技術研究所

変更履歴
Version

変更日付

1.0

2015/9/1

変更内容
初版作成

目次
1 はじめに ................................................................................................................ 42 インストール ......................................................................................................... 52.1 環境設定................................................................................................................................................. 52.1.1 SELinux の設定 ............................................................................................................................................ 52.1.2 ポートの変更................................................................................................................................................. 52.1.2.1 1935 の許可 ........................................................................................................................................... 52.1.2.2 5080 の許可 ........................................................................................................................................... 52.2 Red5 のインストール ............................................................................................................................. 62.2.1 解凍と設置..................................................................................................................................................... 62.2.2 起動設定 ........................................................................................................................................................ 62.3 ストリーミング機能のインストール ..................................................................................................... 72.3.1 オンラインインストール.............................................................................................................................. 72.3.2 手動インストール......................................................................................................................................... 72.3.2.1 Maven のインストール ........................................................................................................................ 72.3.2.2 subversion のインストール ............................................................................................................... 82.3.2.3 機能ファイルのダウンロード ........................................................................................................... 82.3.3 動作確認 ........................................................................................................................................................ 82.4 ストリーミングプレイヤーとプラグインをインストール .................................................................... 92.4.1 FlowPlayer をダウンロードする............................................................................................................... 92.4.2 FlowPlayer の RTMP プラグインをダウンロードする ...................................................................... 92.4.3 ファイルの設置............................................................................................................................................. 93 災害アーカイブシステムとの連携................................................................ 103.1 データ格納先ディレクトリを確認 ......................................................................................................103.2 動画データをストリーミング配信対象にする .................................................................................103.2.1 格納先ディレクトリを作成する ..............................................................................................................103.2.2 シンボリックリンクを作成する ...............................................................................................................103.2.3 動画リクエスト処理を実施するための設定をする .......................................................................103.2.3.1 動画リクエスト用ディレクトリの作成 ..........................................................................................103.2.3.2 Apache の設定を変更する .............................................................................................................11
3.2.3.3 動画リクエストを処理する php スクリプトを作成する ..........................................................11
3.2.4 動画をストリーミングする .......................................................................................................................122

4 .動画をストリーミング再生する（利用例） .................................................... 13

3

1 はじめに本マニュアルは、防災科学技術研究所が開発し、オープンソースとして提供している「災害アーカイブシステム」に登録された動画をストリーミング配信するための手順、環境構築について記載する。ストーリンミング用システムとしてはオープンソースの「Red5」を利用する。
注記）Ｒｅｄ５については、インターネットからダウンロードして使う。
（例 http://fossies.org/linux/privat/red5-1.0.1.tar.gz/）「災害アーカイブシステム」のインストール手順については、下記参照のこと。
「災害アーカイブデータベースシステムインストール手順書」
同じサーバ上に両システムをインストールして利用するものとする。

本マニュアルの範囲

災害アーカイブシステム
ストリーミングシステム（Red5）＜格納＞
画像設定スクリプト記述

動画
動画の登録

ストリーミング配信

文書
・・・

ブラウザ
（動画閲覧）

4

2 インストール
2.1 環境設定
環境構築は、Java6 以上、CentOS6 系で行うものとする。
本手順書では「CentOS6」を想定し、記載する。

2.1.1 SELinux の設定
SELinux の設定を確認し、無効化する。
確認方法：# getenforce
結果が「Disabled」以外の場合には、以下の手順を実施する。
# setenforce 0
OS 起動時にも SELinux が無効となるように、設定ファイルを変更する。
変更対象ファイル：/etc/selinux/config
SELINUX=disabled

2.1.2 ポートの変更
2.1.2.1 1935 の許可
ポート「1935」を許可する。
# iptables -A INPUT -p tcp --dport 1935 -j ACCEPT# service iptables save# service iptables restart※「1935」は、ストリーミングプロトコル(RTMP)用のポートである。

2.1.2.2 5080 の許可
5080 は後述のストリーミング用機能のオンラインインストールのために使用するが、これについては、許可をするかしないかによって手順が変わる。
・iptable によるポート許可を実施する場合# iptables -A INPUT -p tcp --dport 5080 -j ACCEPT# service iptables save# service iptables restart・プロキシで 5080 に接続設定をする場合/etc/httpd/conf.d/red5.conf を作成し、以下の行を追加する。
ProxyPass / http://localhost:50805

設定を反映する。
# service httpd restart

2.2 Red5 のインストール
2.2.1 解凍と設置
オープンソース Red5 をインターネットサイトから入手する（例 http://fossies.org/linux/privat/red5-1.0.1.tar.gz/）
red5-1.0.1.tar.gz を解凍し、解凍されたディレクトリを red5 にリネームして /usr/local/lib64/ の下に設置する。

2.2.2 起動設定/etc/init.d/red5.sh に以下を記述したスクリプトを作成する。
#!/bin/bash# For RedHat and cousins:# chkconfig: 2345 85 85# description: Red5 flash streaming server# processname: red5
# Created By: Sohail Riaz (sohaileo@gmail.com)
PROG=red5
RED5_HOME=/usr/local/lib64/red5
DAEMON=$RED5_HOME/$PROG.sh
PIDFILE=/var/run/$PROG.pid# Source function library. /etc/rc.d/init.d/functions[ -r /etc/sysconfig/red5 ] && . /etc/sysconfig/red5RETVAL=0
case "$1" instart)echo -n $"Starting $PROG: "cd $RED5_HOME$DAEMON >/dev/null 2>/dev/null &RETVAL=$?
if [ $RETVAL -eq 0 ]; thenecho $! > $PIDFILE
touch /var/lock/subsys/$PROG
fi[ $RETVAL -eq 0 ] && success $"$PROG startup" || failure $"$PROG startup"
echo;;stop)echo -n $"Shutting down $PROG: "killproc -p $PIDFILE
6

RETVAL=$?
echo[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$PROG;;
restart)$0 stop$0 start;;
status)status $PROG -p $PIDFILERETVAL=$?
;;*)echo $"Usage: $0 {start|stop|restart|status}"
RETVAL=1
esac
exit $RETVAL
元スクリプト：http://centos.server-manual.com/centos6_red5.html
起動設定をし、red5 を起動する。
# chmod 755 /etc/init.d/red5.sh# chkconfig --add red5
# service red5 start

2.3 ストリーミング機能のインストール
red5 の起動後、オンラインまたは手動でストリーミング機能をインストールする。

2.3.1 オンラインインストール
ポート 5080 を許可している場合は http://{ドメイン名}:5080/に、許可しておらずプロキシで設定している場合は http://{ドメイン名}/にアクセスする。
ページの「Install」リンクからインストールページに移動し、表示されたリストの中から「oflaDemo」を選択して「Install」ボタンを押す。
※上記、リストが表示されずインストールができない場合は、手動インストールを実施すること。

2.3.2 手動インストール
2.3.2.1 Maven のインストール
ストリーミング機能のビルドに必要。
http://maven.apache.org/ の GetMaven の Download リンクから、apache-maven-x.x.x-bin.tar.gz
をダウンロードする。(x.x.x はバージョン番号)/opt/ の下にダウンロードしたファイルを解凍する。
(/opt/apache-maven-x.x.x というファイルができる)
7

ユーザールートの.bash_profile のexport $PATHの前に以下の内容を追加する。
# mavenexport M3_HOME=/opt/apache-maven-x.x.x
M3=$M3_HOME/bin
PATH=$PATH:$M3
export $PATH の記述がない場合は最後に追加すること。
以上の設定を反映させる。
# source .bash_profile

2.3.2.2 subversion のインストール
ストリーミング機能の取得に必要。
# yum -y install subversion

2.3.2.3 機能ファイルのダウンロード
デモファイル一式を取得する。
# svn co http://red5.googlecode.com/svn/java/example/trunk red5-examples取得した red5-examples/ の下でビルドを行う。
# mvn package
成功すると、red5-examples/oflaDemo/target が生成される。
生成された oflaDemo/target/oflaDemo-1.0 を/usr/local/lib64/red5/webapps/の下に移動し、「oflaDemo」にリネームする。
red5 が起動している場合は再起動する。
補足：この red5-examples は公式がデモ用に公開しているものだが、この中の oflaDemo にストリーミング機能が備わっているので、これを利用する。

2.3.3 動作確認
ポート 5080 を許可している場合は http://{ドメイン名}:5080/に、許可しておらずプロキシで設定している場合は http://{ドメイン名}/にアクセスする。
「RTMP」の表示のすぐ下にある動画が表示されればインストール成功。
失敗する場合は、再度設定の確認を確認すること。(特にポートの設定)※ストリーミング(RTMP)が動作することを確認後、ポート「5080」は閉じてしまって構わないため、必要に応じて、「iptables」の設定を確認すること。
8

(ストリーミングに必要なのはポート 1935 のみ)

2.4 ストリーミングプレイヤーとプラグインをインストール
本項では、ストリーミングプレイヤー「FlowPlayer」の使い方を記載する。

2.4.1 FlowPlayer をダウンロードする「https://flowplayer.org/」から、FlowPlayerFlash をダウンロードする。
実際のダウンロード場所は「https://flowplayer.org/pricing/」の「Downloads」の「FlowPlayer Flash」
解凍したファイルの中のflowplayer-x.x.x.min.js
flowplayer-x.x.x.swf
を使用する。(x.x.x はバージョン番号)

2.4.2 FlowPlayer の RTMP プラグインをダウンロードする「http://flash.flowplayer.org/plugins/streaming/rtmp.html」から、flowplayer.rtmp-x.x.x.swf をダウンロードする。(x.x.x はバージョン番号)

2.4.3 ファイルの設置
上記でダウンロードした 3 つのファイルを、http アクセスできる場所に保存する。

9

3 災害アーカイブシステムとの連携
災害アーカイブシステムに格納される動画をストリーミング配信対象として連携するには、以下の手順を実施する。
災害アーカイブデータベースシステムのインストール手順は以下のマニュアルを参照「災害アーカイブデータベースシステムインストール手順書（平成２６年１１月７日）」

3.1 データ格納先ディレクトリを確認
災害アーカイブシステムの設定ファイル内データ格納先ディレクトリを確認する。
設定ファイル：WEBROOT/marugoto/app/Config/bootstrap.php
設定パス：Configure::write('Marugoto.contents_path', 'contents_path');3.2 動画データをストリーミング配信対象にする
動画をストリーミング対象とするには、所定のディレクトリ下に動画が設置されている必要があるため、災害アーカイブシステムでのアップロード先ディレクトリに上記、ディレクトリ下を指定する。
尚以下の例では、ストリーミング対象先ディレクトリを/usr/local/lib64/red5/webapps/oflaDemo/stream/
災害アーカイブシステムデータ格納先ディレクトリを/var/www/html/marugoto_data」とする。

3.2.1 格納先ディレクトリを作成する# cd /usr/local/lib64/red5/webapps/oflaDemo/stream/# mkdir marugoto_data

3.2.2 シンボリックリンクを作成する# cd /var/www/html# ln –s /usr/local/lib64/red5/webapps/oflaDemo/stream/marugoto_data marugoto_data

3.2.3 動画リクエスト処理を実施するための設定をする
3.2.3.1 動画リクエスト用ディレクトリの作成# cd /var/www/html# mkdir stream_data# mkdir stream_search
103.2.3.2 Apache の設定を変更する/etc/httpd/conf/httpd.conf に以下を追加する。
<Directory "/var/www/html/stream_data">
AllowOverride All</Directory>/var/www/html/stream_data/下に.httaccess を設置し、以下を記載する。
RewriteEngine on
RewriteRule ^(..*)$ ../stream_search/holder_search.php?id=$1 [pt,l]Apache の設定を読み込む# service httpd graceful

3.2.3.3 動画リクエストを処理する php スクリプトを作成する/var/www/html/stream_search/下に以下の内容を記載した「holder_search.php」を作成する<?php
require_once "../marugoto/app/Config/database.php";$dbconf = new DATABASE_CONFIG();$id = $_REQUEST['id'];$dbhost = $dbconf->default['host'];$dbuser = $dbconf->default['login'];$dbpass = $dbconf->default['password'];$dbname = $dbconf->default['database'];$thumflag = false;$link = mysql_connect($dbhost,$dbuser,$dbpass);if (!$link) {die('接続失敗です。'.mysql_error());}$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected){
die('データベース選択失敗です。'.mysql_error());}
if(preg_match("/^thum_/",$id)){11

$thumflag = true;$id = str_replace("thum_","",$id);}$sql="SELECT

id,identifier,holderid,filepath,newfilename,thumbnail_filepath,thumbnail_filename

FROM content WHERE identifier = '".$id."'";$result = mysql_query($sql);
if (!$result) {die('クエリーが失敗しました。'.mysql_error());}$row = mysql_fetch_assoc($result);
mysql_close($link);
if($thumflag){$url="http://".$_SERVER['HTTP_HOST']."/marugoto_data/holder".$row['holderid']."/thumbnail".$row['thumbnail_filepath']."/".$row['thumbnail_filename'];}else{$url="http://".$_SERVER['HTTP_HOST']."/marugoto_data/holder".$row['holderid']."/data".$row['filepath']."/".$row['newfilename'];}$r = "location: ".$url;header($r);
exit();?>

3.2.4 動画をストリーミングする
動画をストリーミングとして再生するには「４．.動画をストリーミング再生する（利用例）」に記載の動画リクエスト URL を指定する。
例）：｛ストリーミングサーバ URL｝/stream_data/｛識別 ID｝

12

4 .動画をストリーミング再生する（利用例）
ストリーミングしたい動画をred5/webapps/oflaDemo/stream/の下に設置する。
web ページに、以下のスクリプトを記述する。
<script type='text/javascript' src=' http:// {FlowPlayer ファイル設置パス}/flowplayer-x.x.x.min.js'></script><a class="player" id="player"
href="｛ストリーミングサーバ URL｝/stream_data/｛識別 ID｝"
style="display:block;width:720px;height:480px;"><img src="｛サムネイル画像 URL｝"
style="display:block;width:720px;height:480px;" /></a><script>
flowplayer("player"," http://{FlowPlayer フ ァ イ ル 設 置 パ ス }/flowplayer-3.2.18.swf",{clip:{autoPlay:true}});</script>
赤太字部分が、ドメインや FlowPlayer の設置場所等によって変更する場所になる。

以上

13