nginxを使ったリアルタイム動画配信がこんなに簡単でいいのか!?

いい時代になりましたね〜、低価格VPSにnginxというwebサーバをインストールして

動画配信ができます。

お勧め記事:

node.jsの簡易RTMPサーバ(Live動画配信サーバ)


無期限無料でRTMP(Live配信)サーバをゲットできる「ビデオグ」Live配信編」


※追記:情報が古くなったので全面的に書き換えました。

参考にしたのはこちら

nginx-rtmp-moduleでお試しLive配信環境を作る


まっさらなVPSへ一撃インストールスクリプトを使ってインストールしました。

(nginx-rtmp-moduleでお試しLive配信環境を作るでの作業を一撃でやってくれるスクリプトです。※configファイルは除く)


# yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel

# git clone https://github.com/notaweelos/rtmp-streaming-server-build-script.git

# cd rtmp-streaming-server-build-script

# bash ./build.sh

(rootで作業しています。)



1を選びます。

インストール完了したら

/opt/local/nginx/conf

nginx.confを設定します。

一番最後に以下を追加

#confテスト

/opt/local/nginx/sbin/nginx -t

以下が返ってくればOK

nginx: the configuration file /opt/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /opt/local/nginx/conf/nginx.conf test is successful


nginxを起動

/opt/local/nginx/sbin/nginx



●配信してみましょう!

いつものOBS(Open Broadcaster Software)で配信設定

配信アドレスは

url:rtmp://{ipアドレス}/live

ストリームキー:test

ストリーキーは何でもOK

nginx.confの設定にてapplication liveとなっているので

rtmp://{ipアドレス}/liveです。


rtmp://{ipアドレス}:1935/live/test

ポート:1935があってもOK


●VLCで受信してみましょう!


URL:http://{ipアドレス}/test.m3u8

(video.jsのhls対応版へこのアドレスを指定するとwebにて配信ページができます。)

または

rtmp://{ipアドレス}:1935/live/test

rtmp://{ipアドレス}:/live/test

ポート:1935が無くてもOK

受信できています。



●スマホからの配信

配信した環境は

スマホ:Nexus5

Larixがオススメです。

(回線自体はDocomoのLTEです。)


設定画面

歯車アイコンをタップして設定します。


Connections→New connectionsをタップ

rtmp://{ipアドレス}/live/test

または

rtmp://{ipアドレス}:1935/live/test

赤丸をクリックして、四角になれば配信開始です。


まぁ、ツイキャスやニコ生があるのでVPSで構築することはまずないでしょうが

実際にやってみて簡単で実用的だなと感じました。

画質も結構高画質です。

遅延はnginxのチューニングしてない状態で1分ほどあります。配信画像を小さくしたら2秒~4秒でした。





追記:

後日iOSからもライブストリーミング成功しました。


使用した端末:iPod Touch

使用したApp


Outputを選んで、Androidと同じサーバ設定をします。



本格的な配信なら

小型ライブ映像配信機 LiveShell.PROを使いたいですね。


おまけ:

hls配信用のHTML