配信プロトコルの検討
RTMP (Real Time Messaging Protocol)
Adobe が開発しているストリーミングプロトコル。
RTSP (Real Time Streaming Protocol)
RealNetworks社、Netscape Communications社、Columbia大学で策定したもの。
HLS (HTTP Live Streaming)
Appleの提唱するストリーミングプロトコル。
M3U
マルチメディアプレイリストのファイルフォーマット
HTTP Live Streamingはこのファイルフォーマットを用いる。
Adobe Media Server@awsを使おうとしたんだけどね、、、
テスト段階でこれは高すぎる。
https://aws.amazon.com/marketplace/pp/B00IGJMIOI
ということで、まずは
nginx-rtmp-module
で配信サーバーを立ててみました。
nginx-rtmp-moduleのインストール
nginxをyumでインストールすると、nginx-rtmp-moduleは入らないようです。
1.rootにログイン
$ su -
2.まずはGCCのインストール
$ yum install gcc
3.PCREのインストール
$ yum install pcre-devel
4.zlibのインストール
$ yum install gcc
5.まずはGCCのインストール
$ yum install zlib zlib-devel
6.OpenSSLのインストール
$ yum install openssl openssl-devel
7.NGINXユーザ、グループを作成
$ groupadd nginx
$ useradd -g nginx nginx
$ usermod -s /bin/false nginx (※nginx 用のユーザをログイン禁止に設定)
8.Nginxをダウンロード→解凍します
$ wget http://nginx.org/download/nginx-1.8.0.tar.gz
$ tar -zxvf nginx-1.8.0.tar.gz
9.RTMPモジュールもダウンロード→解凍します
$ wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
$ unzip master
10.configure
$ cd nginx-1.8.0
$ ./configure --user=www-data --group=www-data --with-http_ssl_module --with-http_realip_module --add-module=../nginx-rtmp-module-master
11.makeインストール
$ make
$ make install
12.設定ファイルで実行ユーザーをnginx:nginxにします。
$ vi /usr/local/nginx/conf/nginx.conf
--------------------------------------
user nginx nginx;
--------------------------------------
NGINX起動
/usr/local/nginx/sbin/nginx
インストールはうまくいきました。
RMTPサーバーとして機能するようにします。
$ vi /usr/local/nginx/conf/nginx.conf
--------------------------------------
rtmp_auto_push on;
rtmp {
server {
listen 1935;
chunk_size 4096;
access_log logs/rtmp_access.log;
ping 30s;
ping_timeout 10s;
application src {
live on;
push rtmp://localhost/hls;
}
application hls {
live on;
hls on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 3s;
}
}
}
--------------------------------------
これで再起動すると以下のURLでストリームが可能になります。
(もちろん配信するクライアントが必要ですが、、、次回にOBSでの動作確認方法をまとめます。)
RTMP:
http://example.com/src/<任意のkey>
HLS:
http://example.com/hls/<任意のkey>