design icon indicating copy to clipboard operation
design copied to clipboard

RFM: Virtual Camera Placeholder Image Configuration

Open gxalpha opened this issue 1 year ago • 7 comments

(RFM: "Request for Mockup")

End goal

The placeholder image (the picture shown by the virtual camera when the virtual camera is inactive) should be configurable by the user. Not everyone wants the crossed out OBS logo (the current placeholder image) to show when their virtual camera is inactive.

Current alternatives

  • On Windows, it is possible to change the default placeholder image by overwriting its file in the virtualcam installation, which gets reset on every OBS update. There is an open pull request to define a location for the user to be able to put a placeholder image file at %APPDATA%\obs-studio\plugin_config\win-dshow\placeholder.png (see #4446).
  • On macOS 11 and 12, it's currently possible to replace the placeholder image by adding an image to ~/Library/Application Support/obs-studio/plugin_config/mac-virtualcam/placeholder.png. This workflow is far from ideal, as
  • On macOS 13 and newer, it's not possible to replace the placeholder file other than by recompiling OBS and the CMIO camera extension.
  • Unfortunately I'm not aware of the situation on Linux, but at least with V4L2 there might not even be a placeholder? Other people know better than me.

Other considerations

The actual implementation will differ wildly on the different operating systems. It should be expected that different implementations will happen at different times (or potentially never? See the note on Linux above)

Current ideas

We have a virtual camera settings dialog, it might make sense to put the placeholder selection there.

Current dialog: image

gxalpha avatar Jan 16 '24 11:01 gxalpha

Can confirm that on Linux (at least, ubuntu 22.04, but I'm pretty sure it's the same for all), there is no need for a placeholder, as the virtual camera does not exist as a device until it is started in obs. As such it's not possible for it to be in a state where it's selectable as input by other programs, but does not receive video from obs.

Penwy avatar Jan 16 '24 12:01 Penwy

We have a virtual camera settings dialog, it might make sense to put the placeholder selection there.

Can you share a screenshot of that dialog in this issue?

GeorgesStavracas avatar Jan 16 '24 12:01 GeorgesStavracas

Can you share a screenshot of that dialog in this issue?

Current dialog (now also added to the original post): image It's accessed via the gear icon next to the "Start Virtual Camera" button in the controls dock: image

For testing I added this UI, which may or may not be a starting point: image

gxalpha avatar Jan 16 '24 12:01 gxalpha

The first row has the following options:

  • Program
  • Preview
  • Scene
  • Source

Here's a tentative mockup:

Virtual camera (1)

GeorgesStavracas avatar Jan 16 '24 20:01 GeorgesStavracas

Latest iteration:

Image

In the eventual case that the floating buttons aren't feasible in Qt, a menu button might be the solution:

Image

GeorgesStavracas avatar Jan 16 '24 22:01 GeorgesStavracas

This is ready for implementation. The Penpot mockups can be found here.

GeorgesStavracas avatar Jan 16 '24 22:01 GeorgesStavracas