こんにちは、みつです。
Youtubeで配信するほどじゃないけど、身内オンリーに垂れ流すTwitter(X)のスペース+映像くらいの配信サービスがほしい!
なら作ればいいじゃないってことで、ToISにライブ配信プラットフォームも統合しちゃおうと思います。
概要
そもそもライブ配信プラットフォームのためには何をすればいいかって話から
図にあるようにOBSとかブラウザとかからストリーミングサーバーに動画とかメディアを送信して、そのサーバーを参照することでWebサーバーから送信されたメディアが見れるようになるって感じ。
今回はストリーミングサーバーにはSRS、映像転送プロトコルにはRTMP、WebサーバーにはIISを利用していく。
ストリーミングサーバー:SRS
概要でも話したように、送信されたメディアを同時に再生するサーバーのこと。
今回使うSRS(Simple Realtime Server)はオープンソースのストリーミングサーバーソフトで、結構いろんな映像転送プロトコルに対応してる。
映像転送プロトコル:RTMP
映像転送プロトコルはメディア情報、その中でも映像を転送するための形式のことで、概要でいうと配信ホストからのメディア送信と、参照の二箇所で使われる。
結構いろんなプロトコルがあるみたいで、今回使うのはRTMP(Real-Time Messaging Protocol)
結構レガシーなプロトコルではあるけど、OBSからの送信がデフォルトで対応してるみたいなので一旦これを使っていく。今回使うSRSだとRTMPから、他の次世代プロトコルまで広く対応しているようなので、必要に応じて変えていくのも視野には入れるべきだろう。
ストリーミングサーバー構築
じゃあ本題のストリーミングサーバー構築に入ろう。
今回は、Hyper-Vでubuntuマシンを作成してその上にSRSを構築していく。作成したマシンの概要は以下の通り。
- OS:ubuntu22.04(最小インストール)
- メモリ:4096GB
SRSのインストール
以下のサイトに大体書いてあった。
途中でgitがないってこと以外つまらずにインストールできた。
SRS&その他の設定
同サイトにあるように、srs.confを作成する。設定内容は大体以下の通りだった。
実際に動かしてみた経験則みたいなモノだからリファレンスとか見つけたらそっちを参考にしたほうがいいとは思う。
いざ実行
SRSを以下のコマンドで実行して、OBSから配信してみる。
OBSでは、ストリーミングサーバーをカスタムにしてサーバーアドレスは鯖のやつ(ポートはRMTPのデフォルトポートは1935)+任意の配信キーで配信できる。
OBSでの配信ができたら、”http://(SRSのアドレス):(SRSのhttpポート)/players/srs_player.html”にアクセスして、URLに”http://(SRSのアドレス):(SRSのhttpポート)/live/(配信キー).dash”を入力、Playボタンを押す。
これでOBSのプレビュー通りの画面が出てたらOBSからSRSにストリーミング完了!
これから
とりあえず、クライアントからSRSへの配信はできたけど、ネットワーク側の問題かサーバーの処理能力的問題かパケットがドロップしまくって見られたもんじゃない。
まずはそこを解決しないとどうにもならない。まずは次回Hyper-V上のマシンにGPUを接続してSRSのマシンの処理能力を上げるところから取り掛かる。
これ以外にもWebサーバ側にサービスとして実装するためには
- 配信者・視聴者への認証
- 配信ページとかコメントの動的生成
- WordPress側からSRSの閲覧
- ブラウザ等を用いてもっと楽に配信できるように
等考えなきゃ行けないこといっぱいあるからのんびりやっていこうと思う。
コメント