diff --git a/modules/home/stream-tools/default.nix b/modules/home/stream-tools/default.nix index bfc7c05..54afeec 100644 --- a/modules/home/stream-tools/default.nix +++ b/modules/home/stream-tools/default.nix @@ -16,11 +16,19 @@ in { config = mkIf cfg.enable { programs.obs-studio = { enable = true; - plugins = [ pkgs.obs-studio-plugins.droidcam-obs ]; + plugins = with pkgs.obs-studio-plugins; [ + wlrobs + obs-backgroundremoval + obs-pipewire-audio-capture + obs-vaapi #optional AMD hardware acceleration + obs-gstreamer + obs-vkcapture + pkgs.my-namespace.droidcam-obs # Custom override with FFmpeg 6 + ]; }; home = { packages = with pkgs; [ - # obs-studio + config.programs.obs-studio.finalPackage droidcam ]; }; diff --git a/packages/droidcam-obs/default.nix b/packages/droidcam-obs/default.nix new file mode 100644 index 0000000..bfdced0 --- /dev/null +++ b/packages/droidcam-obs/default.nix @@ -0,0 +1,46 @@ +{ + lib, + pkgs, + stdenv, + fetchurl, + autoPatchelfHook, + namespace, + ... +}: + +stdenv.mkDerivation rec { + pname = "droidcam-obs"; + version = "2.4.1"; + + src = fetchurl { + url = "https://github.com/dev47apps/droidcam-obs-plugin/releases/download/${version}/droidcam_obs_${version}_linux_x86_64.zip"; + sha256 = "sha256-18IjC3+WR5XLo464RuwAtWRNSpQcsnarXu56CrxCMhM="; + }; + + nativeBuildInputs = [ pkgs.unzip autoPatchelfHook ]; + + buildInputs = with pkgs; [ + stdenv.cc.cc.lib + obs-studio + ]; + + dontBuild = true; + + installPhase = '' + runHook preInstall + mkdir -p $out/lib/obs-plugins + mkdir -p $out/share/obs/obs-plugins/droidcam-obs + + cp bin/64bit/*.so $out/lib/obs-plugins/ + cp -r data/* $out/share/obs/obs-plugins/droidcam-obs/ + + runHook postInstall + ''; + + meta = with lib; { + description = "DroidCam OBS Plugin - Use your phone as a camera in OBS (FFmpeg 7 compatible)"; + homepage = "https://www.dev47apps.com/obs/"; + license = licenses.unfree; + platforms = platforms.linux; + }; +}