FS#66008 - [obs-studio] Add support for the official browser plugin
Attached to Project:
Community Packages
Opened by Léo (Leeo97one) - Saturday, 28 March 2020, 17:19 GMT
Last edited by Jonathan Steel (jsteel) - Sunday, 06 June 2021, 10:14 GMT
Opened by Léo (Leeo97one) - Saturday, 28 March 2020, 17:19 GMT
Last edited by Jonathan Steel (jsteel) - Sunday, 06 June 2021, 10:14 GMT
|
Details
Description:
The official obs-browser plugin now supports GNU/Linux (https://github.com/obsproject/obs-browser/pull/166) and should be included in OBS Studio since version 25. |
This task depends upon
Closed by Jonathan Steel (jsteel)
Sunday, 06 June 2021, 10:14 GMT
Reason for closing: Won't implement
Sunday, 06 June 2021, 10:14 GMT
Reason for closing: Won't implement
Even the 3770 is the wrong one for 26 version, it is the one needed for Windows build
To me it looks like the issue that caused the browser source to be excluded from Linux builds has been worked around at least.
https://github.com/obsproject/obs-browser/issues/219
> We no longer support building obs-browser separately from obs-studio because there are features in obs-studio that rely on building the application with obs-browser enabled. We recommend building obs-studio with obs-browser enabled, per the build instructions on the obs-studio wiki.
Seems like going forward without building the obs-browser part and shipping as part of the package could be going against https://wiki.archlinux.org/title/Arch_Linux#Simplicity ?
Anyway, I was trying to find a pragmatic solution. A separate plugin users could install from AUR would have been one, but since OBS doesn't support the browser support as a plugin anymore it seems this is no longer feasible.
I see only two remaining options:
1) Continue to build without browser source.
2) Get CEF into community and ship with browser source.
The problem I see with 1) is that people will continue to use binaries such as https://aur.archlinux.org/packages/obs-linuxbrowser-bin/ which upstream has been abandoned years ago.
From https://github.com/obsproject/obs-browser/issues/219
"We no longer support building obs-browser separately from obs-studio because there are features in obs-studio that rely on building the application with obs-browser enabled."
And from https://github.com/obsproject/obs-browser/tree/8884c91c3e0e38c5498dc460bd73370118d806b7
"This plugin is included by default on official packages on Windows and macOS. While Linux is supported, the official ppa does not currently include the browser source due to a conflict with GTK."
The conflict mentioned there is the issue 219 which we have been discussing here. Since they do consider issue 219 resolved I suppose they will include the browser source in their official packages again. I asked that question specifically in issue 219 just now.
EDIT: Answer:"The plugin is already enabled in 26.1.1 Ubuntu PPA builds and will be updated in v27 to a newer version."
It is implemented as a plugin, but so are many things in OBS.
https://github.com/obsproject/obs-studio/tree/master/plugins
My understanding is that this is officially part of OBS and maintained along with the rest of the code base.
(and also OAuth related things like Twitch and Restream integration but needs to use OBS Project client ids).
Github source code tarball don't provide the submodules, this is why some plugins are always stripped from the build tree.
The lack of obs-vst and ftl protocol comes also from this too, but this is not the place to talk about it.
The CEF provided by OBS Project has no unmerged PR on the Linux side unlike Windows and Mac version.
So it can be compiled from source if needed or we can use spotify build.
The CEF used for OBS Studio shall be the version recommended/used by the team.
Actually CEF 3809 (76.1.13+gf19c584+chromium-76.0.3809.132) is used for version 26 like the official PPA.
And CEF 4280 (87.1.14+ga29e9a3+chromium-87.0.4280.141) is used for version 27.
Maybe creating a package "cef-minimal-obs" which provide the CEF needed for the actual stable version OBS Studio would be a better idea rather than providing the latest CEF.
Note that CEF building process seems to really take space and a stable connection.
The obs-studio-git package already builds against external CEF, so the recommendation to use that package due to concerns that external CEF might break this package isn't particularly helpful. Also, the rationale that having to bundle a specific CEF version would be a deal-breaker doesn't hold weight, considering the number of Electron applications already in the repository. This is unfortunately just part of dealing with embedded browsers - compatibility guarantees may rely on specifically tested versions.
Requiring that users rely on unstable code (-git) just to access basic functionality is a very poor trade-off for users, particularly for software that may be critical for user's livelihoods.
- obs-studio-git based on the master branch and use the wrong CEF
- obs-studio-browser based on the latest stable release with the wrong CEF
- obs-studio-tytan652 based on the latest stable release with the right CEF
Also the CEF is only needed as make dependencies.