Re:OBS Studio 27.1.1
by qbasic_forever on Tuesday September 28, 2021 @04:06PM
(#28686892)
It looks like they have their own library for low level stuff (https://github.com/obsproject/obs-studio/tree/master/libobs), but for the most part rely on ffmpeg's library for all the platform-specific video, audio, etc. stuff (https://www.ffmpeg.org/about.html). If you browse the CMakeLists.txt files in the repo you can get a rough idea the kinds of libraries they depend on and use.
OBS uses FFmpeg for media source playback, some audio encoders, and specific video output contexts. Usually FFmpeg isn't used for video encoding, though -- that's handled by either a direct hardware encoder implementation or by a native x264 encoder (i.e. not FFmpeg's x264 implementation). OBS supports FFmpeg output in Advanced mode, but it's by no means the default.
I have been following the development of screen capturing under Wayland a little and what I can tell you is that at least for Wayland OBS directly interfaces with pipewire (which is very much platform specific and low level), see: https://github.com/obsproject/obs-studio/pull/4287/files
Looks to be managed here https://github.com/obsproject/obs-studio/tree/master/plugins
Pretty clean source tree to reference :) Seems to be unique per OS and not dependent on third party projects.
Indeed, all capture functionality is split out into plugins and they are platform-specific. Platform builds are handled by CMake to only include relevant plugins: https://github.com/obsproject/obs-studio/blob/master/plugins...
Re:OBS Studio 27.1.1
by stoicjumbotron on Saturday October 02, 2021 @03:10AM
(#28726647)
Highly OT, but why did you use "smarter than I" instead of "smarter than me"? What is the difference between these two?
I had to install it to a colleague macos computer and it was a pain to setup the computer audio recording. Had to install a third-party closed source plugin, configure it...
Re:OBS Studio 27.1.1
by darkteflon on Tuesday September 28, 2021 @06:15PM
(#28688130)
You can use [BlackHole](https://github.com/ExistentialAudio/BlackHole) for that, which is open-source, GPL-3. I do, it works, itβs great.
Does OBS need to maintain totally distinct logic for capturing display output from different OSs? Or is there already an abstraction layer for this, maybe at the driver level? Or, third possibility - does it depend on a separate project/library for that?
(I'm ready for the replies saying "read the source and find out" but I'm hoping for someone smarter than I to make sense of it for me :D)