Nginxで始めるLive配信サーバ構築

はじめに

こんにちは、名古屋駅周辺でDevOpsエンジニアをやっている まるちゃん です。

社内Blogが立ち上がりましたので、前職でお蔵入りしてしまった記事をアウトプットしていきたいと思います。

大変めんどくさい・・・FFMPEG環境の構築とかをしなくても、簡単にHLSとMPEG-DASHの同時出力&録画機能付きのLive配信サーバの構築方法です。

基本的にコピペをしたら、すぐに試せれる!を心がけています。

Live配信サーバ構築

環境概要編

インスタンスのスペック

項目
OS Amazon Linux2/CentOS 7
Type t2.smail
Disk 15GB

開放ポート

項目
SSH 22
HTTP 80
RTMP 1935

Nginx+nginx-rtmp-moduleのインストール編

関連パッケージインストール

任意の作業ディレクトリを作成

今回は、/root/works になります。

Nginxダウンロード & Nginx展開

こちらで環境に合ったバージョンをダウンロード

nginx-rtmp-moduleをインストール

使用するモジュールは、NGINX-based Media Streaming Server

MPEG-DASHとHLS対応のモジュールをクローン

Nginxの設定編

Config設定

HLS・MPEG-DASH・FLVを何処に出力するかを指定

FLVの出力ディレクトリの作成

  • ディレクトリを作成後にユーザーとグループをnobodyに変更

Configの確認

もしOKと表示されていない場合は、記述ミスか、手順ミスのどちらかになります。

サービス起動のスクリプトを作成

サービス起動 & 自動起動

起動

自動起動

サイトにアクセスして以下の様な画面が表示されていたら起動成功

Playerの準備編

使用する動画コンテンツ

今回は”Big Buck Bunny”コンテンツをダウンロードしました。


HLSのPlayer

player.setSrc(“hls/obs_test.m3u8”); の、hls/obs_test を自分の配信環境に合わせる

Live配信をおこなうと以下の様な感じで表示されます

ブラウザーの場合

iphoneの場合

MPEG-DASH のPlayer

player.setSrc(“dash/obs_test.mpd”); の、dash/obs_test を自分の配信環境に合わせる

Live配信をおこなうと以下の様な感じで表示されます

ブラウザーの場合

閲覧可能な形式の種類をまとめました

代表的なブラウザーなどで検証閲覧が可能かの検証結果を載せておきます。

http://global-IP/<対象のURL>

PC Chrome

URL 回答
hp_hls.html OK
hp_dash.html OK
hls/obs_test.m3u8 NO
dash/obs_test.obs.mpd NO

PC Safari

項目
hp_hls.html OK
hp_dash.html OK
hls/obs_test.m3u8 OK
dash/obs_test.obs.mpd NO

iPhone(Safari/Chrome)

項目
hp_hls.html OK
hp_dash.html NO
hls/obs_test.m3u8 OK
dash/obs_test.obs.mpd NO

配信方法 編

Open Broadcaster Softwareを使用します。

STEP.1
OBS設定

STEP.2
OBS配信

メディアソースかWebカメラなどを配置したら配信開始をクリック!

Live配信を見るには?

HLS の場合

http://global-IP/hp_hls.html

MPEG-DASH の場合

http://global-IP/hp_dash.html

録画先

設定で record_unique on にしているので、ファイル名がかぶる事はありません。

こちらは、次回使用します。

以上でHLSとMPEG-DASHの手軽なLiveサーバ構築でした。

最後に

今回のソース一覧は、GitHubにて公開を行なっております。

Easy_Live_Nginx_Stream

FFMPEGを使用しなくても、Live配信ができる事を知れて勉強になりました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA