Environment (2018/02/26)
OS: CentOS7
Nginx 1.13.9
Nginx-rtmp-module
OBS-studio
1. Nginx Installation procedure
インストール時に必要なパッケージの調達.
$ sudo yum install wget gcc pcre-devel openssl openssl-devel
rtmp-moduleのダウンロード.
$ git clone https://github.com/arut/nginx-rtmp-module.git
Nginxのダウンロード.
$ wget http://nginx.org/download/nginx-1.13.9.tar.gz
$ tar zxf nginx-1.13.9.tar.gz
$ cd nginx-1.13.9
makefileの作成.
$ ./configure --sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--add-module=[ gitでダウンロードしたRTMPモジュールのパス ]
インストール.
ユーザーnginxの主所属グループを[nginx]として登録.
ユーザーnginxのログインシェルを不可に設定.
$ make
$ sudo make install
$ sudo groupadd nginx
$ sudo useradd -g nginx nginx
$ usermod -s /bin/false nginx
/etc/nginx/nginx.conf の末尾に追記
rtmp {
server {
listen 1935;
access_log /var/log/nginx/rtmp_access.log;
application live(アプリケーション名) {
live on;
record off;
}
}
}
Nginxの起動
$ sudo /usr/sbin/nginx
Nginxの停止
$ sudo /usr/sbin/nginx -s stop
firewalldのポートを開ける.
リロード後、追加されたポート番号の確認.
$ firewall-cmd --add-port=1935/tcp --zone=public --permanent
$ firewall-cmd –reload
$ firewall-cmd --list-ports --zone=public
2. OBS Installation procedure
OBS(Open Broadcast Software)とは, リアルタイムで録画・エンコーディング・ブロードキャスティングが行えるオープンソースソフトウェア(wiki参照).
わざわざサーバー側に導入する必要はない.
CentOS7への導入は少し面倒.
公式によるとNux Desktopを使えばいいとのことなのでレポジトリを追加.
$ sudo yum -y install epel-release
& sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
あとは公式のドキュメント通りやっていく
ビルドに必要な環境をそろえる
$ sudo dnf install gcc gcc-c++ gcc-objc cmake git
パッケージをいろいろ落としてくる.
$ sudo yum install libX11-devel mesa-libGL-devel libv4l-devel \
pulseaudio-libs-devel x264-devel freetype-devel \
fontconfig-devel libXcomposite-devel libXinerama-devel \
qt5-qtbase-devel qt5-qtx11extras-devel libcurl-devel \
systemd-devel ffmpeg ffmpeg-devel
OBSのビルドとインストール
$ git clone --recursive https://github.com/jp9000/obs-studio.git
$ cd obs-studio
$ mkdir build && cd build
$ cmake -DUNIX_STRUCTURE=1 ..
$ make -j4
& sudo make install
OBSの起動(たぶん)
$ obs
設定から配信先とストリームキーを指定する.
配信先例: rtmp://192.168.11.14/live
つまり rtmp://ホスト名/アプリケーション名
ストリームキーは受け取り側と合わせる必要がある.
3. Player on Web Browser
プレイヤーを用意する.
今回使用する方法ではAdobe Flash Playerを使用するので注意.
こことflowplayer-3.27.swfから以下の4つをダウンロード(wgetとか)する.
- flowplayer-3.2.6.min.js
- flowplayer-3.2.7.swf
- flowplayer.rtmp-3.2.3.swf
- flowplayer.controls-3.2.5.swf
head に以下を追加.
<script type="text/javascript" src="flowplayer-3.2.6.min.js"></script>
body に以下を追加
<a id="player" style="display:block;width:1280px;height:720px"></a>
<script>
flowplayer("player","flowplayer-3.2.7.swf",{
clip:{
live: 'true',
url: 'rtmp://OOOOOOO/live/ストリームキー',
provider: 'rtmp'
},
plugins: {
rtmp: {
url: 'flowplayer.rtmp-3.2.3.swf',
durationFunc: 'getStreamLength',
netConnectionUrl: 'rtmp://OOOOOOO/live/ストリームキー'
}
}
});
</script>
完成 !!!
※ドキュメント作成後の確認は行っておりませんのでうまく動作しない可能性があります.
その際は連絡を頂けると幸いです.