VPS 上の OBS から YouTube ライブ配信
https://gyazo.com/313396a64dd51eefaedea1e72d37b888
m0t0k1ch1.icon YouTube 24/7 配信の実現を目指した検証のメモ
---.icon
YouTube 24/7 配信の実現方法について色々調べた結果、どうやらフルマネージドなソリューションがまだ存在しないようなので、ざっくりと以下のような手順で配信環境を構築してみることにする。
Vultr でインスタンスを立てる
インスタンスに OBS をインストールする
OBS から YouTube に対して配信コンテンツを送信する
自分のご老体 MacbBook Pro(CPU:4 Core・メモリ:8 GB)からだと、静止画 + 音声で FPS 落とせば安定配信できたという知見はあるので、とりあえずそれと近いスペックの Ubuntu 18.04 インスタンスを立ててみる。
()
https://gyazo.com/ee1cad1ffd9b67fa65af2b4fc095115d
root ユーザーで接続して、とりあえずパッケージ情報更新。
code:sh
$ apt-get update
作業用の app ユーザーを追加。ここで入力したパスワードは忘れないように。
code:sh
$ adduser app
パスワード入力なしで sudo するために visudo を実行。
code:sh
$ EDITOR=vi visudo
以下の行を追加して保存。
code:visudo
app ALL=NOPASSWD: ALL
app ユーザーに切り替える。
code:sh
$ su - app
GUI デスクトップをインストールする。
code:sh
$ sudo apt-get install -y lubuntu-core
後で OpenGL のバージョンを確認するためのツールをインストールする。
code:sh
$ sudo apt-get install -y mesa-utils
OBS をインストールする。
code:sh
$ sudo apt-get install -y ffmpeg
$ sudo add-apt-repository ppa:obsproject/obs-studio
$ sudo apt-get update
$ sudo apt-get install -y obs-studio
インスタンスを再起動する。
code:sh
$ sudo reboot
再起動したら、Vultr の管理画面に行って、以下の赤丸で囲ったボタンを押す。
https://gyazo.com/be2623294c5be3e4ad5a2f263cf41191
以下のような画面が表示されるので、app ユーザーの追加時に設定したパスワードを入力してログインする。
https://gyazo.com/48bea7160029fcfb4b6ebc46e8633083
/home/app/Desktop 下に OBS の symlink をつくっておく。
code:sh
$ cd /home/app/Desktop
$ ln -s /usr/share/applications/com.obsproject.Studio.desktop
https://gyazo.com/799abbe32e491eeb4084d56216b2886a
OBS のドキュメントに
NOTE: OpenGL 3.2 or later is required to use OBS Studio on Linux.
という記載があるので、ターミナルを起動して、OpenGL のバージョンを確認する。
https://gyazo.com/f7f67aa2e0ffd1201fd5cfd860e161c0
OpenGL version string: 3.1 Mesa 18.2.2
と表示されているので、3.1 らしい。OBS が要求する 3.2 or later をギリギリ満たしてないけど大丈夫だろうか...?
とりあえず OBS を起動してみる。
https://gyazo.com/206337efa1d95e673fbe19b6e6a8183e
YouTube にライブ配信するための設定をする。あと、今回は静止画 + 音声なので、FPS は小さくしておく。
Settings
Stream
Service:Youtube / YouTube Gaming に変更
Stream Key:YouTube のライブストリーミンング管理画面に表示されているストリームキーを入力
Video
FPS:1
Sources に画像ファイルと音声ファイルを追加する。
https://gyazo.com/ae096fefc485f07f27971d17f2f0688d
Start Streaming を押して配信を開始し、YouTube で確認する。
https://gyazo.com/083a9a96b69690ca56dd81f131f2696e
FPS が 1 なこともあって、負荷はこんな感じ。
かなり余裕があるので、サーバーのスペックはもっと落とせそう。
https://gyazo.com/664b3d060dc134c37881e4298e869943
なお、音声ファイルの再生には音楽プレイヤーを利用することもできる。
例えば、Rhythmbox のプレイリストをループ再生して配信したい場合は、
Rhythmbox をインストールする
code:sh
$ apt-get install -y rhythmbox
Rhythmbox を起動する
新規プレイリストを作成し、好きな音楽ファイルを追加する
プレイリストをループ再生する
OBS で desktop audio をキャプチャして配信する
デフォルト設定でキャプチャしてくれるはず
という感じで対応できる。
無事配信できているようなので、おもむろにリモートデスクトップで繋いでいたブラウザのウインドウを閉じる。
閉じても配信が続いている。幸せ。