Giter VIP home page Giter VIP logo

obs-transition-matrix's Introduction

obs-transition-matrix

Customize Any -> One or One -> One scene transitions

Compiling obs-transition-matrix

Prerequisites

You'll need Qt 5.10.x, CMake, and a working development environment for OBS Studio installed on your computer.

Windows

In cmake-gui, you'll have to set the following variables :

  • QTDIR (path) : location of the Qt environment suited for your compiler and architecture
  • LIBOBS_INCLUDE_DIR (path) : location of the libobs subfolder in the source code of OBS Studio
  • LIBOBS_LIB (filepath) : location of the obs.lib file
  • OBS_FRONTEND_LIB (filepath) : location of the obs-frontend-api.lib file

Then generate the Visual Studio solution and click to build

Linux

  • QTDIR Should be automatically detected if installed in the system
  • LIBOBS_INCLUDE_DIR (path) : path to the libobs sub-folder in obs-studio's source code
  • LIBOBS_LIB (filepath) : location of the libobs.so file
  • OBS_FRONTEND_LIB (filepath) : location of the libobs-frontend-api.so file
  • CUSTOM (bool) : define this var to not use default unix structure (Like OBS param UNIX_STRUCTURE)
  • CMAKE_INSTALL_PREFIX (path) : program instalation output

Default OBS install

git clone https://github.com/admshao/obs-transition-matrix.git
cd obs-transition-matrix
mkdir build && cd build
cmake -DLIBOBS_INCLUDE_DIR="path" -DLIBOBS_LIB="filepath" -DOBS_FRONTEND_LIB="filepath" -DCMAKE_INSTALL_PREFIX=/usr ..
make -j4
sudo make install

Custom OBS install

git clone https://github.com/admshao/obs-transition-matrix.git
cd obs-transition-matrix
mkdir build && cd build
cmake -DLIBOBS_INCLUDE_DIR="path" -DLIBOBS_LIB="filepath" -DOBS_FRONTEND_LIB="filepath" -DCMAKE_INSTALL_PREFIX="path to your custom compilation" -DCUSTOM=1 ..
make -j4
make install

OS X

To build this plugin on macOS the following software needs to be installed on the system:

Then follow these steps to build the plugin - for each step return to your root working directory.

Install necessary dependencies

brew install cmake mbedtls
brew install https://gist.githubusercontent.com/DDRBoxman/b3956fab6073335a4bf151db0dcbd4ad/raw/ed1342a8a86793ea8c10d8b4d712a654da121ace/qt.rb`
brew pin qt

Build OBS and necessary obs-libraries

wget --quiet --retry-connrefused --waitretry=1 https://obs-nightly.s3.amazonaws.com/osx-deps-2018-08-09.tar.gz
tar -xf ./osx-deps-2018-08-09.tar.gz -C /tmp

git clone https://github.com/obsproject/obs-studio
cd obs-studio
git checkout 24.0.6
mkdir build && cd build
cmake .. \
    -DBUILD_CAPTIONS=true \
    -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 \
    -DDISABLE_PLUGINS=true \
    -DENABLE_SCRIPTING=0 \
    -DDepsPath=/tmp/obsdeps \
    -DCMAKE_PREFIX_PATH=/usr/local/opt/qt/lib/cmake \
&& make -j4

Build obs-transition-matrix plugin

git clone https://github.com/admshao/obs-transition-matrix.git
cd obs-transition-matrix
mkdir build && cd build
cmake .. \
    -DQTDIR=/usr/local/opt/qt \
    -DLIBOBS_INCLUDE_DIR="../../obs-studio/libobs" \
    -DLIBOBS_LIB="../../obs-studio/build/libobs/libobs.dylib" \
    -DOBS_FRONTEND_LIB="$(pwd)/../../obs-studio/build/UI/obs-frontend-api/libobs-frontend-api.dylib" \
    -DCMAKE_INSTALL_PREFIX="/usr" \
&& make -j4

Prepare and install plugin

install_name_tool \
        -add_rpath @executable_path/../Frameworks/QtWidgets.framework/Versions/5/ \
        -add_rpath @executable_path/../Frameworks/QtGui.framework/Versions/5/ \
        -add_rpath @executable_path/../Frameworks/QtCore.framework/Versions/5/ \
        -change /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets \
        -change /usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui \
        -change /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore \
        obs-transition-matrix.so

sudo mkdir -p /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/bin
sudo cp -r ../data /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/
sudo cp obs-transition-matrix.so /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/bin

obs-transition-matrix's People

Contributors

admshao avatar ochilan avatar patthemav avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

obs-transition-matrix's Issues

Stinger transition is always used if previous stinger transition hasn't finished

I'm loving the plugin! However, I have my system set up to fade between cameras and screens but to use a stinger when going between a camera and a screen. It seems that if I switch between a camera and a screen and then quickly switch to any other scene before the transition is finished, it will use the stinger again no matter what.

Plugin not loading

Hello!

When I open up OBS Studio I couldn't find the "Transition Override Matrix" tab in the "Tools" section. After checking my logs I found a line that says the following:

Module '../../obs-plugins/64bit/obs-transition-matrix.dll' not loaded

Are there any special (runtime) dependencies that the plugin requires?
I'm on Windows 10 Pro 64-bit, OBS Studio 24.0.3 (64-bit), downloaded from the latest release (OBS Transition Matrix V1.0), so not build from source.

Thank you :-)

Will not prepare/install

All installs fine until last step, then just stops at password request. it then proceeds before i have time to input password, then stops and waits, I enter password and then nothing.

MacPro:~ MacPro$ install_name_tool \

    -add_rpath @executable_path/../Frameworks/QtWidgets.framework/Versions/5/ \
    -add_rpath @executable_path/../Frameworks/QtGui.framework/Versions/5/ \
    -add_rpath @executable_path/../Frameworks/QtCore.framework/Versions/5/ \
    -change /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets \
    -change /usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui \
    -change /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore \
    obs-transition-matrix.so

error: /Library/Developer/CommandLineTools/usr/bin/install_name_tool: can't open file: obs-transition-matrix.so (No such file or directory)
MacPro:~ MacPro$
MacPro:~ MacPro$ sudo mkdir -p /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/bin
Password:
Sorry, try again.
Password:
MacPro:~ MacPro$

Closing OBS Overwrites Certain Transitions in the 'Any' Row With Current Scene's Transition

Like the title says, whenever I close OBS, seemingly random scenes have their 'Any' origin transitions overwritten. Because I have many scenes, I've had to re-set about 15 transitions each time OBS starts.

It's a pretty frustrating bug. Btw, I'm running Windows 10, 64bit.

A workaround is closing OBS while on a scene without an 'Any' transition, which may hint at what is wrong.

Idea : being able to hide scenes from the matrix

Hello and many thanks for this awesome plugin

In my experience, heavily nested scenes collections can become a nightmare to configure.
I personnaly heavily uses scenes only as sources in "displayed scenes", and have around 40 scenes for a maximum of 6/7 displayed scenes that will benefit from transitions.

So i though it would be a nice addition to be able to hide some scenes in the matrix so we can have a clean view of what's going on.

The current workaround is to order the scenes but it has its limits, as we don't necessarily want to have them in that order in the scene list

Thanks !

Mac installation

For anyone who is struggling with MacOS Catalina installation (QT version at compile time differs from runtime) (you can see this in log file of OBS)
This could be used to update the MacOS "how to" or someone who searches for a solution.

20:01:55.234: os_dlopen(/Library/Application Support/obs-studio/plugins/obs-transition-matrix/bin/obs-transition-matrix.so->/Library/Application Support/obs-studio/plugins/obs-transition-matrix/bin/obs-transition-matrix.so): dlopen(/Library/Application Support/obs-studio/plugins/obs-transition-matrix/bin/obs-transition-matrix.so, 257): Library not loaded: @rpath/QtWidgets
20:01:55.234:   Referenced from: /Library/Application Support/obs-studio/plugins/obs-transition-matrix/bin/obs-transition-matrix.so
20:01:55.234:   Reason: Incompatible library version: obs-transition-matrix.so requires version 5.15.0 or later, but QtWidgets provides version 5.14.0
20:01:55.234: 
20:01:55.234: Module '/Library/Application Support/obs-studio/plugins/obs-transition-matrix/bin/obs-transition-matrix.so' not loaded
20:01:55.251: [obs-websocket] you can haz websockets (version 4.8.0)
20:01:55.251: [obs-websocket] qt version (compile-time): 5.10.1 ; qt version (run-time): 5.14.1
20:01:55.253: [obs-websocket] module loaded!
20:01:55.253: ---------------------------------
20:01:55.253:   Loaded Modules:
20:01:55.253:     obs-websocket.so
20:01:55.253:     obs-ndi.so
20:01:55.253:     move-transition.so
20:01:55.253:     cloud_captions_plugin.so
20:01:55.253:     advanced-scene-switcher.so
20:01:55.253:     StreamDeckPlugin.so
20:01:55.253:     vlc-video.so
20:01:55.253:     text-freetype2.so
20:01:55.253:     rtmp-services.so
20:01:55.253:     obs-x264.so
20:01:55.253:     obs-vst.so
20:01:55.253:     obs-transitions.so
20:01:55.253:     obs-outputs.so
20:01:55.253:     obs-libfdk.so
20:01:55.253:     obs-filters.so
20:01:55.253:     obs-ffmpeg.so
20:01:55.253:     obs-browser.so
20:01:55.253:     mac-vth264.so
20:01:55.253:     mac-syphon.so
20:01:55.253:     mac-decklink.so
20:01:55.253:     mac-capture.so
20:01:55.253:     mac-avcapture.so
20:01:55.253:     linux-jack.so
20:01:55.253:     image-source.so
20:01:55.253:     frontend-tools.so
20:01:55.253:     decklink-ouput-ui.so
20:01:55.253:     coreaudio-encoder.so
20:01:55.253: ---------------------------------

So installation is not easy, because the version you need is not available anymore. You have to overwrite a file:
(BTW: I already have cmake and xcode-tools installed)

  • I deleted: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/qt.rb
  • then I run brew create https://gist.githubusercontent.com/DDRBoxman/b3956fab6073335a4bf151db0dcbd4ad/raw/ed1342a8a86793ea8c10d8b4d712a654da121ace/qt.rb
  • confirm "qt" as name
  • window opens in your favourite editor: copy and paste the whole content of this file (https://gist.githubusercontent.com/DDRBoxman/b3956fab6073335a4bf151db0dcbd4ad/raw/ed1342a8a86793ea8c10d8b4d712a654da121ace/qt.rb) into that one in the editor and save it.
  • run brew install qt
  • run brew pin qt
  • go to your home folder cd ~
  • follow the instructions from "Build OBS and necessary obs-libraries":
  • wget --quiet --retry-connrefused --waitretry=1 https://obs-nightly.s3.amazonaws.com/osx-deps-2018-08-09.tar.gz tar -xf ./osx-deps-2018-08-09.tar.gz -C /tmp
  • git clone https://github.com/obsproject/obs-studio
  • cd obs-studio
  • git checkout 24.0.6
  • run:
mkdir build && cd build
cmake .. \
    -DBUILD_CAPTIONS=true \
    -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 \
    -DDISABLE_PLUGINS=true \
    -DENABLE_SCRIPTING=0 \
    -DDepsPath=/tmp/obsdeps \
    -DCMAKE_PREFIX_PATH=/usr/local/opt/qt/lib/cmake \
&& make -j4
  • cd ~ to your home directory again
  • run :
git clone https://github.com/admshao/obs-transition-matrix.git
cd obs-transition-matrix
mkdir build && cd build
cmake .. \
    -DQTDIR=/usr/local/opt/qt \
    -DLIBOBS_INCLUDE_DIR="../../obs-studio/libobs" \
    -DLIBOBS_LIB="../../obs-studio/build/libobs/libobs.dylib" \
    -DOBS_FRONTEND_LIB="$(pwd)/../../obs-studio/build/UI/obs-frontend-api/libobs-frontend-api.dylib" \
    -DCMAKE_INSTALL_PREFIX="/usr" \
&& make -j4


install_name_tool \
        -add_rpath @executable_path/../Frameworks/QtWidgets.framework/Versions/5/ \
        -add_rpath @executable_path/../Frameworks/QtGui.framework/Versions/5/ \
        -add_rpath @executable_path/../Frameworks/QtCore.framework/Versions/5/ \
        -change /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets @rpath/QtWidgets \
        -change /usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui @rpath/QtGui \
        -change /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore @rpath/QtCore \
        obs-transition-matrix.so

sudo mkdir -p /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/bin
sudo cp -r ../data /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/
sudo cp obs-transition-matrix.so /Library/Application\ Support/obs-studio/plugins/obs-transition-matrix/bin

So with that exact steps I got it built successfully and run on macOS Catalina (10.15.7 (19H2))

Bildschirmfoto 2020-10-28 um 20 57 15

"Any" row gets overwritten with values of the row of the last active scene when closing OBS

As the title says: When I close OBS, the "any" row gets overwritten by the values of the then active scene.
If there is no value (i. e. "none") in a cell of that scene row, the corresponding value in the "any" row does not get overwritten. It only happens when the transition matrix was opened in that session. (I guess nothing gets saved/overwritten if it wasn't opened)

I am using OBS (25.0.8) with OBS.live (20.5.3.629) and version 1.0 of OBS Transition Matrix on Windows.

Workaround for anyone seeing this and having the same problem:

  1. Add a dummy scene and set all transitions in that scene to "none"
  2. Change your "any" row to whatever you want it to be
  3. Close OBS with your dummy scene selected! (You have to close OBS with that scene selected every time you open the transition matrix, otherwise it will get overwritten again)

plugin not loading

With OBS 22.0.2 and plugin version Beta Build V1.0-beta1 I see the following in the log:
15:08:41.702: LoadLibrary failed for '../../obs-plugins/64bit/obs-transition-matrix.dll': (null) (127)
15:08:41.702: Module '../../obs-plugins/64bit/obs-transition-matrix.dll' not loaded

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.