exeldro / obs-move-transition

Move transition for OBS Studio
https://obsproject.com/forum/resources/move-transition.913/
GNU General Public License v2.0
635 stars 45 forks source link

Apple silicon support #126

Closed montyclt closed 1 year ago

montyclt commented 1 year ago

OBS 28 beta introduces Apple Silicon support, but plugins need to be updated.

exeldro commented 1 year ago

yeah, can you help me with that?

montyclt commented 1 year ago

yeah, can you help me with that?

Of course. I can try to build it from my Apple Silicon MacBook from source code. There are any build instruction?

3laws commented 1 year ago

Dropping in to see if you need help with overall 28.0.0 support. I don't see the plugin in the flatpak beta branch.

exeldro commented 1 year ago

The current and old versions of the move transition plugin should work fine on OBS 28, because move transition is not linked to Qt which updated with OBS 28. Only Apple Silicon was not supported before. I got it working for my other plugins, so I should be able to get it working for move transition in the coming week.

petaren commented 1 year ago

EDIT: It did work, I just had to click the + icon next to transitions to add it to the list. But when using the move-transition plugin, OBS does not show the transition-table plugin under the Tools menubar. If I remove the move-transition, then it works. Curious. Don't see anything in the logs that indicated that there is a problem, need to investigate.

EDIT2: Did some additional troubleshooting.

Move my ~/Library/Application Support/obs-studio directory elsewhere

  1. Re-launch OBS (it will re-create the directory)
  2. Quit OBS
  3. Copy the plugins folder from the old directory to the newly created one
  4. Re-launch OBS
  5. Still the same problem. If I remove the move-transition.plugin from the plugins directory, the transition-table plugin shows up under the Tools menubar item.

EDIT3: If I compile OBS, move-transition, and transition-table myself, and then run that OBS, both plugins work.

I'm on an M1 mac and tried building it according to the OBS instructions and the move-transition instructions. I then tried to copy the build/plugins/move-transition/move-transition.plugin file to the ~/Library/Application Support/obs-studio/plugins directory. But I'm not seeing it in OBS. I also tried to copy it into the OBS.app/Contents/Plugins directory with no luck.

Is there anything else that needs to be done?

DuncanHills commented 1 year ago

I can help troubleshoot the build process. I am on arm64 version 28.0.1 of OBS. I have actually never used move-transition before, but I really want to try it for manipulating paramter values in OBS. @petaren do you have more detailed build instructions for this plugin on M1?

DuncanHills commented 1 year ago

The current and old versions of the move transition plugin should work fine on OBS 28, because move transition is not linked to Qt which updated with OBS 28. Only Apple Silicon was not supported before. I got it working for my other plugins, so I should be able to get it working for move transition in the coming week.

I found an older version of the plugin (2.5.2) that another user built for Apple silicon in this OBS Forum thread. However, it generated the following error referencing QT5 in the logs on startup:

os_dlopen(/Users/adam/Library/Application Support/obs-studio/plugins/move-transition.plugin/Contents/MacOS/move-transition->/Users/adam/Library/Application Support/obs-studio/plugins/move-transition.plugin/Contents/MacOS/move-transition): dlopen(/Users/adam/Library/Application Support/obs-studio/plugins/move-transition.plugin/Contents/MacOS/move-transition, 0x0101): Library not loaded: @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets
  Referenced from: /Users/adam/Library/Application Support/obs-studio/plugins/move-transition.plugin/Contents/MacOS/move-transition
  Reason: tried: '/Applications/OBS.app/Contents/MacOS/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets' (no such file), '/System/Library/Frameworks/QtWidgets.framework/Versions/5/QtWidgets' (no such file)
petaren commented 1 year ago

@DuncanHills I followed the instructions to build OBS on their website. But I see now that the instructions seem to have been removed.

These are the steps I followed:

  1. git clone --recursive https://github.com/obsproject/obs-studio.git
  2. cd obs-studio/CI
  3. ./build-macos.sh

To build the move-transition, I followed the instructions in the readme: https://github.com/exeldro/obs-move-transition

But, basically:

  1. Clone the repo to the obs-studio/plugins directory
  2. Rename folder: mv obs-move-transition move-transition (not sure if this is important)
  3. Add add_subdirectory(move-transition) to plugins/CMakeLists.txt
  4. Rebuild OBS
thomaslfessler commented 1 year ago

Building for Arm64 with the -arch arm64 option.

./build-macos.sh -a arm64 or ./build-macos.sh have th same result.

Now, if building OBS for Arm64 would be as easy as above, I would have completed it hours ago. Could the github pipeline build process for Arm64 somehow be different than what's in the repo, I'm currently blocked with

"_sws_setColorspaceDetails", referenced from: _video_scaler_create in video-scaler-ffmpeg.c.o ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation) [164/1316] Building C object plugins/obs-x264/CMakeFiles/obs-x264.dir/obs-x264.c.o ninja: build stopped: subcommand failed.

Any thoughts?

exeldro commented 1 year ago

It is now available for download on the OBS forum

montyclt commented 1 year ago

Tested and working on my MBP M1. Thank you!