Virtual Camera Filter API (camera device emulation API)ByteScout Screen Capturing SDK

Bytescout Screen Capturing Video Filter API - Virtual Camera

Bytescout Screen Capturing Filter emulates hardware camera and provides virtual camera filter that can be used to record video from. This emulated camera provides video from the desktop screen.

Every software that supports hardware video devices works with virtual Bytescout Screen Capturing camera as well (see screenshot below to see how the camera can be accessed in the Skype).

skype with bytescout virtual screencapturingcamera
virtual camera selection in amcap

So you can easily integrate the virtual screen capturing camera within your application or existing code

General Information

Filename: BytescoutVirtualCameraFilter.dll

Works As: DirectX Video Filter and Virtual Camera (so you can use any video capturing software to record video from screen);

ICaptureAreaProperties: GUID = {17116BE4-B577-431a-885D-FF88D4510953}. This interfaces provides properties to set region or area to capture.

  • Type CaptureAreaSource:

    • caRegion = 0, // capture the region defined with rectangle at CaptureRectLeft, CaptureRectTop, CaptureRectWidth, CaptureRectHeight

    • caWindow = 1, // captures the given window (including non-visible(!) windows). See WindowsToCapture and WindowToCapture2 properties to define window to find by its title, class name or window handle). IMPORTANT: may cause flickering on some Windows versions (depends on graphic card as well). You can also crop video capture from window using CaptureRectLeft, CaptureRectTop, CaptureRectWidth, CaptureRectHeight

    • caMouse = 2, // captures the area around the mouse pointer with the width and height defined by CaptureRectWidth and CaptureRectHeight

    • caScreen = 3 // capture entire screen

    • caVisibleWindow = 4 // capture the given window (works for only visible windows(!), for non-visible windows see caWindow(1) mode). See WindowsToCapture and WindowToCapture2 properties to define window to find by its title, class name or window handle). IMPORTANT: may cause flickering on some Windows versions (depends on graphic card as well). You can also crop video capture from window using CaptureRectLeft, CaptureRectTop, CaptureRectWidth, CaptureRectHeight

  • Property CaptureAreaSource As CaptureAreaSource: area type to capture (caRegion = 0, caWindow=1, caMouse=2, caScreen=3);

  • Property CaptureRectLeft As Long: left coordinate of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) mode)

  • Property CaptureRectTop As Long: top coordinate of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) mode)

  • Property CaptureRectWidth As Long: width of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) and .CaptureAreaSource=caMouse(2) modes). In .CaptureAreaSource=caMouse(2) this property defines the width of the rectangle near the mouse cursor

  • Property CaptureRectHeight As Long: height of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) and .CaptureAreaSource=caMouse(2) modes). In .CaptureAreaSource=caMouse(2) this property defines the height of the rectangle near the mouse cursor

  • Property WindowToCapture As String: partial name of the window to capture from (in .CaptureAreaSource=caWindow(1) mode). You can provide partial name of the window or partial class name.

  • Property WindowToCapture2 As OLE_HANDLE: window handle of the window to capture from (in .CaptureAreaSource=caWindow(1) mode).

IVideoProperties: GUID = {0D74B6D4-2B53-4afd-9D89-2828A057C7CC}. IVideoProperties interface provides method to read version information about the filter.

  • Property FPS As FLOAT: FPS of the output video;

  • Property ResizeOutput As Boolean: controls if filter should resize source video into output width and height. True by default.

  • Property OutputWidth As Long: output video width

  • Property OutputHeight As Long: output video height

  • Property CaptureMouseCursor As Boolean: controls if filter should record mouse cursor in the video. True by default.

  • Property AnimateMouseButtons As Boolean: controls if filter should display a small animation to indicate which mouse button has been clicked by user. False by default

  • Property AnimateMouseClicks As Boolean:controls if filter should display a small animation (animated circles) when user clicks using the mouse in the output video. True by default.

  • Property MouseCursorLeftClickAnimationColor As OLE_COLOR: defines the color of the animation for left mouse button clicks. Default color is Blue.

  • Property MouseCursorRightClickAnimationColor As OLE_COLOR: defines the color of the animation for right mouse button clicks. Default color is Green.

  • Property MouseCursorLeftClickAnimationColor As OLE_COLOR: defines the color of the animation for left mouse button clicks. Default color is Blue.

  • Property MouseAnimationDuration As OLE_COLOR: defines the duration of the animation for mouse button clicks. Default duration is 1000 ms (1 sec).

  • Property ShowMouseHotSpot As Boolean: show/hide the semitrasnparent hotspot around the mouse cursor (to make it easier to follow the mouse on the output video). True by default.

  • Property MouseHotSpotColor As OLE_COLOR: color of the hotspot around the mouse. Default is Yellow.

IVersionProperties: GUID = {454CAD94-6BC0-4c11-8A65-3C1874B02A84}. IVersionProperties interface provides method to read version information about the filter.

  • Property Version As String: returns text string with version information;

IStorageProperties: GUID = {A518ADA7-1946-4db5-A1ED-9EA1C0EE17A8}. IStorageProperties interface is used to control how the filter uses registry to store settings for IVideoProperties and ICaptureAreaProperties interfaces

  • Property UseRegistryKey As String: defines the registry key to store settings. Default value is HKCU\Software\Bytescout\Screen Capturing Filter\

  • Property UseRegistryHive As Long: controls the Windows Registry Hive;

  • Method UseDefaultRegistryKey: resets the filter to use default registry key (HKCU\Software\Bytescout\Screen Capturing Filter\)

IRegInfoProperties: GUID = {9E1782FB-7724-421b-A3B5-272E4F7E1FA8}. IRegInfoProperties interface is used to set registration name and key. For REGISTERED USERS only in FULL version only!

  • Property RegistrationName As String: set Registration Name to unlock Full version;

  • Property RegistrationKey As String: set Registration Key to unlock Full version;

The filter can store settings in Windows Registry. Default key is HKCU\Software\Bytescout\Screen Capturing Filter\. Here is the list of available keys. Important: for boolean values write 1 for True and 0 for False.

  • CaptureAreaSource - area type to capture (caRegion = 0, caWindow=1, caMouse=2, caScreen=3)

  • CaptureRectLeft - left coordinate of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) mode)

  • CaptureRectTop - top coordinate of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) mode)

  • CaptureRectWidth - width of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) and .CaptureAreaSource=caMouse(2) modes). In .CaptureAreaSource=caMouse(2) this property defines the width of the rectangle near the mouse cursor

  • CaptureRectHeight - height of the rectangle to capture from (in .CaptureAreaSource=caRegion(0) and .CaptureAreaSource=caMouse(2) modes). In .CaptureAreaSource=caMouse(2) this property defines the height of the rectangle near the mouse cursor

  • WindowToCapture - partial name of the window to capture from (in .CaptureAreaSource=caWindow(1) mode). You can provide partial name of the window or partial class name.

  • FPS - FPS of the output video

  • ResizeOutput - controls if filter should resize source video into output width and height. True by default.

  • OutputWidth - output video width

  • OutputHeight - output video height

  • CaptureMouseCursor - controls if filter should record mouse cursor in the video. True by default.

  • AnimateMouseButtons - controls if filter should display a small animation to indicate which mouse button has been clicked by user. False by default

  • AnimateMouseClicks - controls if filter should display a small animation (animated circles) when user clicks using the mouse in the output video. True by default.

  • MouseCursorLeftClickAnimationColor - defines the color of the animation for left mouse button clicks. Default color is Blue.

  • MouseCursorRightClickAnimationColor - defines the color of the animation for right mouse button clicks. Default color is Green.

  • MouseAnimationDuration - defines the duration of the animation for mouse button clicks. Default duration is 1000 ms (1 sec).

  • ShowMouseHotSpot - show/hide the semitrasnparent hotspot around the mouse cursor (to make it easier to follow the mouse on the output video). True by default

  • MouseHotSpotColor - color of the hotspot around the mouse. Default is Yellow.