Raspberry Pi 4 で ライブ配信ソフト OBS-Studio を動かしてみた。(※ 実用的になりました)

# はじめに

「<a href="https://qiita.com/kitazaki/items/3950c48a68bab1766fb6">Jetson Nano で ライブ配信ソフト OBS-Studio を動かしてみた。</a>」
「<a href="https://qiita.com/kitazaki/items/36b9f9ba80cec12164f9">Raspberry Pi 3 Model B+ で ライブ配信ソフト OBS-Studio を動かしてみた。</a>」
に引き続き、Raspberry Pi 4 (メモリ 4GB) で OBS-Studio を動かしてみました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/740eac0a-1023-bb70-723e-dc18aca6e11a.png" width="75%">

# ビルドの手順 (Raspberry Pi 3 Model B+ との差分)
基本的に「<a href="https://qiita.com/kitazaki/items/36b9f9ba80cec12164f9">Raspberry Pi 3 Model B+ で ライブ配信ソフト OBS-Studio を動かしてみた。</a>」とビルド手順は同じです。
メモリ容量が大幅に増えたおかげでビルドが途中で止まることはありませんでした。(解決方法 3.のスワップを追加する必要はありませんでした。)

## 環境
- Raspberry Pi 4 (メモリ 4GB)  
- OS イメージ Raspbian buster (2020-02-13-raspbian-buster-full.zip)  
  - Raspbian GNU/Linux 10 (buster)
- ウェブカメラ (Logitech, Inc. Webcam C270)

# 実行方法
Raspberry Pi 3 Model B+ ではコマンドプロンプトから普通に OBS を実行すれば問題ありませんでしたが、Raspberry Pi 4 ではエラーが出力されました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/3ac6d9e8-f502-b6dd-5023-43d089735e63.png" width="75%">

解決方法を OBS-Studio Forums で見つけました。
https://obsproject.com/forum/threads/obs-raspberry-pi-build-instructions.115739/

<img width="75%" alt="スクリーンショット 2020-04-25 11.37.20.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/bea44aaf-2648-7950-e29d-277908c96c22.png">

環境変数をつけて無事に OBS を起動できましたが、音声キャプチャデバイス (ALSA) を使用する際にエラーが出力されました。

```bash
error: alsa-input: Failed to open 'default': そのようなファイルやディレクトリはありません
```

最終的に sudo で OBS を起動することで問題を回避することができました。

```bash
$ sudo MESA_GL_VERSION_OVERRIDE=3.3 obs
```

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/38cd9f20-2076-88df-aa59-6db27b742976.png" width="75%">

# 動作確認
起動後の CPU 使用率は 5〜6% 程度でした。
(Raspberry Pi 3 Model B+ は 60% 程度でしたので、かなり改善しています。)
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/4c5a199f-83fd-a4be-8321-16b659c41852.png" width="75%">

映像キャプチャデバイス (ウェブカメラ) と ウィンドウキャプチャと音声キャプチャデバイスとテキスト (テロップ) を追加した後の CPU 使用率は 10〜11% 程度でした。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/f2eba376-4d51-63c5-a187-815e41c6e4e1.png" width="75%">
(カメラ設定)
<img width="50%" alt="カメラ設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/aa67ad71-9c8d-4fee-f9fa-1214bca481ef.png">
(映像設定)
<img width="50%" alt="映像設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/9db55f9e-bbb8-2554-891a-2da51e987e5f.png">

配信開始後は CPU 使用率は 80〜90% 程度となり、「エンコードが高負荷」という警告が表示され、フレームレートは 30 fps を維持できなくなりました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/8a94eb8f-634c-a9cf-edaa-7ff120c5f171.png" width="75%">

フレームレートを 20 fps くらいに下げると「エンコードが高負荷」という警告は表示されず配信が安定しました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/4830437b-9e5a-d641-0d92-0b027ba92c39.png" width="75%">

(参考) YouTube Live 配信のアーカイブ動画は<a href="https://youtu.be/_Wg-0RpKwvQ">こちら</a>です。
<a href="https://youtu.be/_Wg-0RpKwvQ"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/753005c2-115f-0257-02d7-df27c84e5e1d.png" width="50%"></a>

* 2022/3/15 追記

# OBS-Studio バージョン27 (OBS_VERSION: 27.2.0-103-g02e541038) のビルド

手順の変更箇所を中心に記載します。

### 1.追加パッケージのインストール

```bash
$ sudo apt install libwayland-dev libxkbcommon-dev libpci-dev qtbase5-private-dev
```

### 2. cmakeコマンドパラメータの追加

```bash
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
↓
$ cmake -DENABLE_WAYLAND=OFF -DENABLE_PIPEWIRE=OFF -DBUILD_BROWSER=OFF -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
```

### 3. 仮想カメラ

OBS-Studio バージョン26 で追加された仮想カメラ機能の使用もOKでした。

![obs.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/72479/fe5bdf10-e3d3-cf86-8586-1564c64ee297.jpeg)