Jetson NanoでOBS StudioのStreamFXプラグインをビルドしてみた
はじめに
以前、Jetson Nano用のOBS Studioビルドパッケージを公開しましたが、プルリク(Pull Request)をもらったので、NVMPIハードウェアエンコーダーを組み込む前にStreamFXプラグインをインストールしてみることにした。
OBS StudioにStreamFXプラグインをインストールすると、さまざまなフィルターエフェクトが使用できるようになります。
StreamFXのビルドにはC++17のサポートが必要なため、GCC/G++8を使用しました。(GCC/G++9が推奨されているが、aptコマンドでインストールできるパッケージが存在しない。)
aptコマンドでインストールされるGCC/G++パッケージはバージョン7です。
GCC/G++8パッケージをインストールするためには -8を指定する必要があります。
また、aptコマンドでインストールされるcmakeコマンドはバージョンが古い(3.10.2)ため、cmakeコマンドを実行するとエラーが出ます。cmakeの最新版(3.20.1)をビルドしてインストールしました。
(参考)
StreamFX requires C++17 so GCC/G++ 9 is required.
(This poses no problem with cuda 10.2 as on Linux neither obs nor StreamFX compile cuda sources. Obs and StreamFX actually compiled with with GCC/G++ 8, however I experienced the GCC 8 'filesystem' segfault bug)
準備
1. cmakeのバージョンアップ
cmakeのconfigureコマンドでエラーが発生するので、OpenSSL development packageをインストールする。
$ sudo apt-get install libssl-dev
cmakeをビルドしてインストールする。
$ wget https://github.com/Kitware/CMake/releases/download/v3.20.1/cmake-3.20.1.tar.gz
$ tar xvzf cmake-3.20.1.tar.gz
$ cd cmake-3.20.1
$ ./configure --prefix=/usr/local
$ make -j4
$ sudo make install
2. gcc/g++8のインストール
$ sudo apt install gcc-8 g++-8
$ export CC=gcc-8
$ export CXX=g++-8
OBS studioとStreamFXのビルド
OBS Studio 27.0.0-rc2、StreamFX 0.10.0b3 の場合
$ git clone --recursive https://github.com/obsproject/obs-studio.git
$ cd obs-studio/plugins
$ git submodule add 'https://github.com/Xaymar/obs-StreamFX.git' streamfx
$ cd streamfx
$ git submodule init && git submodule update
$ cd ..
$ echo "add_subdirectory(streamfx)" >> ./CMakeLists.txt
$ cd ..
$ mkdir build && cd build
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-fPIC" -DENABLE_PIPEWIRE=OFF -DBUILD_BROWSER=OFF ..
$ make -j4
$ sudo make install
OBS Studio Release(26.1.2)、StreamFX Release(0.9.3) の場合
$ git clone https://github.com/obsproject/obs-studio.git -b 26.1.2 --depth=1
$ cd obs-studio/plugins/
$ git clone https://github.com/Xaymar/obs-StreamFX.git streamfx -b 0.9.3 --depth=1
$ cd streamfx/
$ git submodule init && git submodule update
$ cd ..
$ echo "add_subdirectory(streamfx)" >> ./CMakeLists.txt
$ cd ..
$ mkdir build
$ cd build/
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-fPIC" -DBUILD_BROWSER=OFF ..
$ make -j4
$ sudo make install
$ git clone --recursive https://github.com/obsproject/obs-studio.git
$ cd obs-studio/plugins
$ git submodule add 'https://github.com/Xaymar/obs-StreamFX.git' streamfx
$ cd streamfx
$ git submodule init && git submodule update
$ cd ..
$ echo "add_subdirectory(streamfx)" >> ./CMakeLists.txt
$ cd ..
$ mkdir build && cd build
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-fPIC" -DENABLE_PIPEWIRE=OFF -DBUILD_BROWSER=OFF ..
$ make -j4
$ sudo make install
$ git clone https://github.com/obsproject/obs-studio.git -b 26.1.2 --depth=1
$ cd obs-studio/plugins/
$ git clone https://github.com/Xaymar/obs-StreamFX.git streamfx -b 0.9.3 --depth=1
$ cd streamfx/
$ git submodule init && git submodule update
$ cd ..
$ echo "add_subdirectory(streamfx)" >> ./CMakeLists.txt
$ cd ..
$ mkdir build
$ cd build/
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-fPIC" -DBUILD_BROWSER=OFF ..
$ make -j4
$ sudo make install
途中でエラーが出るので、不要なインクルードファイルを編集する。
$ vi ../plugins/streamfx/source/obs/gs/gs-vertex.hpp
#include <xmmintrin.h> →削除
- 2022/3/20 追記
Jetson Nano JetPack 4.6.1 / OBS-Studio 27.2.0 / StreamFX 0.11.0
環境
- Jetson Nano 4GB (A02)
- JetPack 4.6.1 (L4T 32.7.1)
- OBS: Application Version: 27.2.0-133-g923d42721-modified - Build Number: 1
- StreamFX 0.11.0.10-gbf1787e5
1. cmakeのバージョンアップ
上記と同様
2. gcc/g++8のインストール
上記と同様
3. OBS studioとStreamFXのビルド
$ git clone --recursive https://github.com/obsproject/obs-studio.git
$ cd obs-studio/UI/frontend-plugins/
$ git submodule add 'https://github.com/Xaymar/obs-StreamFX.git' streamfx
$ git submodule update --init --recursive
$ echo "add_subdirectory(streamfx)" >> CMakeLists.txt
$ cd ../..
$ mkdir build && cd build
$ cmake -DUNIX_STRUCTURE=1 -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_FLAGS="-fPIC" -DENABLE_PIPEWIRE=OFF -DBUILD_BROWSER=OFF ..
$ make -j3
$ sudo make install
Author And Source
この問題について(Jetson NanoでOBS StudioのStreamFXプラグインをビルドしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/kitazaki/items/1f46f2647e27780aef11著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .