An automated scene switcher for OBS Studio
An automated scene switcher for OBS Studio
More information can be found on https://obsproject.com/forum/resources/automatic-scene-switching.395/
Add the "SceneSwitcher" source directory to your obs-studio source directory under obs-studio/UI/frontend-plugins/:
cd obs-studio/UI/frontend-plugins/ git clone https://github.com/WarmUpTill/SceneSwitcher.git
Then modify the obs-studio/UI/frontend-plugins/CMakeLists.txt file and add an entry for the scene switcher: add_subdirectory(SceneSwitcher)
You'll need CMake and a working development environment for OBS Studio installed on your computer. Once you've done that, do the following:
git clone https://github.com/WarmUpTill/SceneSwitcher.git cd SceneSwitcher mkdir build && cd build
In cmake-gui, you'll have to set these CMake variables : - BUILDOUTOF_TREE (bool) : true - LIBOBSINCLUDEDIR (path) : location of the libobs subfolder in the source code of OBS Studio, located at [sourcedirectory]/libobs/. - **LIBOBSLIB** (filepath) : location of the obs.dll file (usually set to C:\Program Files\obs-studio\bin\64bit\obs.dll)
Assuming that you installed Qt via the regular Qt App way: - Qt5Core_DIR (path) : C:/Qt/5.10.1/msvc201764/lib/cmake/Qt5Core - **Qt5GuiDIR** (path): C:/Qt/5.10.1/msvc201764/lib/cmake/Qt5Gui - **Qt5WidgetsDIR** (path) : C:/Qt/5.10.1/msvc2017_64/lib/cmake/Qt5Widgets
Just keep hitting configure until all the vars are filled out. Then hit generate.
Most versions of Linux you can use cmake-gui or the command line.
For the command line:
cmake -DBUILD_OUT_OF_TREE=1 -DLIBOBS_INCLUDE_DIR="" \ -DLIBOBS_FRONTEND_INCLUDE_DIR="" \ -DLIBOBS_LIB="" \ -DLIBOBS_FRONTEND_API_LIB="" \ -DCMAKE_INSTALL_PREFIX=/usr .. make -j4 sudo make install
For cmake-gui you'll have to set the following variables: - BUILDOUTOF_TREE (bool) : true - LIBOBSINCLUDEDIR (path) : location of the libobs subfolder in the source code of OBS Studio, located at [sourcedirectory]/libobs/. - **LIBOBSLIB** (filepath) : location of the libobs.so file (usually CMake finds this, but if not it'll usually be in /usr/lib/libobs.so)
Assuming that you installed Qt via your system package manager, it should be found automatically. If not, then usually you'll find it in something like: - Qt5Core_DIR (path) : /usr/lib64/cmake/Qt5Core - Qt5Gui_DIR (path): /usr/lib64/cmake/Qt5Gui - Qt5Widgets_DIR (path) : /usr/lib64/cmake/Qt5Widgets
Just keep hitting configure until all the vars are filled out. Then hit generate.
Then open a terminal in the build folder and type:
make -j4 sudo make installNOTE: The Linux version of this plugin is dependent on libXScrnSaver.
In cmake-gui, you'll have to set these CMake variables : - BUILDOUTOF_TREE (bool) : true - LIBOBSINCLUDEDIR (path) : location of the libobs subfolder in the source code of OBS Studio, located at [sourcedirectory]/libobs/. - **LIBOBSLIB** (filepath) : location of the libobs.0.dylib file (usually in /Applications/OBS.app/Contents/Resources/bin/libobs.0.dylib)
Assuming that you installed Qt via the regular Qt App way: - Qt5Core_DIR (path) : Usually /Applications/Qt/5.10.1/clang64/lib/cmake/Qt5Core - **Qt5WidgetsDIR** (path) : Usually /Applications/Qt/5.10.1/clang64/lib/cmake/Qt5Widgets - **Qt5MacExtrasDIR** (path) : Usually /Applications/Qt/5.10.1/clang_64/lib/cmake/Qt5MacExtras
Just keep hitting configure until all the vars are filled out. Then hit generate.
Open xcode (or a terminal, depending on the build type you chose), build and copy the advanced-scene-switcher.so file to /Applications/OBS.app/Contents/PlugIns
Note that you might have to adjust the library search paths using the installnametool if you want the plugin to run on machines other than your build machine:
install_name_tool -change @rpath/libobs-frontend-api.dylib @executable_path/../Frameworks/libobs-frontend-api.dylib UI/frontend-plugins/SceneSwitcher/advanced-scene-switcher.so install_name_tool -change @rpath/libobs.0.dylib @executable_path/../Frameworks/libobs.0.dylib UI/frontend-plugins/SceneSwitcher/advanced-scene-switcher.so install_name_tool -change /usr/local/opt/qt5/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets UI/frontend-plugins/SceneSwitcher/advanced-scene-switcher.so install_name_tool -change /usr/local/opt/qt5/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui UI/frontend-plugins/SceneSwitcher/advanced-scene-switcher.so install_name_tool -change /usr/local/opt/qt5/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore UI/frontend-plugins/SceneSwitcher/advanced-scene-switcher.so