いきさつ
友人とYouTubeでラジオをしよう、ということに。
ちょっと前から遊びでOBSを使った配信をやっていたので、その環境で。
ちなみに、OBS(Open Broadcaster Software)とは、オープンソースの配信用ソフト。
これがなかなか優秀で、ビデオスイッチャーやクロマキー、音声のミキサーなど、配信に必要なものはほぼソフトウェアで実装されてます。
ただ、Mac上のOBSは重い…
うちで遊んでいるのは、Mac mini(late 2012)だけ。
これをうまく使って配信できないかと、やってみました。
このMac mini、遊んでいるといってもTime Machineサーバーとしては稼働しているので、配信専用にするわけにはいかない。
それぢゃあ、仮想環境ではどうだろうかと、VMware Fusionの出番。
持っているバージョンは、8.5.10。
最新版は11。
macOS Mojaveで使っていて不具合ないので、そのまんま(笑)
ちなみに、Mac miniの操作はMacBook ProからVNCを使って、全てリモートで行いました。
macOSに標準で入っている「画面共有」だとキー入力が不安定だったので、RealVNCを使いました。
セットアップ
VMware Fusionに、Ubuntuをインストールします。
ダウンロードしたバージョンは、Ubuntu 18.04.2 LTS。
ダウンロードは、こちらから。
ISOイメージをダウンロード。
ダウンロードしたISOイメージを使って、仮想環境上にUbuntuをインストールします。
インストールは、いわれるがままに進めればOK。
このままだと、ドライバなどがインストールされていません。
そのため、ディスプレイの解像度が小さく、表示がはみ出た状態でセットアップすることになりますが、何とかなります(笑)
Ubuntuのインストールが終わったら、VMware Toolsをインストールします。
手順は、こちらを参照。
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
webブラウザは、Firefoxが最初にインストールされてますが常用していないので、chromeをインストール。
ここからダウンロード。
「64ビット .deb (Debian/Ubuntu用)」を選択し、「同意してインストール」をクリックすればOK。
ffmegをインストール。
sudo apt-get update
sudo apt-get install ffmpeg
OBSをインストール。
手順は、こちらを参考にしました。
sudo add-apt-repository ppa:obsproject/obs-studio
sudo apt-get update
sudo apt-get install obs-studio
音声再生用のプレーヤーをインストール。
今回はClementineを。
手順は、こちらを参考に。
sudo apt-get update
sudo apt-get install clementine
このプレーヤーを選んだのは、ビジュアライザが色々あるみたいだったので。
これで、今回の配信に必要なソフトが揃いました。
インストールが終わった状態。
プレーヤー選びで紆余曲折あったので、必要ないソフトも入ってます。
配信の準備
配信に必要なソフトを起動させていきます。
安定させるためには、ソフトを以下の順番で起動させたほうが良いかと。
- 音声再生用プレーヤー
- 画像ビューアー
- OBS
音声再生用プレーヤー
今回使用する音声再生用のプレーヤーはclementineなので、これを起動。
配信用ファイルを読ませ、プレイリストを作成。
プレイリストをリピートにして再生します。
ビジュアライザは、「ツール」→「ビジュアライゼーション」をクリックすると表示されます。
ビジュアライザの種類は、ビジュアライゼーションウインドウ上を右クリックすると選択できます。
OBS
環境設定
OBSの設定は、「自動構成ツール」を使うとカンタン。
この時、YouTubeのストリームキーが必要になります。
ストリームキーは、YouTubeのクリエイターツール内の「ライブストリーミング」画面内にあります。
キーは、マスクされてます。
「表示」ボタンを押すと、表示されます。
このキーは、他の人に知られると勝手に配信することができるようになるので、管理は気をつけましょう。
設定が終わると、コントロール画面が表示されます。
OBSの設定をしていきます。
コントロール画面の右下にある「設定」ボタンをクリック。
「映像」タブ内の「出力(スケーリング)解像度」が、YouTubeに送出される映像の解像度になります。
HDで送出するなら、1280×720以上にしましょう。
エンコーダー関係の設定は、「出力」タブにあります。
この辺の設定は、試行錯誤しながら詰めていく。
コンテンツの設定
今回の配信は、以下の内容で構成します。
- 音声
- ビジュアライザ
- 曲情報
音声
音声は、Ubuntuの音声を丸ごとOBSに入れます。
設定の「音声」タブにある「デスクトップ音声デバイス」を、「Default」に。
音量は、コントール画面下部にあるミキサーのスライダーで調整。
ビジュアライザ
clementineのビジュアライザを配信画面に入れます。
コントロール画面下部の「ソース」にある「+」をクリック。
「ウインドウキャプチャ(Xcomposite)」を選択。
名前をつけてOKをクリック。
「ウインドウ」から「clementine ビジュアライゼーション」を選択してOK。
これで、配信画面にビジュアライザが配置されます。
曲情報
配信画面に曲情報を差し込みたいので、clementineの表示から頂きます。
clementineのウインドウの下の方に曲情報が表示されているので、ここを使います。
手順としては、ビジュアライザと同じ。
違うのは、選択するウインドウ。
今回は、「sketch audio – Shadow」っていうのを選ぶとキャプチャされました。
このままだとclementineのウインドウ全てが配信画面に入ってしまうので、クロップします。
ソースを選択すると、その要素が配信画面で赤枠で選択されます。
Mac上のVNCでは、コマンドキーを押しながら赤枠をドラッグすると、クロップされます。
大体のサイズにクロップできたら、赤枠をドラッグしてサイズを変えます。
拡大したりして、キレイにクロップできるように調整しましょう。
このままだと白地でちょっと格好悪いので、クロマキーで抜きます。
クロマキーで抜きたい要素の上で右クリックすると、コンテキストメニューが表示されるので、フィルタを選択。
エフェクトフィルタの下部にある「+」ボタンを押して、クロマキーを選択。
名前を適当に付けると、追加されます。
右下で、設定していきます。
抜きたい色を指定します。
いい感じになるように、色やパラメーターを調整します。
あとは、要素をドラッグして配置していきます。
配信開始
コントロール画面の右下にある「配信開始」をクリックすると、YouTubeへ送出が始まります。
問題なく送出されると、YouTubeのクリエイターツールで状態を確認できるようになります。
まとめ
音声
Mac版OBSだとSoundflowerやLadioCastを使って音声をルーティングしないといけませんが、Ubuntuの場合はその辺が簡単にできました。
ただ、Ubuntuの音が全てYouTubeに出ていくので、果たしてこれが正解なのかは分かりません(笑)
ちゃんとしたやり方がある気もします。
映像
内部完結させるのであれば、それほど苦労しないと思います。
外部入力させようとすると、ちょっと大変かも。
スマホアプリのOBS Cameraを使えば、イケるかな?
システム負荷
Ubuntuの負荷は、こんな感じ。
Mac版OBSと比べると、随分負荷が軽い。
Mac版はオーバーヘッドが大きいのかもしれない。
Mac miniの負荷はこんな感じ。
仮想環境でUbuntuが動いている割には、それほど負荷がかかっていないみたい。
しばらくは、この環境で試してみます。
もし安定しているようなら、古いMacBookが転がっているので、それにUbuntuを入れてみようかと思ってます。
この環境でライブしているのはこちら。
https://www.youtube.com/user/55bd15/live
最後のスクリーンショット、「メモリ使用量 0.1MB」と小さすぎる気がするのですが、最新のOBS Studio 27.0.1でも同様でしょうか?
CentOS 8でOBS Studioを使っていてこの問題に気づいたのですが、オフィシャルにはUbuntu版しかリリースサれていないので、オフィシャル版にも存在するバグなのだろうかと気になった次第です。
コメントありがとうございます。
現在OBSの運用は停止していて、最新版OBSでのメモリ使用量については確認できません。
将来、運用を再開したときに確認してみたいと思います。