Giter Club home page Giter Club logo

akvirtualcamera's Introduction

akvirtualcamera, virtual camera for Mac and Windows

akvirtualcamera is virtual camera implemented as a DirectShow filter in Windows, and as a CoreMediaIO plugin in Mac.

Features

  • Supports emulated camera controls in capture devices (brightness, contrast, saturation, etc.).
  • Configurable default picture in case no input signal available.

Build and Install

Visit the wiki for a comprehensive compile and install instructions.

Downloads

Download Daily Build Total Downloads

Donations

If you are interested in donating to the project you can look at all available methods in the donations page.

Status

Linux MinGW Mac Windows MSYS Windows MSVC
Build status Build status Codacy Badge Project Stats

Reporting Bugs

๐Ÿ‘‰ Become a sponsor now and receive exclusive support. ๐Ÿ‘ˆ

akvirtualcamera's People

Contributors

hipersayanx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

akvirtualcamera's Issues

Overall low performance: as expected or not?

I'm currently experimenting with your AkVirtualCamera under Windows 10 and have to say it looks like a very promising solution. But I'm facing performance issues and I'm not sure whether I should expect them or not. Let me describe my setup:

I've compiled all parts from source as of today (2021-05-30) and setup the devices with the following INI-file.

[Cameras]

cameras/size          = 2

cameras/1/description = Ak Virtual Camera 1
cameras/1/formats     = 1, 2, 3, 4

cameras/2/description = Ak Virtual Camera 2
cameras/2/formats     = 1, 2, 3, 4

[Formats]

formats/size          = 4

formats/1/format      = RGB24, YUY2
formats/1/width       = 480
formats/1/height      = 360
formats/1/fps         = 6, 12, 24, 30, 48, 60

formats/2/format      = RGB24, YUY2
formats/2/width       = 640
formats/2/height      = 480
formats/2/fps         = 6, 12, 24, 30, 48, 60

formats/3/format      = RGB24, YUY2
formats/3/width       = 1280
formats/3/height      = 720
formats/3/fps         = 6, 12, 24, 30, 48, 60

formats/4/format      = RGB24, YUY2
formats/4/width       = 1920
formats/4/height      = 1080
formats/4/fps         = 6, 12, 24, 30, 48, 60

Now just copying the frames from a Logitech BRIO 4K (in 720p30 mode) to AkVCamVideoDevice0 with the following command works as expected:

./ffmpeg.exe \
    -f dshow -rtbufsize 200M -s 1280x720 -r 30 -i video="BRIO 4K Stream Edition" \
    -f rawvideo -map 0:v -pix_fmt rgb24 -s 1280x720 - | \
./AkVCamManager.exe stream AkVCamVideoDevice0 \
    RGB24 1280 720

FFmpeg reports that it is able to drive 30fps and I see no real delay in the resulting video device's output. Great! But when I try to shuffle frames in a 1080p30 mode with the following command, FFmpeg is only able to achieve just 25 fps on average and after a few seconds (as expected as the input still comes with 30 fps) the FFmpeg "rtbufsize" is full and FFmpeg complains and the virtual camera device's output shows more and more delay:

./ffmpeg.exe \
    -f dshow -rtbufsize 200M -s 1920x1080 -r 30 -i video="BRIO 4K Stream Edition" \
    -f rawvideo -map 0:v -pix_fmt rgb24 -s 1920x1080 - | \
./AkVCamManager.exe stream AkVCamVideoDevice0 \
    RGB24 1920 1080

This is on an average gaming PC where OBS Studio and ManyCam and other video tools are running regularily and are able to shuffle around 1080p30 without problems. So, either FFmpeg here is the bottleneck or perhaps AkVCamManager stream itself. Do you have any ideas what can cause such a low overall performance? Do you have any ideas how I speed up the processing?

PS: The output of AkVCamManager.exe supported-formats -i shows just "RGB24" but I've nevertheless tried to feed YUY2 from FFmpeg to AkVCamManager. This way FFmpeg needed no conversion was able to process faster, but the result is that the resulting video works in tools like SplitCam but not in Microsoft Teams. I guess feeding YUY2 is actually not intended, even it looks it partly works?

AkVCamManager command not found

Summary

Just installed binary for macOS and followed the steps in the build wiki to for lauchctl in order to launch the service

Current Behavior

In my process on one minute I see the AkVCAMAssistant and the other it's gone.
Plus when I try the command AkVCamManager on the command line it's not found

Expected Behavior

Shouldn't all command line commands be automatically recogniised after installation?
Plus, this should be working as stand-alone without webcamoid right?

Steps to Reproduce

  1. Install .pkg binary from latest stable realease
  2. execute sudo launchctl enable system/org.webcamoid.cmio.AkVCam.Assistant
  3. execute sudo launchctl bootstrap system /Library/LaunchDaemons/org.webcamoid.cmio.AkVCam.Assistant.plist
  4. type AkVCamManager in CLI, not found return error

I think the real issue is with step 2 since executing it and double checking the running processes doesn't show up AkVCam.Assistant. Any ideas what's going on here?

Also, every time step 3 is executed I get the following message:

sudo launchctl bootstrap system /Library/LaunchDaemons/org.webcamoid.cmio.AkVCam.Assistant.plist
/Library/LaunchDaemons/org.webcamoid.cmio.AkVCam.Assistant.plist: service already bootstrapped
Bootstrap failed: 37: Operation already in progress

Your Environment

  • akvirtualcamera inormation: (9.1.0) (mac)
  • Operating System information: (macOS) (11.5.1 and Big Sur) (intel)

Webcam not responsive

I have been using this code with the generate random noise on the Camera. It works but only when I look at it through cmd. If I go into a browser and try to see the cam it will show but as soon as I run this project, the camera view won't work at all, no matter what anymore. I have been using this website (https://webcamtests.com/) to test the camera as Zoom can't seem to see the camera, it added a "Virtual Camera" but it does nothing, it just shows feed from another camera and the camera doesn't even have that name anyway.

Here is the dump:
https://justpaste.it/21w5d

Here is the code:
https://justpaste.it/28hdo

Apparently constantly crashes in the background...

When webcamoid is not running, apparently AkVCamAssistant.exe is, and is crashing multiple times a day.
image

Clicking a random one gives this:
image

After some point, they all changed slightly, which I suspect is a change in windows but I'm not quite sure (after a search it seems the bucket id is Microsoft's way of tracking the errors from this specific program):
image

AkVcamManager secretly requires administrator prompt to update

Summary

running AkVcamManager.exe update in non-elevated command prompt fails because of access issues

Current Behavior

normal cmd: AkVcamManager.exe update
image
log file:
image

admin cmd: AkVcamManager.exe update
image
log file:
image

Expected Behavior

At LEAST tell me that it must be run as administrator (btw this is loglevel 7), but preferably make it auto run itself as administrator thus showing the admin prompt

Steps to Reproduce

If akvirtualcamera crashed, try to reproduce the crash several times to be sure where is the problem. Write the steps to reproduce the issue bellow:

  1. normal cmd prompt
  2. add device using AkVcamManager.exe in cmd
  3. AkVcamManager.exe update
  4. check log file it references
  5. oh, it errored! who knew
  6. try with administrator cmd prompt (note: device is still there from before so that must have succeeded i guess)
  7. AkVcamManager.exe update
  8. check log file it references
  9. no error

Suggestions and tips

force the program to show administrator prompt when necessary

Your Environment

  • AkVirtualCamera daily build: (build-info.txt below)
Commit hash: f2ca25c5c8f10df04dbbecefd73fce0e08c18f68
Build log URL: https://travis-ci.org/webcamoid/akvirtualcamera/builds/744660170

NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://www.archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
LOGO=archlinux

Wine Version: wine-5.21
Windows Version: Microsoft Windows 6.1.7601
  • Operating System information: Windows 10 Home 64-bit OS build 19041.630
  • Any other useful information: already listed above

zoom.us can't find virtual camera in Mac

I use the viki's Build and install to install virtual camera.But I can't find the camera in zoom.us.
Following my terminal code:

soda@sodadeiMac Resources % ./AkVCamManager devices
soda@sodadeiMac Resources % ./AkVCamManager load setting.ini 
soda@sodadeiMac Resources % ./AkVCamManager devices
+--------------------+-------------------------+
| Device             | Description             |
+--------------------+-------------------------+
| AkVCamVideoDevice0 | My Other Virtual Camera |
| MyFakeCamera0      | My Virtual Camera       |
+--------------------+-------------------------+
soda@sodadeiMac Resources % ./AkVCamManager update
soda@sodadeiMac Resources % ./AkVCamManager formats MyFakeCamera0
0: YUY2 1280x720 30/1 FPS

and the setting.ini:

[Cameras]
cameras/size = 2

cameras/1/description = My Virtual Camera
cameras/1/formats = 1
cameras/1/id = MyFakeCamera0

cameras/2/description = My Other Virtual Camera
cameras/2/formats = 1, 2

[Formats]
formats/size = 2

formats/1/format = YUY2
formats/1/width = 1280
formats/1/height = 720
formats/1/fps = 30

formats/2/format = RGB24
formats/2/width = 1280
formats/2/height = 720
formats/2/fps = 30

[General]
default_frame = /Users/soda/xcodepoject/akvirtualcamera-master/cmake_build/build/AkVirtualCamera.plugin/Contents/Resources/default.jpg 

Is there anything I missed?

System.OutOfMemory

Hi, I am piping in a stream from ffmpeg to AkVCamManager as follows:

.\ffmpeg.exe -rtsp_transport tcp -i rtsp://10.101.0.100:8554/live -f rawvideo - | .\AkVCamManager.exe stream AkVCamVideoDevice0 RGB24 640 480 30

This constantly uses memory until it runs out and throws the following error:

Program 'AkVCamManager.exe' failed to run: Exception of type 'System.OutOfMemoryException' was thrown.At line:1 char:83

  • ... awvideo - | & 'C:\Program Files\AkVirtualCamera.plugin\x64\AkVCamMana ...
  •             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~.
    

At line:1 char:1

  • .\ffmpeg.exe -rtsp_transport tcp -i rtsp://10.101.0.100:8554/live -f ...
  •   + CategoryInfo          : ResourceUnavailable: (:) [], ApplicationFailedException
      + FullyQualifiedErrorId : NativeCommandFailed
    

Unrecognized target specifier. <service-target>....

Hi, I'm using mac (version 11.4) and trying to follow steps at https://github.com/webcamoid/akvirtualcamera/wiki/Build-and-install

  1. When I run command
launchctl enable system/ org.webcamoid.cmio.AkVCam.Assistant

the output is

Unrecognized target specifier. <service-target> takes a form of <domain-target>/<service-id>.
Please refer to `man launchctl` for explanation of the <domain-target> specifiers.

Please give me some hints to solve this issue. Thank you!

where is the device

Hello,

I created a device as shown below.

  1. What is the path to this device?
  2. I do not see this device under avfoundation list. WebCamoid generated device is visible in the list.
  3. How can I use VLC to open this device and play the contents.

Thanks

$ AkVCamManager add-device "AvailCamera0"
Device created as "AkVCamVideoDevice"0
$ AkVCamManager devices
+----------------------+--------------+
| Device | Description |
+----------------------+--------------+
| "AkVCamVideoDevice"0 | AvailCamera0 |
+----------------------+--------------+

Feature: Pipewire support

As I understand, Pipewire is (going to be) the modern way to support this kind of thing on Linux, which seems nicer than a special kernel module.

I haven't looked enough into how akvirtualcamera or pipewire work to see what that would involved, but perhaps it could/should be supported here.

Forbid other programs to use the virtual camera when already in use

I set two formats: 720p and 480p for my virtual camera. I want to edit source code to forbid getting stream from the same camera when we are already streaming in other format like my real web come does.
I'm not sure if this is possible with DShow. If you think is it possible, could you please suggest class or method to add mutex/if?

Simple example

Hello,

I want to pass OpenCV to a virtual webcamera. Is there a simple example to demonstrate how
it can be done using this software?

Thanks

Non-deterministic creation of devices

I would like to create a Windows application which (with the help of the following batch script AkVCamAssistant.bat and INI file AkVCamAssistant.ini) initially allows the creation of 3 virtual camera devices and later allows to destroy them again:

@echo off
cd /d "%~dp0"

net session >nul 2>&1
if %ERRORLEVEL% GEQ 1 (
    echo ERROR: Administrative rights are required, please re-run this script as Administrator
    goto end
)

set command=%1

if "%command%" == "install" (
    sc query AkVCamAssistant >nul 2>&1
    if not errorlevel 1 (
        echo virtual camera driver already installed
        goto end
    )
    echo installing virtual camera driver
    AkVCamAssistant.exe --install
    timeout /t 2 /nobreak >nul 2>&1
    sc start AkVCamAssistant >nul 2>&1
    timeout /t 2 /nobreak >nul 2>&1
    AkVCamManager.exe load AkVCamAssistant.ini
    AkVCamManager.exe set-picture "%~dp0\camera-placeholder.bmp"
    AkVCamManager.exe update
    goto end
)

if "%command%" == "uninstall" (
    sc query AkVCamAssistant >nul 2>&1
    if errorlevel 1 (
        echo virtual camera driver not installed
        goto end
    )
    echo uninstalling virtual camera driver
    AkVCamManager.exe remove-devices
    AkVCamManager.exe update
    sc stop AkVCamAssistant >nul 2>&1
    timeout /t 2 /nobreak >nul 2>&1
    AkVCamAssistant.exe --uninstall
    timeout /t 2 /nobreak >nul 2>&1
    sc stop AkVCamAssistant >nul 2>&1
    goto end
)

echo USAGE: AkVCamAssistant.bat install
echo USAGE: AkVCamAssistant.bat uninstall
:end
[Cameras]
cameras/size          = 3

cameras/1/description = Ak Virtual Camera 1
cameras/1/formats     = 1, 2, 3, 4

cameras/2/description = Ak Virtual Camera 2
cameras/2/formats     = 1, 2, 3, 4

cameras/3/description = Ak Virtual Camera 3
cameras/3/formats     = 1, 2, 3, 4

[Formats]

formats/size          = 4

formats/1/format      = RGB24, YUY2
formats/1/width       = 480
formats/1/height      = 360
formats/1/fps         = 6, 12, 24, 30, 48, 60

formats/2/format      = RGB24, YUY2
formats/2/width       = 640
formats/2/height      = 480
formats/2/fps         = 6, 12, 24, 30, 48, 60

formats/3/format      = RGB24, YUY2
formats/3/width       = 1280
formats/3/height      = 720
formats/3/fps         = 6, 12, 24, 30, 48, 60

formats/4/format      = RGB24, YUY2
formats/4/width       = 1920
formats/4/height      = 1080
formats/4/fps         = 6, 12, 24, 30, 48, 60

Unfortunately, when running AkVCamAssistant.bat install I always get the three devices, but a AkVCamManager.exe devices shows that the naming of the devices seems to be non-deterministic. Sometimes I get 0/1/2, sometimes 1/2/5, sometimes 1/2/3, etc. In my last attempt I received:

$ ./AkVCamManager.exe devices
+--------------------+---------------------+
| Device             | Description         |
+--------------------+---------------------+
| AkVCamVideoDevice1 | Ak Virtual Camera 1 |
| AkVCamVideoDevice2 | Ak Virtual Camera 2 |
| AkVCamVideoDevice3 | Ak Virtual Camera 3 |
+--------------------+---------------------+

This would be harmless if the other AkVCamManger.exe commands would not expect the device name and instead could also accept the device description (the logical name). As a result, my application first would have to map from the fixed device description to the assigned device names. Especially the AkVCamManager stream command expects the underlying particular assigned device name.

My questions are now:

  1. Is this naming of the devices intended? If I start from scratch (all uninstalled), shouldn't the result be ALWAYS the numbering 0/1/2?
  2. If the assignment of the device names and their numbers is expected to be not fully deterministic, would it be possible to allow the AkVCamManager commands to alternatively also accept the device description and automatically map to the device name? Perhaps if an extra option like -d (for "description") or -m for (for "mapping") is specified, the DEVICE argument is treated as a DESCRIPTION and automatically mapped?

AkVCamManager Remove-Devices Issue

OS: Windows 11 Professional
AkVCam version: 9.1.0

I used the 64 bit version of AkVCamManager/Assistant.

I had created some test devices and then removed them and removed the service.

AkVCamManager remove-devices
AkVCamManager hack set-service-down

After issuing remove-devices I ran
AkVCamManager devices
And AkVCamManager returned empty, so I then removed the service and rebooted.

However, Chrome, Edge, and Firefox still see the test devices. While AkVCamManager and Windows settings continue to report there are no devices. If I plug in real webcam Chrome, Edge, and Firefox will detect it and list it, but it will be removed from the list as soon as I unplug it as I would expect.

Below are some screenshots just to visually confirm what I wrote.

P.S. If anyone knows how I can remove these erroneous devices manually, please let me know.

akv-edge
Screenshot Edge website permissions page.

akv-cmd
Screenshot AkVManager via Windows CMD.

akv-windows-settings
Screenshot Windows 11 Camera Settings

Stream bitmap ( single frame image ) to the virtual device

Hello I looked around and tried a few things.
if I run manually the command it works:

"C:\ffmpeg\bin\ffmpeg.exe" -loop 1 -framerate 1 -i temp.jpg -r 1 -pix_fmt rgb24 -f rawvideo - | "C:\Program Files\AkVirtualCamera\x64\AkVCamManager.exe" stream MyFakeCamera0 RGB24 640 480

In my c# app this is what I do:

cameraProcess= new Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "C:\\Program Files\\AkVirtualCamera\\x64\\AkVCamManager.exe";
startInfo.Arguments = "stream MyFakeCamera0 RGB24 640 480";
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false;
startInfo.CreateNoWindow = true;
cameraProcess.StartInfo = startInfo;
cameraProcess.Start();

And then to send my image to the camera:

Task.Factory.StartNew(async () =>
{
    while(true)
    {
        try
        {
            MemoryStream outputStream = new MemoryStream();
            await FFMpegArguments
            .FromFileInput(Path.Combine(Environment.CurrentDirectory, "temp.jpg"))
            .OutputToPipe(new StreamPipeSink(outputStream), options => options
                .WithFrameOutputCount(1)
                .WithFramerate(1)
                .ForcePixelFormat("rgb24")
                .ForceFormat("rawvideo"))
            .ProcessAsynchronously();
            var data = outputStream.ToArray();
            cameraProcess.StandardInput.BaseStream.Write(data, 0, data.Length);
        }
        catch(Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
        await Task.Delay(1000 / 30);
    }
});

However I really dislike the idea of starting 33 process per second to stream an image.

Then I see my temp.jpg being shown as the virtual camera.

What would be the easiest way to get my bitmap as rgb24 format ( I have no clue how this format actually works ) and write it to the device. ( without using ffmpeg )

Can't start stream

README

Some considerations before doing anything:

  • Search the issues list for similar topics before opening a new one.
  • If you know how to fix the problem, consider doing a pull request instead of opening a new issue.
  • Only report problems in latest and development version. Reporting issues related to older versions will be rejected.
  • Use gist to post logs longer than 1024 characters.
  • akvirtualcamera as project, is not affiliated or endorsed to any distribution, report packaging problems in their respective issue tracker.
  • Respect the templates, we need as much information as possible.
  • Don't open an issue and disappear, we need you at least the first week to clear up missing information.
  • Missing information makes useless and unsolvable an issue report.
  • You are our debbuger, eyes and hands, if an issue is not reproducible then you will be the only person able to solve it.
  • Take a seat and wait for your turn, as many others that has their issues open, or much better try fixing it your self and collaborate with the solution ๐Ÿ˜„

Choose one of the templates bellow that fit better your issue.

Reporting a problem?

Summary

Write here a brief description of the problem.

Current Behavior

Describe the problem the best as you can, don't omit information.

Expected Behavior

How it should have work?

Steps to Reproduce

If akvirtualcamera crashed, try to reproduce the crash several times to be sure where is the problem. Write the steps to reproduce the issue bellow:

  1. Open this
  2. Click that
  3. Drag those
  4. ...

Suggestions and tips

How would you solve the problem?

Your Environment

  • akvirtualcamera inormation: (version) (architecture)
  • Operating System information: (name) (numeric version and codename if applied) (architecture)
  • Any other useful information: (logs, gdb backtrace, valgrind logs, screenshots, hardware, etc.)

Want a new feature?

Describe your idea the best as you can, include sketches, mockups and diagrams if required.
Be patient, take in mind that there may be other priorities. Your idea will be accepted if fit in project goals.

Questinons and other matters?

Go ahead!

Sending frames from python

Hello! Many thanks for the excellent library!

I have a question: is there a way to send frames from python to your virtual cam?

Small patch for compiling under Windows 10

In order to be get the latest code of AkVirtualCamera as of yesterday to compile under Windows 10 with latest Visual Studio 16 2019 SDK, I had to apply the following small patch, because the available std::signbit() has no variant which is defined on int64_t. The long double was the closest floating point type which looks acceptable, as no integral type like long long was accepted. Please double check this, but I wanted to let you know that such a patch was needed to get AkVirtualCamery building under Windows 10...

--- VCamUtils/src/fraction.cpp
+++ VCamUtils/src/fraction.cpp
@@ -151,7 +151,7 @@ bool AkVCam::Fraction::isInfinity() const

 int AkVCam::Fraction::sign() const
 {
-    return std::signbit(this->d->m_num) == std::signbit(this->d->m_den)? 1: -1;
+    return std::signbit((long double)this->d->m_num) == std::signbit((long double)this->d->m_den)? 1: -1;
 }

 bool AkVCam::Fraction::isFraction(const std::string &str)

AkVirtualCamera replaces a different virtual camera and renders it unusable

  • Use gist to post logs longer than 1024 characters.

Reporting a problem

Summary

I've never had any issues using Snap Camera as a camera input. However, I've just figured out that every time I install AkVirtualCamera, every program including Webcamoid, Chrome, Discord, OBS, etc., Snap Camera stops being recognized as a Video Capture Device, and I have no option to select it as my input source. I have uninstalled and reinstalled Webcamoid, AkVirtualCamera, and Snap Camera. I have cleared my cache from Snap Camera, restarted my computer, and restarted all of the programs several times (making sure to open Snap Camera first).

All of the other applications that I've previously used Snap Camera as a camera source with no problem before now are not displaying it as a camera option.

Through process of elimination, I've realized that AkVirtualCamera is the reason Snap Camera stops being discoverable as a source. The second I install the AkVirtualCamera files onto my computer, even if the virtual camera itself isn't installed in Webcamoid, Snap Camera stops being recognized.

Please note that I am a total beginner with developing. My coding knowledge is extremely minimal, and even getting AkVCamera to work the first time was an overwhelmingly complex process for me. If you know of any possible fixes to run both AkVCamera and Snap Camera at the same time both as virtual cameras, I would be super appreciative! Any responses that are as explained as basic steps-by-step instructions would be the most helpful to me :') If possible, please try to explain any suggestions at as much of an elementary-level as possible, I would really appreciate it! Thank you in advance!

Current Behavior

Once I install AkVirtualCamera as a virtual camera, Snap Camera stops functioning as an availably virtual camera input source in other programs.

Expected Behavior

I would expect to be able to use both Snap Camera and AkVirtualCamera as Virtual Camera output sources simultaneously.

Steps to Reproduce

If akvirtualcamera crashed, try to reproduce the crash several times to be sure where is the problem. Write the steps to reproduce the issue bellow:

  1. Download webcamoid-installer-mac-9.0.0-x86_64.pkg
  2. Install Webcamoid
  3. Open Webcamoid
  4. Click the gear > "Video" > "Sources" > "+ Add source"
  5. Select "Snap Camera", it opens/displays my Snap Camera virtual camera with filters/etc. fine
  6. Download akvirtualcamera-mac-9.1.0.pkg
  7. Download the [Source code .zip] (https://github.com/webcamoid/akvirtualcamera/archive/refs/tags/9.1.0.zip)
  8. Extract the Source code .zip
  9. Download and install Xcode Command Line Tools
  10. Open Terminal
  11. Enter:
    make -C /Applications/akvirtualcamera/akvirtualcamera-build-directory
  12. Enter:
    ln -s /Applications/AkVirtualCamera/AkVirtualCamera.plugin /Library/CoreMediaIO/Plug-Ins/DAL/AkVirtualCamera.plugin
  13. Enter:
cat << EOF > /Library/LaunchDaemons/org.webcamoid.cmio.AkVCam.Assistant.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>org.webcamoid.cmio.AkVCam.Assistant</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Applications/AkVirtualCamera/AkVirtualCamera.plugin/Contents/Resources/AkVCamAssistant</string>
            <string>--timeout</string>
            <string>300.0</string>
        </array>
        <key>MachServices</key>
        <dict>
            <key>org.webcamoid.cmio.AkVCam.Assistant</key>
            <true/>
        </dict>
        <key>StandardOutPath</key>
        <string>/tmp/AkVCamAssistant.log</string>
        <key>StandardErrorPath</key>
        <string>/tmp/AkVCamAssistant.log</string>
    </dict>
</plist>
EOF

At this point, it appears that AkVirtualCamera has been installed, as it is available as a Webcamoid "Video Output" option. This is also the point that Snap Camera stops functioning as a "Video Input" option across every program on my computer.

Your Environment

  • akvirtualcamera information: 9.1.0 Mac
  • Operating System information: macOS Monterey Version 12.6, Intel Processor
  • Any other useful information: Snap Camera 1.20.0 (Newest update)

Again, I am very new to this kind of development, and I'm sure I made multiple obvious errors. I would really appreciate patience and understanding as I'm still trying to learn. Thank you in advance for any help you can provide!

how to install dll after build on win10 x64

i build the source ver9.0 with cmake --build. there are three binfile.
i run akvcamassistant.exe -i,then akvcammanager.exe add device&add format&update.no virtual cemera display in the videocam soft.
i try to regsvr32 akvirtualcamera.exe,but none output result.
i try the daily installer,all is ok.
i want to known how could i make the exe,dll worked fine with out installer?thanks

Virtual Camera "Can't Start Stream" in Mac

Summary

Hi, I build the AkVirtualCamera from source. I followed the wiki step by step. I added device, started the service, added format to the camera. Now, my camera is detected by zoom.us. I can use set-picture command to set default png etc. However, there is a problem with the ipcbridge that doesnt let me stream using ffmpeg.

Current Behavior

I can't make stream using ffmpeg. I set log level 7 to gain more information. Here is a sample of my output even in the simplest command:

./AkVirtualCamManager devices
177 debug: bool AkVirtualCamera::IpcBridge::registerPeer(bool)
189 debug: Requesting service.
199 debug: Setting event handler.
208 debug: Requesting port.
285 debug: FAILED

and device information normally

Expected Behavior

I expect program to work properly.

Your Environment

  • akvirtualcamera inormation: main branch
  • Operating System information: MacOS Monterey 12.6

[Question] Outputting OBS to akvirtualcam MacOS

Questinons and other matters?

I am trying to output OBS to the akvirtualcam so I can have another virtual camera for obs. I am having trouble figuring out how to do ffmpeg -i video.webm -pix_fmt rgb24 -f rawvideo - | AkVCamManager stream AkVCamVideoDevice0 RGB24 480 360 in OBS ffmpeg output settings.

I am on MacOS Monterey and obs 27.1.3 and have downloaded the most recent version of akvirtualcamera.

Sorry if this is the wrong way/place to post this kind of question, please direct me to the proper place if so.

Can I send some pull requests?

Is the Manager folder the sample application? What do you have in mind for it? Would you mind if I try to implement something?

Also, it would be good to have CMake support too, Qt itself is switching to cmake and it will be used to build Qt6.

Unable to find virtual camera on M1 Mac (Chrome, Firefox, Zoom)

Summary

After installing the latest AkVirtualCamera .pkg on my M1 Mac and following the configuration guide, I am unable to see the virtual camera in any client applications.

Current Behavior

In the browser, I use https://webcamtests.com/ to enumerate available cameras. I only see my existing cameras here, I don't see the new virtual camera. I have tested this in the latest Chrome and Firefox. I don't see the new virtual camera in Zoom either.

Expected Behavior

I should see some virtual camera listing appear here, at least with the default "no signal" dots pattern.

Steps to Reproduce

  1. Download and install the 9.1.0 .pkg
  2. Open a terminal
  3. Configure a virtual camera as follows:
$ alias AkVCamManager=/Applications/AkVirtualCamera/AkVirtualCamera.plugin/Contents/Resources/AkVCamManager

$ AkVCamManager add-device "AkVirtualCamera"
Device created as AkVCamVideoDevice0

$ AkVCamManager add-format AkVCamVideoDevice0 YUY2 640 480 30

$ AkVCamManager update
  1. Restart Chrome and navigate to https://webcamtests.com/ granting permission as needed
  2. Inspect dropdown of detected devices

Suggestions and tips

๐Ÿคทโ€โ™‚๏ธ

Your Environment

  • akvirtualcamera inormation: 9.1.0 for Mac
  • Operating System information: MacOS 12.6.1 Monterey, Apple M1 Pro
  • Any other useful information: (below)

I have other virtual camera applications installed such as OBS Virtual Camera, I'm not sure if that would cause some conflict.

Output of AkVCamManager dump
<?xml version="1.0" encoding="UTF-8" ?>
<info>
    <devices>
        <device>
            <id>AkVCamVideoDevice0</id>
            <description>AkVirtualCamera</description>
            <formats>
                <format>
                    <pixel-format>YUY2</pixel-format>
                    <width>640</width>
                    <height>480</height>
                    <fps>30/1</fps>
                </format>
                <format>
                    <pixel-format>RGB32</pixel-format>
                    <width>640</width>
                    <height>480</height>
                    <fps>30/1</fps>
                </format>
                <format>
                    <pixel-format>RGB24</pixel-format>
                    <width>640</width>
                    <height>480</height>
                    <fps>30/1</fps>
                </format>
            </formats>
            <controls>
                <control>
                    <id>hflip</id>
                    <description>Horizontal Mirror</description>
                    <type>Boolean</type>
                    <minimum>0</minimum>
                    <maximum>1</maximum>
                    <step>1</step>
                    <default-value>0</default-value>
                    <value>0</value>
                </control>
                <control>
                    <id>vflip</id>
                    <description>Vertical Mirror</description>
                    <type>Boolean</type>
                    <minimum>0</minimum>
                    <maximum>1</maximum>
                    <step>1</step>
                    <default-value>0</default-value>
                    <value>0</value>
                </control>
                <control>
                    <id>scaling</id>
                    <description>Scaling</description>
                    <type>Menu</type>
                    <minimum>0</minimum>
                    <maximum>1</maximum>
                    <step>1</step>
                    <default-value>0</default-value>
                    <value>0</value>
                    <menu>
                        <item>Fast</item>
                        <item>Linear</item>
                    </menu>
                </control>
                <control>
                    <id>aspect_ratio</id>
                    <description>Aspect Ratio</description>
                    <type>Menu</type>
                    <minimum>0</minimum>
                    <maximum>2</maximum>
                    <step>1</step>
                    <default-value>0</default-value>
                    <value>0</value>
                    <menu>
                        <item>Ignore</item>
                        <item>Keep</item>
                        <item>Expanding</item>
                    </menu>
                </control>
                <control>
                    <id>swap_rgb</id>
                    <description>Swap RGB</description>
                    <type>Boolean</type>
                    <minimum>0</minimum>
                    <maximum>1</maximum>
                    <step>1</step>
                    <default-value>0</default-value>
                    <value>0</value>
                </control>
            </controls>
        </device>
    </devices>
    <input-formats>
        <pixel-format>RGB24</pixel-format>
    </input-formats>
    <default-input-format>RGB24</default-input-format>
    <output-formats>
        <pixel-format>RGB32</pixel-format>
        <pixel-format>RGB24</pixel-format>
        <pixel-format>UYVY</pixel-format>
        <pixel-format>YUY2</pixel-format>
    </output-formats>
    <default-output-format>YUY2</default-output-format>
    <clients>
    </clients>
    <picture></picture>
    <loglevel>-1</loglevel>
</info>

Other things I have tried

  • I tried building and installing from source, with the same result
  • I verified that sudo launchctl list includes an entry for org.webcamoid.cmio.AkVCam.Assistant
  • I tried adding another format set to RGB24 per the suggestion in #36
  • I tried changing the fallback picture with AkVCamManager set-picture
  • I tried restarting the browser and Zoom applications
  • I checked the output of AkVCamManager clients while enumerating media devices in the browser, I don't see anything in the output

Question for collaboration

Hello,

I would like to apologize to contacting you like this but could not find any mail anywhere.
We are small team who is developing software for Controlling Online Exams. Program consist of two main parts - Capture and Analyze. Capture program is installed on client pc and it is in focus her.
We did all coding in c++ on Windows platform with QT UI. Our problem is MAC support, as we donโ€™t have much experience with it. So my question would you be interested to make this transition for us. Of course we would be with you whole way just need some expert guidance.

If you are interested please tell me mail on which I can send you more details. So you can examine and tell your price, and we can agree on everything before continuing.
If not I am very sorry for bothering you in this way..

Best regards,
Josip

Ffmpeg faster

When I use:
ffmpeg -i "vv.mp4" -pix_fmt rgb24 -f rawvideo - | AkVCamManager.exe stream --fps 30 AkVCamVideoDevice1 RGB24 640 360
the speed is more fast that the original.
How to fix it?

No service + debug log question

It looks like there is no "Webcamoid virtual camera service" when you just install the akvirtualcamera only. Is that correct?

Also can you please advise what the debug logs should be named in C:\Windows\Temp and C:\Users%USERNAME%\AppData\Local\Temp ?

Add-device success, but not found in any client

Summary

I success builded the latest akvirtualcamera in x64, and AkVcamAssistant is running well.
I try to create device in AkVcamManager as follow step:

  1. AkVCamManager add-device VirtualCamera
  2. AkVCamManager add-format AkVCamVideoDevice0 YUY2 640 480 30
  3. AkVCamManager update
  4. AkVCamManager set-picture G:/default.png
  5. AkVCamManager update

I runned {AkVCamManager devices} can get this device, but not found in any client(such as zoom/skype)

I had tried to reboot windows, but gotted the same result.

Anyone can help me? Thanks!

Your Environment

  • akvirtualcamera 9.1.0
  • Operating System information: Windows 10 x64

Mac version: fwrite takes too long

Hi, I installed the virtual camera service in the Mac version, and then tried to write a 2m pixel fwrite (buffer, buffer_size, 1, proc) each time, but it took about 200 milliseconds, causing the picture to get stuck. What's the reason,

[error] Build error on OSX 11.5

Summary

Trying to build and install from source leads to an error

Current Behavior

In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:47,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareObject.h:169:2: error: expected unqualified-id before '^' token
  169 | (^CMIOObjectPropertyListenerBlock)( UInt32                          numberAddresses,
      |  ^
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareObject.h:169:2: error: expected ')' before '^' token
  169 | (^CMIOObjectPropertyListenerBlock)( UInt32                          numberAddresses,
      | ~^
      |  )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareObject.h:431:37: error: 'CMIOObjectPropertyListenerBlock' has not been declared
  431 |                                     CMIOObjectPropertyListenerBlock     listener) API_AVAILABLE(macos(10.8));
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareObject.h:452:41: error: 'CMIOObjectPropertyListenerBlock' has not been declared
  452 |                                         CMIOObjectPropertyListenerBlock     listener) API_AVAILABLE(macos(10.8));
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:21,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h:25,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h:56,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareStream.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareDevice.h:26,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:49,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected unqualified-id before '^' token
  391 | typedef void (^CGPathApplyBlock)(const CGPathElement * element);
      |               ^
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:391:15: error: expected ')' before '^' token
  391 | typedef void (^CGPathApplyBlock)(const CGPathElement * element);
      |              ~^
      |               )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPath.h:393:53: error: 'CGPathApplyBlock' has not been declared
  393 | CG_EXTERN void CGPathApplyWithBlock(CGPathRef path, CGPathApplyBlock CF_NOESCAPE block)
      |                                                     ^~~~~~~~~~~~~~~~
In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFDictionary.h:14,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFPage.h:15,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFDocument.h:16,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h:25,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h:56,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareStream.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareDevice.h:26,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:49,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFArray.h:103:15: error: expected unqualified-id before '^' token
  103 | typedef bool (^CGPDFArrayApplierBlock)(size_t index,
      |               ^
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFArray.h:103:15: error: expected ')' before '^' token
  103 | typedef bool (^CGPDFArrayApplierBlock)(size_t index,
      |              ~^
      |               )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFArray.h:113:5: error: 'CGPDFArrayApplierBlock' has not been declared
  113 |     CGPDFArrayApplierBlock cg_nullable block, void * __nullable info)
      |     ^~~~~~~~~~~~~~~~~~~~~~
In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFPage.h:15,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFDocument.h:16,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGContext.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGBitmapContext.h:9,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CoreGraphics.h:11,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h:25,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h:56,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareStream.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareDevice.h:26,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:49,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFDictionary.h:116:15: error: expected unqualified-id before '^' token
  116 | typedef bool (^CGPDFDictionaryApplierBlock)(const char * key,
      |               ^
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFDictionary.h:116:15: error: expected ')' before '^' token
  116 | typedef bool (^CGPDFDictionaryApplierBlock)(const char * key,
      |              ~^
      |               )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFDictionary.h:126:5: error: 'CGPDFDictionaryApplierBlock' has not been declared
  126 |     CGPDFDictionaryApplierBlock cg_nullable block, void * __nullable info)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h:25,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h:56,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareStream.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareDevice.h:26,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:49,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:152:92: error: 'CVDisplayLinkOutputHandler' has not been declared
  152 | CV_EXPORT CVReturn CVDisplayLinkSetOutputHandler( CVDisplayLinkRef CV_NONNULL displayLink, CVDisplayLinkOutputHandler CV_NONNULL handler );
      |                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreText.framework/Headers/CoreText.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:39,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVImageBuffer.h:28,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h:56,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareStream.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareDevice.h:26,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:49,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreText.framework/Headers/CTFontManager.h:379:34: error: expected ')' before '^' token
  379 |         bool                    (^ _Nullable registrationHandler)(CFArrayRef errors, bool done) ) CT_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos, watchos, tvos);
      |                                 ~^
      |                                  )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreText.framework/Headers/CTFontManager.h:379:34: error: expected ')' before '^' token
  379 |         bool                    (^ _Nullable registrationHandler)(CFArrayRef errors, bool done) ) CT_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos, watchos, tvos);
      |                                  ^
      |                                  )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreText.framework/Headers/CTFontManager.h:374:46: note: to match this '('
  374 | void CTFontManagerRegisterFontsWithAssetNames(
      |                                              ^
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreText.framework/Headers/CTFontManager.h:379:34: error: expected initializer before '^' token
  379 |         bool                    (^ _Nullable registrationHandler)(CFArrayRef errors, bool done) ) CT_AVAILABLE(ios(13.0)) API_UNAVAILABLE(macos, watchos, tvos);
      |                                  ^
In file included from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ImageIO.framework/Headers/ImageIO.h:20,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ApplicationServices.framework/Headers/ApplicationServices.h:47,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVImageBuffer.h:28,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVPixelBuffer.h:23,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CoreVideo.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMFormatDescription.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMedia.framework/Headers/CMSampleBuffer.h:56,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareStream.h:29,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwareDevice.h:26,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardware.h:49,
                 from /Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/CoreMediaIO.framework/Headers/CMIOHardwarePlugIn.h:36,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/utils.h:25,
                 from /Users/jm/Onedrive/projects/virtual_webcam_background/akvirtualcamera/cmio/PlatformUtils/src/preferences.cpp:23:
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h:42:15: error: expected unqualified-id before '^' token
   42 | typedef void (^CGImageSourceAnimationBlock)(size_t index, CGImageRef image, bool* stop);
      |               ^
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h:42:15: error: expected ')' before '^' token
   42 | typedef void (^CGImageSourceAnimationBlock)(size_t index, CGImageRef image, bool* stop);
      |              ~^
      |               )
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h:50:107: error: 'CGImageSourceAnimationBlock' has not been declared
   50 | IMAGEIO_EXTERN OSStatus CGAnimateImageAtURLWithBlock(CFURLRef url, CFDictionaryRef _iio_Nullable options, CGImageSourceAnimationBlock block) IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
      |                                                                                                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/IDE/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/ImageIO.framework/Headers/CGImageAnimation.h:58:108: error: 'CGImageSourceAnimationBlock' has not been declared
   58 | IMAGEIO_EXTERN OSStatus CGAnimateImageDataWithBlock(CFDataRef data, CFDictionaryRef _iio_Nullable options, CGImageSourceAnimationBlock block) IMAGEIO_AVAILABLE_STARTING(10.15, 13.0);
      |                                                                                                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [cmio/PlatformUtils/CMakeFiles/PlatformUtils.dir/src/preferences.cpp.o] Error 1
make[1]: *** [cmio/PlatformUtils/CMakeFiles/PlatformUtils.dir/all] Error 2

Steps to Reproduce

Follow steps on wiki

Your Environment

  • akvirtualcamera inormation: cloned from master branch on github
  • Operating System information: (macOS) (Big Sur 11.5.1) (intel)
  • Any other useful information: (look above)

Stream piped to Virtual Camera not working

I am piping from an rtsp stream to AkVCamManager as follows:

.\ffmpeg.exe -rtsp_transport tcp -i rtsp://10.101.0.100:8554/live -f rawvideo - | .\AkVCamManager.exe stream AkVCamVideoDevice0 RGB24 640 480 30

Everything appears to be running when doing this (until the System.Outofmemory error I have reported on another issue) however it never actually appears on the virtual camera.

When I test it with ffplay: .\ffplay.exe -rtbufsize 1000M -f dshow -i video="Inevidesk Virtual Camera" I just get a scrambled image - see capture below:

Capture

How do I use this in visual studio code

I have Cmake and Cmake tools installed in visual studio code but I'm having problems trying to link it up with my project so I can use this. I have already built akvirtualcamera but not sure how I'm supposed to then use it in my project. This is an amazing project as I have been looking for one that works for Windows and Mac and would love to know how to use it. I know this is a noob question, I have only recently started using C++.

add format

Hello,

I am trying to use add-format. There seems to be some issue in the way I am
passing artguments. Can someone help?

$ ./AkVCamManager devices
+----------------------+--------------+
| Device | Description |
+----------------------+--------------+
| "AkVCamVideoDevice"0 | AvailCamera0 |
+----------------------+--------------+
$ AkVCamManager add-format AkVCamVideoDevice0 RGB24 640 480 30
'AkVCamVideoDevice0' doesn't exists.
$ AkVCamManager add-format "AkVCamVideoDevice"0 RGB24 640 480 30
'AkVCamVideoDevice0' doesn't exists.
$ AkVCamManager add-format AvailCamera0 RGB24 640 480 30
'AvailCamera0' doesn't exists.
$

Windows: Skype for desktop do not find virtual camera

Reporting a problem?

Summary

On Windows: Skype shows error message "No device found". Does not recognize the virtual camera

Current Behavior

Skype version 8.83.0.408 (Skype for desktop, on Windows OS) do not find the created virtual camera. The virtual camera is shown by Google Meet and Zoom without any issue.

Expected Behavior

It should show the created virtual camera given that its support status is green

Steps to Reproduce

  1. Download latest version of Skype for desktop for Windows and install it.
  2. Open Command Prompt with administration privileges
  3. Install latest akvirtualcamera as shown in the wiki
  4. Add and setup a camera:
    1. AkVCamManager.exe add-device "Virtual Camera"
    2. AkVCamManager.exe add-format AkVCamVideoDevice0 RGB24 640 480 30
    3. AkVCamManager.exe update
  5. Open Skype client and check video setup

Suggestions and tips

Possible bug on latest Skype for Desktop

Your Environment

  • akvirtualcamera information: (9.1.0)
  • Operating System information: (Windows 10 Pro) () ( x64)

Webcamoid 9.0.0 hangs after downloading and installing akvirtualcamera

I install akvirtualcamera via the Webcamoid 9.0.0 settings ("The virtual camera is not installed, do you want to install it?"). This installs akvirtualcamera_windows 9.1.0. After completing and restarting Webcamoid 9.0.0 hangs forever.

Uninstalling akvirtualcamera_windows solves the issue. I have also manually tried akvirtualcamera_windows 9.0.0 with the same result (Webcamoid hanging).

Anything I can do to resolve the issue?

OS Name	Microsoft Windows 10 Pro
Version	10.0.19044 Build 19044
System Name	DELL-INSPIRON
System Model	Inspiron 7548
System Type	x64-based PC

Edit: Also have tested the daily build of Webcamoid, same issue. I use a non standard path without space for installation, P:\Tools\AkVirtualCamera

[question] Virtual devices not found in /dev/videoX

Summary

I can't find any devices under /dev/video after successfully creating devices with AkVCamManager

Current Behavior

Devices are created successfully, also they show in zoom but can't see them in vlc.

Expected Behavior

After creating the devices I was expecting to see /dev/video0, /dev/video1 etc.

How it should have work?
After creating devices expecting to see them under /dev/video or something like /dev/media

Steps to Reproduce

  1. OSX 11.5.1
  2. install AkVCamManager from the binary .pkg file on the latest stable release
  3. create a config.ini that creates 2 devices (output, capture)
  4. check on /dev/video* for devices but nothing
  5. AkVCamManager devices
+--------------------+--------------------------------+
| Device             | Description                    |
+--------------------+--------------------------------+
| AkVCamVideoDevice0 | Virtual Camera (output device) |
| AkVCamVideoDevice1 | Virtual Camera                 |
+--------------------+--------------------------------+

Your Environment

  • akvirtualcamera inormation: (9.1.0) (binary)
  • Operating System information: (OSX) (11.5.1 Big Sur) (intel)

Am I missing something?

pinging @hipersayanX for visibility, thanks!

Example for AkVirtualCamera doesn't work

This project looks amazing and I would love to use it but there is one big issue. I seem to get loads of errors when using the example of streaming. I decided it may be my code so I made a new project and gave it a go, it still caused the same issue, is the example up to date? Am I missing something?

Unresponsive Device Driver Service?

I'm evaluating AkVirtualCamera under Windows und from a functionality and performance perspective I'm impressed. AkVirtualCamera is exactly what I'm seeking for. Unfortunately, the stability under Windows is still problematic for me. Even with the latest snapshot as of yesterday, I'm regularily see the following scenarios:

  1. If I feed frames into the devices via FFmpeg, then start a viewer like SplitCam or OBS Studio I can view the frames just fine. If I now stop the viewer side (just close SplitCam) or even just try to add another AkVirtualCameraDevice, the feeding(!) side gets interrupted as AkVCamManager stream is no longer responsive. The AkVCamManager process seems to be still running, but it no longer is able to send its streams to the camera devices via IPC, as a result no longer fetches data from stdin and as a consequence FFmpeg complains that its buffers are running full. On the attempt to add another camera, SplitCam and OBS Studio when trying to access the AkVirtualCamera devices regularly even crash!

  2. Once such problems occurred, even a simple AkVCamManager devices needs about 30-120 seconds to respond. After this time, subsequence command work just fine again, including AkVCamManager stream. If I try to stop the device driver service with "sc stop AkVCamAssistant" it even needs 10-20 seconds until the process is really gone according to the Task Manager. Restarting it with "sc start AkVCamAssistant" then makes everything working just fine again, e.g. AkVCamManager devices then responds again immediately.

From my perspective and observation, there is a problem in the IPC communication or especially in the responsiveness of the camera device driver service itself, because all AkVCamManager commands starve for some time. As it later works again and a restart of the service also helps, I guess some timeouts or buffer flushes or other hang scenarios happen inside device driver.

Zoom can't detect akvirtualcamera,and virtual cameras can't delete in Windows.

README

Some considerations before doing anything:

  • Search the issues list for similar topics before opening a new one.
  • If you know how to fix the problem, consider doing a pull request instead of opening a new issue.
  • Only report problems in latest and development version. Reporting issues related to older versions will be rejected.
  • Use gist to post logs longer than 1024 characters.
  • akvirtualcamera as project, is not affiliated or endorsed to any distribution, report packaging problems in their respective issue tracker.
  • Respect the templates, we need as much information as possible.
  • Don't open an issue and disappear, we need you at least the first week to clear up missing information.
  • Missing information makes useless and unsolvable an issue report.
  • You are our debbuger, eyes and hands, if an issue is not reproducible then you will be the only person able to solve it.
  • Take a seat and wait for your turn, as many others that has their issues open, or much better try fixing it your self and collaborate with the solution ๐Ÿ˜„

Choose one of the templates bellow that fit better your issue.

Reporting a problem?

There are two problems

  1. Zoom is unable to detect virtual camera on Laptop,but meet is able to detect virtual camera on the same Laptop.
  2. try to use AkCamManager remove-devices command to remove the redundant virtual camera that listed on Meet but fail. Would you please advise the correct method to delete the redundant virtual camera.

Summary

Write here a brief description of the problem.

Current Behavior

For problem 1:
Describe the problem the best as you can, don't omit information.
AkCamAssistant did intalled,and followed the configuration guide.Chrome meet can find the virtual camera with the configuration,but zoom cannot.
For problem 2:
AkCamAssistant didn't intalled and followed the configuration setting to created some virtual cameras.
Only the virtual camera created after AkCamAssistant intalled can show by "AkVCamManager devices" command.The other virtual camera can't remove.

Expected Behavior

How it should have work?

Steps to Reproduce

If akvirtualcamera crashed, try to reproduce the crash several times to be sure where is the problem. Write the steps to reproduce the issue bellow:

  1. Open this
  2. Click that
  3. Drag those
  4. ...

Suggestions and tips

How would you solve the problem?

Your Environment

  • akvirtualcamera inormation: (version) (architecture)
    version:9.1.0
  • Operating System information: (name) (numeric version and codename if applied) (architecture)
    Windows 10 home 21H2/19044.1586/Windows Feature Experience Pack/120.2212.4170.0
  • Any other useful information: (logs, gdb backtrace, valgrind logs, screenshots, hardware, etc.)

Want a new feature?

Describe your idea the best as you can, include sketches, mockups and diagrams if required.
Be patient, take in mind that there may be other priorities. Your idea will be accepted if fit in project goals.

Questinons and other matters?

Go ahead!

Webcamoid virtual camera crashes when used by Qt's capture code

Summary

First off, this might be the same issue as webcamoid/webcamoid#231 but I'm not sure, as this is about another application using Webcamoid's virtual camera, not Webcamoid itself.

When creating a Webcamoid virtual camera on Windows 10, applications making use of Qt's camera capture code crash when trying to start that camera. Since Webcamoid itself is built using Qt, you should not have any issues using the default Qt multimedia webcam example to reproduce this issue.

Steps to Reproduce

  1. Create virtual camera in Webcamoid
  2. Run the Qt multimedia webcam example
  3. Select the camera
  4. Observe crash

Suggestions and tips

I contacted Qt support because I suspected the issue is on their end, however they say the problem is in the filter provided by webcamoid as it crashes at
pVideoControl->GetFrameRateList(pPin, iIndex, size, &listSize, &frameRates);

Your Environment

  • Webcamoid information: 8.7.1 64-bit
  • Operating System information: Windows 10 Professional 64-bit, version 1909

Can't find documentation for installation and command line options

Hi,
I have installed akvirtualcamera as part of webcmoid. Now I also want to use it as stand alone virtual camera for Windows.
Is it already available as a standalone package? If yes - I just cant find the the installation documentation (the Wiki just links back, and the webcamoid wiki gives no information on akvirtualcamera specifically).

I also can't find documentation of the command line arguments and usage.
From issue #3 I can see some installation and usage, but that is potentially much to less to use it to its full potential.

Any sourcce I'm missing and where I can read into?

Thanks, Costor

Development progress

I've opened this issue to report some ideas and thoughts that come to my mind while working in the virtual camera.

Right now I'm working in the vcam for Mac, I'll use this driver ref1 for experimenting all new features for the virtual camera, and then port the changes to the Windows and Linux drivers.

My biggest problem right now is finding a common interface for communicating with the virtual camera, an interface that does not requires linking to any library or header, an interface that allow me to modify the driver internally as much as I want without breaking compatibility with controlling programs, at least not breaking too much.
My first thought was using DirectShow and CoreMediaIO for communicating with the driver and send data to it, while CMIO in theory has the capability of receiving data through CMIOHardwareStream interface, not even AVFoundation seems to make use of that capability.

While working on integrating the driver to Webcamoid I've discovered the even when marking the stream as an input, AVFoundation still list the virtual input device (the device that will receive the frames) as a capture device (the device that will be seen by the target program). The protocol does not seems to be fully implemented by Apple.

Thinking over and over, I come to the conclusion that the best solution for sending frames to the vcam would be setting the stream parameters and telling where I want to send the frames, and then piping the raw frames, doing something like this:

dd if=/dev/urandom bs=921600 count=30 2>/dev/null | AkVCamManager stream /akvcam/video0 RGB24 640 480

That's all for now, the re-design is taking some time but the final result will be a big improvement compared to the old driver ๐Ÿ˜„

  • ref1: not technically a driver, but a plugin, but I'll use the word driver because that's how non-technical users understand it.

Idea: move xpc_connection_create_mach_service to NSXPCConnection so that it works with QuickTime

QuickTime does not work with the webcam because it does not allow accessing xpc_connection_create_mach_service.
Moving to NSXPCConnection (sorry, I don't know the C++ equivalent) fixes the problem:

https://github.com/obsproject/obs-studio/blob/dde4d57d726ed6d9e244ffbac093d8ef54e29f44/plugins/mac-virtualcam/src/obs-plugin/OBSDALMachServer.mm
https://stackoverflow.com/questions/54188295/nsmachbootstrapserver-is-deprecated-how-can-nsxpcconnection-be-used-to-register

Android and IOS

Is it technically feasible to expand akvirtualcamera to IOS and Android?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.