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
Task Type Feature Request
Category Packages
Status Closed
Assigned To Jonathan Steel (jsteel)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 21
Private No

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
Comment by Jonathan Steel (jsteel) - Monday, 06 April 2020, 16:18 GMT
It isn't included by upstream which is why it hasn't appeared in the Arch package, but I've looked at what's needed to include it and I'll give it a go and test it. It looks like obs-studio-git already does this so give that a go if you haven't already.
Comment by Jonathan Steel (jsteel) - Monday, 06 April 2020, 18:10 GMT
From what I can see, it would mean moving AUR package cef-minimal-3770 to [community]. I'm not sure I see that happening.
Comment by Darrell (denns) - Tuesday, 04 May 2021, 07:45 GMT
  • Field changed: Percent Complete (100% → 0%)
Is it time to revisit this? OBS is now using current CEF. Their wiki build guide currently links to version 87.1.12+g03f9336+chromium-87.0.4280.88. The obs-studio-git aur package has switched from cef-minimal-3770 to cef-minimal. Could we get cef-minimal moved to community so we can build against it?
Comment by Trystan Mata (tytan652) - Tuesday, 11 May 2021, 09:14 GMT
cef-minimal will not always the right version to use with OBS for building
Even the 3770 is the wrong one for 26 version, it is the one needed for Windows build
Comment by Philipp (hollunder) - Saturday, 15 May 2021, 22:15 GMT
I just come from a wild goose chase as to how to get a browser source in OBS and getting recommended long outdated packages.
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
Comment by Frederik “Freso” S. Olesen (Freso) - Sunday, 16 May 2021, 13:02 GMT
https://github.com/obsproject/obs-browser/issues/219#issuecomment-841800229 :
> 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 ?
Comment by Philipp (hollunder) - Monday, 17 May 2021, 10:22 GMT
I don't quite understand your sentence wrt. 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.
Comment by Jonathan Steel (jsteel) - Monday, 17 May 2021, 13:30 GMT
What I would want to avoid is finding that the latest OBS (or CEF) has issues with this add-on at some point down the line. At that point the choice would be 1) hold the OBS/CEF version back or 2) drop the add-on. Neither of which is a nice option. My gut feeling is they should provide this as part of the OBS release if it is seriously considered a feature of OBS, or make it so that it can be added-on without a rebuild. obs-git is a good choice if users want to play around with it. I will likely close this as "won't implement" unless there is a compelling reason to package this, rather than using obs-git. I get the feeling this would just be a "nice to have" to avoid obs-git build times?
Comment by Philipp (hollunder) - Tuesday, 18 May 2021, 14:40 GMT
As far as I understand it is now part of OBS proper.

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.
Comment by Trystan Mata (tytan652) - Tuesday, 18 May 2021, 15:19 GMT
When compiling obs-studio with obs-browser it provide browser source but also provides browser docks
(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.
Comment by Jonathan Steel (jsteel) - Sunday, 30 May 2021, 08:39 GMT
I don't like the idea of creating a specific CEF package just for OBS. Either I would want to use the latest release, or leave it. And if they advise against using the latest then this really is a problem. I still think for those that want to use this plugin, the best option is to use obs-git.
Comment by Peter Fern (pdf) - Sunday, 06 June 2021, 09:15 GMT
This is very important functionality.

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.
Comment by Trystan Mata (tytan652) - Sunday, 06 June 2021, 09:22 GMT
There is three AUR recipe who provide OBS with obs-browser

- 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.

Loading...