OBS Studio: Difference between revisions

Using the Virtual Camera: Adding a note on how to modify your v4l2loopback module config to have additional virtual devices such as you might use to use a DSLR as a webcam with gphoto2
Hey (talk | contribs)
added disclaimer for missing hardware acceleration options
 
(2 intermediate revisions by 2 users not shown)
Line 5: Line 5:
Plugins are available from the <code>obs-studio-plugins</code> package set.
Plugins are available from the <code>obs-studio-plugins</code> package set.


They can be installed by either wrapping the package with <code>wrapOBS</code>:
They can be installed by using either the [[NixOS]] or [[Home Manager]] module:


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
environment.systemPackages = [
{ config, pkgs, ... }:
  (pkgs.wrapOBS {
{
  programs.obs-studio = {
    enable = true;
 
    # optional Nvidia hardware acceleration
    package = (
      pkgs.obs-studio.override {
        cudaSupport = true;
      }
    );
 
     plugins = with pkgs.obs-studio-plugins; [
     plugins = with pkgs.obs-studio-plugins; [
       wlrobs
       wlrobs
       obs-backgroundremoval
       obs-backgroundremoval
       obs-pipewire-audio-capture
       obs-pipewire-audio-capture
      obs-vaapi #optional AMD hardware acceleration
      obs-gstreamer
      obs-vkcapture
     ];
     ];
   })
   };
];
}
</syntaxhighlight>
</syntaxhighlight>


or using [[Home Manager]]:
or by wrapping the package with <code>wrapOBS</code>:


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">environment.systemPackages = [
{ config, pkgs, ... }:
   (pkgs.wrapOBS {
{
   programs.obs-studio = {
    enable = true;
     plugins = with pkgs.obs-studio-plugins; [
     plugins = with pkgs.obs-studio-plugins; [
       wlrobs
       wlrobs
       obs-backgroundremoval
       obs-backgroundremoval
       obs-pipewire-audio-capture
       obs-pipewire-audio-capture
      obs-vaapi #optional AMD hardware acceleration
      obs-gstreamer
      obs-vkcapture
     ];
     ];
   };
   })
}
];</syntaxhighlight>'''Package collision''': Including both <code>obs-studio</code> and <code>(pkgs.wrapOBS {...</code> in <code>environment.systemPackages</code> will result in a package collision; if plugins are needed, only include the "wrapped" version, which sets the plugins directory to include Nix-managed plugins (see [https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/video/obs-studio/wrapper.nix pkgs/applications/video/obs-studio/wrapper.nix].
</syntaxhighlight>


Including both <code>obs-studio</code> and <code>(pkgs.wrapOBS {...</code> in <code>environment.systemPackages</code> will result in a package collision; if plugins are needed, only include the "wrapped" version, which sets the plugins directory to include Nix-managed plugins (see [https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/video/obs-studio/wrapper.nix pkgs/applications/video/obs-studio/wrapper.nix].
'''Missing hardware acceleration''': Sometimes you need to set "Output Mode" to Advanced in settings Output tab to see the hardware accelerated Video Encoders options.


=== Using the Virtual Camera ===
=== Using the Virtual Camera ===


The virtual camera requires the <code>v4l2loopback</code> [[Linux kernel#Custom kernel modules|kernel module]] to be installed, a loopback device configured, and polkit enabled so OBS can access the virtual device:
The virtual camera requires the <code>v4l2loopback</code> [[Linux kernel#Custom kernel modules|kernel module]] to be installed, a loopback device configured, and polkit enabled so OBS can access the virtual device.


<syntaxhighlight lang="nix">
This can be done in NixOS with:<syntaxhighlight lang="nixos">
programs.obs-studio.enableVirtualCamera = true;
</syntaxhighlight>Or by setting the kernel options manually, this is useful if you need to add an additional loopback device as shown below:<syntaxhighlight lang="nix">
{ config, ... }:
{ config, ... }:
{
{