akvirtualcamera icon indicating copy to clipboard operation
akvirtualcamera copied to clipboard

[MacOS] Virtual cameras do not appear in applications but clients appear in list

Open mmase opened this issue 2 years ago • 4 comments

Summary

AkVCamManager clients reveals a list of clients supposedly utilizing the virtual camera. However, these clients do not list the virtual camera in their list of available cameras.

Your Environment

  • akvirtualcamera inormation: 9.1.0
  • Operating System information: MacOS 12.3.1 M1/arm64

mmase avatar Apr 21 '22 22:04 mmase

Which programs did you tested? also, if the app is listed, it means that the plugin was loaded by the app, maybe you forgot to configure something.

hipersayanX avatar Apr 22 '22 16:04 hipersayanX

I second this; my environment is described below, roughly.

TL;DR it is noteworthy that OBS Studio Virtual Device is at least being shown in apps (couldn't make it work though).

Env

I use nix for most of the stuff

macOS details:

% uname -a
Darwin airstation.local 22.6.0 Darwin Kernel Version 22.6.0: Wed Jul  5 22:22:52 PDT 2023; root:xnu-8796.141.3~6/RELEASE_ARM64_T8103 arm64
% uname -a
% sw_vers
ProductName:            macOS
ProductVersion:         13.5
BuildVersion:           22G74

Build


nix-shell -p darwin.apple_sdk.frameworks.CoreMediaIO stdenv cmake ninja
cd <repo>
mkdir build && cd build
cmake -G Ninja ..
ninja

Install

# sudo implied

set -e
set -o pipe fail

cmiodalroot=/Library/CoreMediaIO/Plug-Ins/DAL
daemonsroot=/Library/LaunchDaemons
name=AkVirtualCamera.plugin
svcname=org.webcamoid.cmio.AkVCam.Assistant

mkdir -p $cmiodalroot

ln -sf "<repo>/build/build/$name" $cmiodalroot/$name

cat <<EOF > $daemonsroot/$svcname.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>$svcname</string>
        <key>MachServices</key>
        <dict>
                <key>$svcname</key>
                <true/>
        </dict>
        <key>ProgramArguments</key>
        <array>
                <string>$cmiodalroot/$name/Contents/Resources/AkVCamAssistant</string>
                <string>--timeout</string>
                <string>300.0</string>
        </array>
        <key>StandardErrorPath</key>
        <string>/var/log/AkVCamAssistant.log</string>
        <key>StandardOutPath</key>
        <string>/var/log/AkVCamAssistant.log</string>
</dict>
</plist>
EOF

launchctl bootstrap system $daemonsroot/$svcname.plist
launchctl kickstart -k system/$svcname

Dumbest setup

export PATH="/Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin/Contents/Resources/AkVCamManager:$PATH"

% AkVCamManager add-device -i mycam mycam
Device created as mycam
% AkVCamManager devices
+--------+-------------+
| Device | Description |
+--------+-------------+
| mycam  | mycam       |
+--------+-------------+
% AkVCamManager set-picture ~/Desktop/screenshot\ 2023-07-27\ at\ 22.20.02.jpeg mycam
% AkVCamManager picture mycam
/Users/ic/Desktop/screenshot 2023-07-27 at 22.20.02.jpeg

OBS device i̶s̶ ̶s̶h̶o̶w̶n̶!̶ ̶H̶m̶.̶.̶.̶

just works fine with csrutil enable --without fs

W̶h̶i̶l̶e̶ ̶t̶r̶y̶i̶n̶g̶ ̶t̶o̶ ̶m̶a̶k̶e̶ ̶i̶t̶ ̶w̶o̶r̶k̶ ̶w̶i̶t̶h̶ ̶O̶B̶S̶ ̶(̶f̶a̶i̶l̶e̶d̶ ̶f̶o̶r̶ ̶n̶o̶w̶,̶ ̶b̶u̶t̶ ̶I̶ ̶d̶i̶d̶n̶'̶t̶ ̶s̶p̶e̶n̶d̶ ̶t̶o̶o̶ ̶m̶u̶c̶h̶ ̶t̶i̶m̶e̶)̶,̶ ̶O̶B̶S̶ ̶d̶e̶v̶i̶c̶e̶ ̶i̶s̶ ̶_̶s̶h̶o̶w̶n̶_̶ ̶i̶n̶ ̶a̶p̶p̶s̶ ̶(̶b̶u̶t̶ ̶d̶o̶e̶s̶n̶'̶t̶ ̶w̶o̶r̶k̶ ̶t̶h̶e̶r̶e̶)̶ ̶ ̶T̶e̶s̶t̶e̶d̶ ̶a̶s̶ ̶p̶e̶r̶ ̶O̶B̶S̶ ̶i̶n̶s̶t̶r̶u̶c̶t̶i̶o̶n̶s̶,̶ ̶w̶i̶t̶h̶ ̶r̶e̶s̶i̶g̶n̶i̶n̶g̶ ̶a̶p̶p̶s̶,̶ ̶e̶v̶e̶n̶t̶u̶a̶l̶l̶y̶ ̶e̶n̶d̶e̶d̶ ̶w̶i̶t̶h̶ ̶a̶l̶l̶ ̶t̶h̶e̶ ̶w̶a̶y̶ ̶d̶i̶s̶a̶b̶l̶i̶n̶g̶ ̶S̶I̶P̶ ̶a̶n̶d̶ ̶c̶o̶d̶e̶ ̶s̶i̶g̶n̶i̶n̶g̶ ̶c̶h̶e̶c̶k̶s̶ ̶(̶m̶a̶y̶b̶e̶ ̶n̶o̶w̶ ̶i̶t̶'̶s̶ ̶a̶ ̶p̶r̶o̶b̶l̶e̶m̶ ̶o̶n̶ ̶i̶t̶s̶ ̶o̶w̶n̶ ̶-̶ ̶I̶'̶m̶ ̶n̶o̶t̶ ̶s̶u̶r̶e̶)̶

ink-splatters avatar Jul 27 '23 22:07 ink-splatters