LoginSignup
9
9

More than 3 years have passed since last update.

Raspberry Pi 3 Model B+ で ライブ配信ソフト OBS-Studio を動かしてみた。(※ ただし、あまり実用的ではありませんでした)

Last updated at Posted at 2020-04-12

はじめに

Jetson Nano で ライブ配信ソフト OBS-Studio を動かしてみた。」がかなり実用的だったので、比較のため Raspberry Pi 3 Model B+ でも OBS-Studio を動かしてみました。

ビルドの手順

公式のビルド手順といくつか異なる点がありました。
ビルドに掛かる時間は必要なパッケージのダウンロード/インストールから始めて 1 時間くらい掛かりました。

差分内容

1. インストールする必要なパッケージ名が一部異なる
libfontconfig-dev

  • 解決方法 (パッケージ名を変更する)
    libfontconfig1-dev

2. インストールする必要なパッケージが存在しない
libfdk-aac-dev

  • 解決方法 (apt-get source list へ設定を追加する)
$ sudo vi /etc/apt/sources.list
# 以下の行を追加する
deb http://www.deb-multimedia.org buster main

$ sudo apt-get update -oAcquire::AllowInsecureRepositories=true
$ sudo apt-get install deb-multimedia-keyring
$ sudo apt install libfdk-aac-dev

※ 2020/4/25 追記
Deb-Multimedia Repositoryを追加するとエラーが出る。

W: GPG エラー: http://www.deb-multimedia.org buster InRelease: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY 5C808C2B65558117
W: リポジトリ http://www.deb-multimedia.org buster InRelease は署名されていません。
N: このようなリポジトリから取得したデータは認証できないので、データの使用は潜在的に危険です。
N: リポジトリの作成とユーザ設定の詳細は、apt-secure(8) man ページを参照してください

対策: 公開鍵を登録する。

$ sudo apt-get install deb-multimedia-keyring

3. ビルドが途中で止まる

  • 解決方法 (スワップを追加して、make のオプションを変更する)
$ sudo vi /etc/dphys-swapfile
# 値を100から1024へ変更する
CONF_SWAPSIZE=100 → 1024

# 設定変更を反映する
$ sudo /etc/init.d/dphys-swapfile restart

# 設定変更を確認する
$ swapon -s
# make の引数を -j4 から -j3 へ変更する
$ make -j3

環境

  • Raspberry Pi 3 Model B+
  • OS イメージ Raspbian buster (2019-09-26-raspbian-buster-full.zip)
    Raspbian GNU/Linux 10 (buster)
  • ウェブカメラ (Logitech, Inc. Webcam C270)

手順

1. パッケージを最新の状態に更新する

$ sudo apt update
$ sudo apt upgrade

2. 必要なパッケージをダウンロード/インストールする

$ sudo apt install \
           build-essential \
           checkinstall \
           cmake \
           git \
           libmbedtls-dev \
           libasound2-dev \
           libavcodec-dev \
           libavdevice-dev \
           libavfilter-dev \
           libavformat-dev \
           libavutil-dev \
           libcurl4-openssl-dev \
           libfontconfig1-dev \
           libfreetype6-dev \
           libgl1-mesa-dev \
           libjack-jackd2-dev \
           libjansson-dev \
           libluajit-5.1-dev \
           libpulse-dev \
           libqt5x11extras5-dev \
           libspeexdsp-dev \
           libswresample-dev \
           libswscale-dev \
           libudev-dev \
           libv4l-dev \
           libvlc-dev \
           libx11-dev \
           libx264-dev \
           libxcb-shm0-dev \
           libxcb-xinerama0-dev \
           libxcomposite-dev \
           libxinerama-dev \
           pkg-config \
           python3-dev \
           qtbase5-dev \
           libqt5svg5-dev \
           swig \
           libxcb-randr0-dev \
           libxcb-xfixes0-dev \
           libx11-xcb-dev \
           libxcb1-dev

3. OBS-Studio のソースコードをダウンロードする

$ git clone --recursive https://github.com/obsproject/obs-studio.git

4. OBS-Studio をビルドする
"ブラウザソースなし"でビルドしました。

$ cd obs-studio
$ mkdir build && cd build
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr ..
$ make -j3
$ sudo make install

Raspberry Pi での実行

コマンドプロンプトから普通に OBS を実行すれば問題ありませんでした。

$ obs

Jetson Nano との比較

起動後の CPU 使用率に大きな差がありました。Jetson Nano は 6% 程度でしたが、Raspberry Pi は 60% 程度でした。

Jetson Nano の起動後の OBS

Raspberry Pi の起動後の OBS

OBS のソースに 映像キャプチャーデバイス (USB カメラ)、音声キャプチャーデバイス (USB カメラ)、ウィンドウキャプチャー、テロップ (テキスト) を追加した時点で CPU 使用率は 90% 近くとなり、フレームレートも 9 fps まで落ち込んだ状態になりました。(Jetson Nano は CPU 使用率もフレームレートも変化がありませんでした。)

Raspberry Pi のソース追加後の OBS

この時点で YouTube Live 配信は無理だと思いましたが、比較検証のため配信を行ったところ CPU 使用率は 100% となり、フレームレートも 3 fps まで落ち込んだ状態になりました。(Jetson Nano は CPU 使用率 60% 程度でフレームレートの落ち込みはありませんでした。)

Raspberry Pi のソース配信開始後の OBS

(参考) YouTube Live 配信のアーカイブ動画 (映像はカクカクで、音声もノイズが入って聞きづらいです)
https://youtu.be/_8X9Sofn0VE

さいごに

やはり GPU を使用 (ハードウェアエンコードを有効利用) しないと実用的でないことが分かりました。
では、OBS-Studio で良き配信ライフを!

※ 2020/4/12 17:13 追記
raspi-config コマンドで OpenGL ドライバの設定を変更することができますが、OBS-Studio ではサポートされていない GPU のため、OBS 起動時にエラーが出てプロセスが終了します。

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9