概要
Red5 はオープンソースの動画配信エンジンです
ストリーム配信できるのが特徴です
今回は構築から RTMP を使ったライブ配信の方法まで紹介します
OBS を使うのでプライベート Youtube Live のようなことができるようになります
環境
サーバ
- Ubuntu 16.04
- OpenJDK 9 (build 9-internal+0-2016-04-14-195246.buildd.src)
- Red5 1.0.10 Milestone 9
クライアント
- macOS X 10.13.5
- OBS 21.1.1
JDK インストール
Red5 は Java (JDK) がないと動作しません
今回は OpenJDK を使います
OracleJava が良い場合は公式から Linux 版をダウンロードして Ubuntu 上に展開してください
- apt -y update
- apt -y instsall openjdk-9-jdk-headless
Red5 インストール
mkdir -p /usr/share/red5
export RED5_HOME=/usr/share/red5
cd $RED5_HOME
wget 'https://github.com/Red5/red5-server/releases/download/v1.0.10-M9/red5-server-1.0.10-M9.tar.gz'
tar zvxf red5-server-1.0.9-RELEASE.tar.gz
mv red5-server/* .
Red5 サーバ起動
./red5.sh &
http://localhost:5080 にアクセスすると Red5 の管理画面が表示されます
ufw などでポートを閉じている場合はオープンしましょう
Flash のインストール
Red5 は動画を再生するのに基本的に Flash で動作します
VOD も Live も変わりません
面倒ですが素直にインストールしましょう
Chrome であれば有効にすれば OK です
ライブ配信してみる
構築が完了したのでライブ配信してみましょう
OBS の設定をしていきます
プロファイルの作成 (任意)
OBS に YoutubeLive や Twitch の配信設定をすでにしている場合は今回の Red5 用にプロファイルを作成するといいでしょう
特に上書きしても問題ない場合はプロファイルの作成は必要ありません
ストリーミングサーバの設定
ストリーミングサーバの設定をします
構築した Red5 の RTMP プロトコルを LISETN しているポートを指定します
- URL・・・rtmp://xxx.xxx.xxx.xxx:1935/live
- ストリームキー・・・testLive
URL の IP 部分は構築した自身の Red5 サーバの IP を指定してください
ストリームキーは動画を再生するときに必要になります
任意の文字列で OK なので好きな文字列を設定してください
出力設定
出力設定をします
この設定は Red5 推奨の設定になります
おそらくデフォルトの設定でも配信はできるはずですが今回は推奨設定を使います
- 出力モード・・・詳細
- エンコーダ・・・x264 (ストリーミングサービスのエンコーダ設定を適用するにチェック)
- 出力をリスケールする・・・640x480
- レート制御・・・VBR
- ビットレート・・・750
- CRF・・・23
- キーフレーム間隔・・・2
- CPU 使用のプリセット・・・verfast
- プロファイル・・・baseline
- チューン・・・fastdecode
こんな感じです
映像配信設定
先程リスケールしたサイズに合わせます
スクリーンキャプチャ設定
ライブで配信する際の映像情報を設定します
OBS の場合「ソース」から表示したい映像リソースを追加すれば OK です
今回は適当に「ウィンドウキャプチャ」を追加して Finder の情報を表示しておきます
動作確認
これで配信の準備が整ったので配信を開始します
見る側の設定
今回は Red5 のデモで使用しているビューワをそのまま使います
本来であれば自分で HTML + JavaScript を使ってプレイヤーを再生するのですが面倒なのでありものを使います
Red5 のトップ画面にアクセスします
そして「Launch a demo」->「Publisher」->「View demo」と進みます
設定画面になったら
- Name・・・testLive
- Location・・・rtmp://xxx.xxx.xxx.xxx:1935/live
と入力します
配信する側も視聴する側も同じ URL とストリームキーにアクセスします
入力したら「Connect」ボタンを押せば上記の画面のように接続状態になります (画面の Close ボタンが未接続の場合 Connect になっている)
あとは「Play」ボタンを押せば配信を見れるようになります
配信する側の設定
特にないです
OBSで「配信開始」ボタンを押せば OK です
ステータスが緑になれば Red5 の RTMP に接続され映像の配信が開始されています
この状態で Red5 のプレイヤーで「Play」を押せばライブ配信が見れると思います
キャプチャする画面などを変更すればちゃんとプレイヤー側も変わります
ラグですがだいたい 3 - 5 秒くらいありました
この辺りは環境や設定によってもっと改善するとは思います
トラブルシューティング
OBS で配信開始した際に何度も切断される場合があります
以下のような Exception が発生していました
ProtocolException: Error during decoding
NumberFormatException: For input string: "2.1"
このあたりの Exception が発生してうまく配信開始できない場合は以下が原因です
https://github.com/Red5/red5-server/issues/250
解決方法は 1.0.10 系の Red5 を使いましょう
そのバージョンであれば対処されています
また FW の設定も見直しましょう
OBS が動作している環境から Red5 が動作している RTMP サーバに対して通信できる必要があります
1935 ポートは当然ですが今回は管理画面のプレイヤーを使うので 5080 なども必要です
できれば OBS 環境からはフルアクセスできると良いと思います
最後に
Red5 + OBS を使って自分だけのライブ配信環境を構築してみました
Red5 自体の構築はかなり簡単にできましたが、OBS 側の設定の RTMP の設定に少し苦戦しました
Red5 は再生する側に Flash Player が必要なのでそこは少し残念な感じがします
Red5 にはマルチテナントの機能がないので基本的には 1 Red5 = 1 User になるかなと思います
複数のユーザで 1 つの Red5 を共有したい場合は現状はストリームキーなどで分けるしかないかなと思います
あとはもし Red5 を使って配信するのであればプレイヤーの開発も必要かなと思います
今回はデモ用のプレイヤーを使ったので特にコーディングはしませんでしたが、さすがにあれば丸出しするのは微妙なので実際は専用のプレイヤーを開発する必要があると思います
0 件のコメント:
コメントを投稿