Menu Close

TVideoGrabber version history

TVideoGrabber SDK version history

v15.2.4.4 – September 6, 2022


– when recording video+audio with the Multipurpose Encoder, the audio stream may be missing
– WPF: the video window may be misaligned after resizing the VideoGrabberWPF control

v15.2.4.2 – August 16, 2022


– possible error when recording an URL source in native format through the RTSP/RTMP/HTTP/ONVIF Source
– Newtek “Webcam Input” virtual device may not be listed in the “video devices” list

v15.2.4.1 – August 10, 2022


function ONVIFDeviceInfo (onv_XMLReplay):
returns the ONVIF list of recordings available on the ONVIF DVR or camera in XML format

function ONVIFDeviceInfo (onv_XMLInfo):
returns the ONVIF data (including the recordings) in XML format

v15.2.2.1 – July 27, 2022


possible error when invoking SetTextOverlay_String

v15.2.1.8 – June 24, 2022


      • possible error when using the RTSP/RTMP/HTTP/ONVIF Source and/or the Multipurpose Encoder and the binaries are not registered but loaded from a subfolder

v15.2.1.6 – June 23, 2022


      • when opening an URL through the Datastead RTSP/RTMP/HTTP/ONVIF Source and specifying a buffering in milliseconds (e.g. >”buffer=400″), the buffering may not be taken in account
      • when opening a wmv/asf video clip in the player, the frame rate reported may be up to 10000 fps
      • URL recording: after a pause/resume, the time reported by the OnFrameProgress event is not correct when RecordingInNativeFormat=true (by default)
      • OnRawVideoSample event may not work
      • multi-monitors: black window when moving the video control from a monitor to the other
      • RadStudio: the video control may not resize correctly when resizing the parent control
      • WPF: events callbacks may not work properly
      • WPF: invoking VideoGrabber.ClosePlayer() may hang
      • WPF: VideoGrabber.CaptureFrameTo (fc_TBitmap) may return a blank image
      • QT: creating several TVideoGrabber instances concurrently may fail or error the application

v15.2.1.4 – May 13, 2022


– NetworkStreaming = ns_ASFDirectNetworkStreaming not working

– possible Window handle error when the application is compiled for x64

– NDI : GetNDISessions not working properly


v15.2.1.2 – April 12, 2022


VideoGrabber.RecordingDuration() can be read during the recording when the Datastead Encoder is used


– the sequence HoldRecording=true -> StartRecording() -> ResumeRecording() does not start with the Datastead Encoder when RecordingPauseCreatesNewFile=true
– possible error of the screen recording
– possible grayscale video with some USB grabbers when the application is targeting x64
– high CPU when opening an URL through the Datastead RTSP filter, the URL does not respond and VideoGrabber.Stop() is invoked before the connection timeout occurs

v15.2.1.0 – March 22, 2022


– now the RTSP filter updates the dropped frame count in the TVideoGrabber SDK with live RTSP, UDP and RTP sources, this lets determine whether and how many decoded frames are dropped
– when using the Datastead NDI filters and playing NDI streams, possibility to specify the source host and stream name with this sample code:


– when using the Multipurpose Encoder with the FFmpeg command line, the processing progress was not reported anymore (e.g. in the MainDemo project -> “Multipurpose Encoder” -> “Command line” -> “… log” tabs)
– audio/video possibly not synchronized when playing http/https URLs

v15.1.8.0 – February 23, 2022


– the frame counting and time goes on increasing while the recording is paused
– when recording or streaming with the Multipurpose Encoder, the audio may be missing


– MSVC/QT/MingGW C++ package:
Now the package is compatible with the compilation from MinGW.

– the enums are now part of the CVideoGrabber class, this requires some minor changes in the code, e.g.:
SetVideoSource (vs_IPCamera) must be changed as SetVideoSource (TVideoSource::vs_IPCamera)

v15.1.6.0 – February 15, 2022


– VideoGrabber.VideoSource = vs_ScreenRecording or vs_Mixer: the recording may fail to start, depending on the video size
– when the source is the RTSP/RTMP/HTTP/ONVIF Source filter:
. when generating a new file during recording, invoking VideoGrabber.RecordingKBytesWrittenToDisk from the OnRecordingCompleted event does not report the correct file size
. when VideoGrabber.RecordingPauseCreatesNewFile=true a new file name is not created
. when invoking ONVIFSnapShot (true, false, “”), the OnRawVideoSample event, that reports the JPEG image buffer) does not occur

v15.1.4.0 – February 3, 2022


– invoking ShowDialog (dlg_VideoCompressor) with the Datastead Encoder may freeze if invoked while the component is running
– Datastead Encoder UDP streaming stops when the recording timer is enabled, or when invoking RecordToNewFileNow()


– if no VideoGrabber.StoragePath is specified, the recordings are saved in the %TEMP% folder

v15.1.2.8 – January 26, 2022


– Player: AVI files may report a wrong frame rate even with the LAV filters installed
– Multipurpose Encoder: TVideoGrabber uses the Datastead Encoder instead of the command line encoder, although VideoGrabber.EnableMultipurposeEncoder (mpe_Recording, true) has been set.
– possible error with the screen recording if the screen size has an odd value

v15.1.2.2 – January 19, 2022


NET 6 component


– possible error when recording through the Datastead Encoder

– now the Datastead Encoder settings can be set “manually” through the VideoGrabber.ShowDialog (dlg_VideoCompressor) orr ShowDialog (dlg_AudioCompressor). In this case they are saved in the registry and restored automatically when the app is restarted.
Note that if either Encoder_SetInt (0, …) or Encoder_SetStr (0, …) is invoked programatically to configure the encoder, in this case the settings saved in the registry are ignored.


– now by default the files are stored in the user’s “Videos” folder

v15.1.2.1 – November 23, 2021


– audio/video may not be in sync when the source is an URL or IP camera
– overlays may not be working when VideoSource = vs_VideoFileOrURL
– increased CPU load when recording IP cameras
– Blackmagic cards: “Decklink Video Capture” device not listed in the “Video Devices” list

v15.1.1.8 – October 26, 2021


– setting a recording file name with a “.wmv” extension produces a “.asf” file
– OnDeviceArrivalOrRemoval event not raised when connecting/removing a camera or microphone and the preview or recording is running
– recording may fail if an audio device is selected and AudioRecording is enabled

v15.1.1.6 – October 15, 2021


– ResumeRecording may not be instant, although the Datastead Encoder is recording
– Forms of the .NET Winform MainDemo projects not opening
– WPF MainDemo some controls not working property

v15.1.1.4 – October 13, 2021


– recording produces no file after the 1st recording
– possible error when enabling the streaming by invoking Encoders_CreateInstanceForStreaming

v15.1.1.2 – October 11, 2021

the changelog is being updated, please come back in a few hours


New recording and streaming through the Multirpupose Encoder 2.0.1 without requiring the FFMpeg command line syntax.
The following new functions are introduced:


The typical sample code for the recording is:

Videograbber.VideoCompressor = Videograbber.VideoCompressorIndex ("Datastead Multipurpose Encoder");
Videograbber.AudioCompressor = Videograbber.AudioCompressorIndex ("Datastead Multipurpose Encoder");
Videograbber.Encoder_SetStr (ENCODER_RECORDING_ID, Enc_Video_Codec, "hevc"); // if not specified the default codec is used
Videograbber.Encoder_SetInt (ENCODER_RECORDING_ID, Enc_Video_Bitrate_kb, 2000); // other settings available
Videograbber.RecordInNativeFormat = false;
Videograbber.recordingFileName = "c:\folder\videoclip.mp4";
Videograbber.AudioRecording = true;

It is possible to add an “externally-controlled” streaming or recording with the following new functions:


The typical sample code for the streaming is:


– pressing the “ESC” key raises the OnLeavingFullScreen event, even when not in full screen mode
– AudioSyncAdjustmentEnabled and AudioSyncAdjustment not working

v14.1.1.4 – September 20, 2021


– mixer mode: the overlays of the TVideoGrabber component specified as source with Mixer_AddToMixer or Mixer_SetupPIPFromSource do not appear
– video may be flashing black when seeking a MP4 clip opened without the LAV filters installed

v14.1.1.2 – September 16, 2021


– TVideoGrabber component for Delphi 11 and C++Builder 11 Alexandria

– logarithmic scale for the VU-meters
To enable it set:
VideoGrabber.SetVUMeterSetting (VU_LEFT, vu_LogarithmicScale, 1);
VideoGrabber.SetVUMeterSetting (VU_RIGHT, vu_LogarithmicScale, 1);

– VideoGrabber.ExtraDLLPath: possibility to specify a different DLL path per filter, by adding the [RTSP] or [MPE] prefix at the beginning
VideoGrabber.ExtraDLLPath = “[RTSP]c:\RTSPfolder1\”;
VideoGrabber.ExtraDLLPath = “[MPE]c:\MPEfolder2\”;


HTTP or Youtube URLs play at full speed, instead of normal speed

OnFrameProgress event does not occur during fast forward or fast rewind (VideoGrabber.RewindPlayer() or VideoGrabber.FastForwardPlayer()

Mixer_SetupPIPFromSource: specifying a cropped portion of the image not taken in account (Source_Left, Source_Top, Source_Width or Source_Height <> 0)

– VideoGrabber.NetworkStreaming= ns_NDI: possible application error when stopping/exiting the

Pause/Resume recording: in some cases the recorded clip may show a static image during the pauses

v14.1.1.1 – July 5, 2021


360° video decoding (requires the Datastead RTSP/RTMP/HTTP/ONVIF Source filter)
– string MultipurposeEncoder_Convert100nsToHhMmSsZzz (int64 Time100ns)


– some videos in “portrait” mode are be displayed in “landscape” mode
– possible random error when invoking several instances from the .NET Framework
– the “object sender” parameter of the WPF events did not return the current VideoGrabberWPF instance
– duration returned by AVIInfo or AVInfo2 may return 0 in some rare cases
– Multipurpose Encoder: component may not restart in case of wrong command line
– mixer source from a player instance : the mixer video may look jerky whereas it is smooth in the player instance
– video decoding may be still enabled in some cases although the FrameGrabber=fg_Disabled and VideoRenderer=vr_None
– GetLastFrameBitmapBits may be slow

v12.2.2.4 – April 30, 2021


– possible application error depending on the video source or video capture device
– black video window in WPF MainDemo when the VideoGrabberToImage property is enabled (enabled by default)
– Pause/Resume recording: the frame time reported from the OnFrameProgress event does not reflect the pause/resume

v12.2.2.2 – April 27, 2021


– ghost frames (older frames) may appear randomly in some cases when the frame grabber is enabled


– lower latency with IP cameras and URL sources when no audio is rendered
– lower CPU and memory consumption when the frame grabber is enabled


Display_AspectRatio=ar_Stretch by default (set Display_AspectRatio=ar_Box to add bottom/top borders)


– VCL component for Delphi and C++Builder Sydney 10.4.2
– OnDragDropFiles event
– OnAudioBufferNegotiation event (allows to modify the audio buffering during recording/streaming)
– RecordingMethod = rm_H264 (lets record through the RTSP filter in h264 format)
– property RecordingFileSizeMaxInMB: lets specify a maximum recording file size. When exceeded, a new recording file is generated on the fly.
– function VideoDeviceIndexFromId (string identifier): returns the index of the video capture device by its hardware identifier from the VideoDevicesId list.

v12.2.1.1 – January 12, 2021


– wrong frame rate reported with some MP4 clips
– possible black window on 2nd monitor when using dual display on 2 monitors
– video sizes list empty with Blackmagic Decklink cards
– WPF: VideoGrabberWPF events not raised
– WPF: VideoGrabberWPF not working in Net Core 3.0 and Net Core 3.1
– MainDemoWPF demo project not working properly


– Net 5.0 assembly
– function MultipurposeEncoder_QuickConfigure_UDPStreaming_H264
– support for the RTSPS protocol through the Datastead RTSP/RTMP/HTTP/ONVIF Source filter 7.6 or higher


WPF: VideoGrabberWPF.VideoGrabberToImage property now disabled by default

v12.1.2.2 – November 16, 2020


– possible black window with Blackmagic Decklink cards
– Delphi: trackbar may not be working properly when a TTrackbar component is assigned to the PlayerTrackBar property

v12.1.1.4 – November 10, 2020


function SetImageOverlayFromHBitmap3 (Index: LongInt; Bitmap: HBITMAP; ReleaseBitmap: Boolean): Boolean;
– if the ReleaseBitmap parameter is set to true the bitmap passed to the function is freed by the function


– brightness/saturation/exposure not working properly when switching between “auto” and manual”
– player trackbar progress may be jerky
– no video when viewing through a Remote Desktop Connection
– NDI streaming works also with the player
– WPF: video may be sluggish, especially when using more than 1 instance of TVideoGrabber concurrently

v12.1.1.2 – September 18, 2020


playback may stop before end of the the clip when VideoGrabber.PlayerSpeedRatio <> 1

dual screen: video may freeze when moving the video window from a screen to the other

video not smooth or hanging in WPF control


property VideoGrabber.PlayerSpeedRatioConstantAudioPitch (boolean)
when playing the clip at a speed ratio <> 1:
– if enabled (default), the audio is rendered at the normal pitch
– if disabled, the audio is rendered with the pitch of the speed ratio

VideoGrabber.AudioSource = as_SpeakerOutput
allows to record whatever is renderered in the soundcard’s output

VideoGrabber.AudioSource = as_DefaultWithSpeakerRecording
allows to record whatever is renderered in the soundcard’s output, while rendering the current audio source

event VideoGrabber.OnNTPTimeStamp
reports the NTP timestamps of RTSP sources (requires the RTSP/RTMP/HTTP/ONVIF Source filter to be installed)

v11.2.1.16 – July 1, 2020


TVideoGrabber not working on Windows XP

v11.2.1.12 – June 17, 2020


property GetLastFrameWaitTimeoutMs
If set to a value > 0, typically 50 (ms), the GetLastFrame… functions, instead of returning the current frame, waits for the next frame, until the specified timeout expires.

TRecordingTimer = rt_FrameCapture
Captures periodically the current frame, the type of capture (memory bitmap, bmp file, etc…) is determined by the BurstType property. The interval is determined by RecordingTimerInterval, expressed in seconds


PlayerSpeedRatio not working with ASF/WMV clips

v11.2.1.10 – June 4, 2020


– Delphi and C++Builder components for RadStudio 10.4 Sydney
– frame capture to .TIFF and .PNG files:


– some USB or integrated cameras does not start, the OnLog event reports “graph can’t run: 80004002”
– frame capture with the frame grabber disabled does not work in some cases
– video capture devices may not start from an application using the Cpp version
– MP4 and MOV clips at 29.97 fps report a wrong frame rate of 30fps
– webcam preview may be jerky

v11.2.1.8 – April 30, 2020


– NET Core 3.0 and NET Core 3.1 components
– Delphi 10.3 and C++Builder 10.3 sub-versions available separately:
10.3.1, 10.3.2 and 10.3.3


– ASF recording with audio: audio sample rate may vary
– LAV codecs: VideoGrabber.PlayerHwAccel ignored if the frame grabber is disabled
– OSPrey 816e flashing green (with default settings)
– USB or GIGe camera: settings unexpectedly changing between stops/starts
– WPF: VidGrabWPF:VideoGrabberWPF component always on top event if another control is above it
– WPF: video stops displaying after a few seconds
– WPF: VidGrabWPF:VideoGrabberWPF may error when destroying the control
– MainDemo C# / VB.NET: possible error when opening the “video quality” dialog
– deinterlacing: VideoGrabber.VideoProcessing_Deinterlacing = di_FullSize may not work
– rotation: VideoGrabber.VideoRotation = rt_custom_angle or rt_custom_angle_mirror not working
– zoom now working with frame grabber disabled
– …VMR9ImageAdjustment… functions not working
– ASF recording: VideoGrabber.HoldRecording=True + VideoGrabber.StartRecording() not working
– ASF recording: VideoGrabber.PauseRecording may not work, VideoGrabber.IsRecordingPaused returns always false
– NET Framework: possible error System.IO.FileNotFoundException HResult=0x80070002 “VideoGrabberNET failed to load”

v11.2.1.6 – December 5, 2019


– possibility to capture frames although the frame grabber is disabled, by invoking CaptureFrameTo(), or the GetLastFrameAs… functions.
– RadStudio 10.3.3 versions of the component


– AVI recording: wrong total duration when using PauseRecording/ResumeRecording

– .NET Framework: strong named assemblies not signed

– .NET Framework: WPF control may freeze after a few seconds

– when RecordingPauseCreatesNewFiles is disabled, the PauseRecording/ResumeRecording sequences show a frozen frame for the duration of the pause, instead of jumping from the previous to the next sequence

– possible wrong clip duration when PauseRecording/ResumeRecording is used

– video clip may play faster in some cases

– Basler cameras not working

– OnFilterSelected event not raised with video capture devices

v11.1.2.2 – August 23, 2019


– added the function CaptureFrameRenderedTo,that lets capture frames when the frame grabber is disabled

– added the possibility to build a stream from raw samples (e.g. h264) through the following properties/functions:
. property StreamInterface_Format
. property StreamInterface_FrameRate
. property StreamInterface_IsRealTime
. function StreamInterface_PushData


– after pausing the player, the trackbar can make a jump of 2 or 3 frames

– recording of an OsPrey 100e PCIe capture card: the recorded clip may have a wrong duration

AVI recording: possible incorrect duration of the clip recorded

– taking a snapshot from the player may take a few seconds

vidgrab_VB6.ocx: the app may error when exiting

v11.1.2.1 – May 6, 2019


seamless playback of multiple video clips having the same format. Once opened they behave as a single large clip, with seamless global seeking.

The seamless playback is activated as follows:
VideoGrabber.PlayList (pl_Clear, “”)
VideoGrabber.PlayList (pl_add, “clip1.mp4”)
VideoGrabber.PlayList (pl_add, “clip2.mp4”)
VideoGrabber.PlayList (pl_add, clip n…)
VideoGrabber.PlayerFileName = “PLAYLIST”

– added the following functions to control the RTSP/RTMP/HTTP/ONVIF DirectShow Source filter while it is running:
. ONVIF_GetBool
. ONVIF_GetDouble
. ONVIF_GetInt
. ONVIF_GetStr
. ONVIF_SetBool
. ONVIF_SetDouble
. ONVIF_SetInt
. ONVIF_SetStr
VideoGrabber.Onvif_SetBool (“RTSP_VideoStream_Decode_KeyFrames_Only_bool”, true);

– added the possibility to set custom property of some GIGE/Firewire cameras, by example the ImagingSource DFK cameras, with the following functions:

. GetFWCam1394
. SetFWCam1394
. GetFWCam1394List

new VidGrabWPF:VideoGrabberWPF component compatible with the code of the VidGrab::VideoGrabber component of WinForms.
It has a dual mode that can be switched with the VideoGrabberToImage property listed in the “Common” properties of the component:

. VideoGrabberToImage enabled (default):
TVideoGrabber renders through an Image component, allowing WPF semi-transparent overlays

. VideoGrabberToImage disabled:
TVideoGrabber renders in a DirectShow renderer through a WindowsFormHost.
This saves CPU, but with potential problem if using WPF overlays (“airspace issue”)

– added an onv_AuxiliaryCommands to the TONVIFDeviceInfo options of the ONVIFDeviceInfo function

– added a ScreenRecordingSizePercent property

– added an OnLeavingFullScreenMode event that occurs e.g. when, in full screen mode, the user press the key


Gopro videos may fail to play

– when selecting a video device and a video size, the VideoWidth and VideoHeight values are correct. However, after executing the StartPreview command, these values invariably change to 640 and 480 respectively

– possible black window with Blackmagic Decklink cards

VideoProcessing_deinterlacing=di_FFdshow not working when playing an interlaced PAL or NTSC video, although the FFshow CLSID codecs are installed

VideoGrabber.ShowDialog (dlg_VideoDevice) not working with some video capture devices


v10.8.4.6 – December 21, 2018


– no audio with WMV clips

v10.8.4.4 – December 18, 2018


– Delphi and CppBuilder VCL components for RadStudio 10.3 Rio

– possibility to use the hardware acceleration of video decoding (currently supported with the LAV filters):
property PlayerHwAccel : type THwAccel = (hw_None, hw_Cuda, hw_QuickSync, hw_Dxva2, hw_d3d11)

– control of the IR Cut Filter of Axis cameras through the Datastead RTSP/RTMP/HTTP/ONVIF DirectShow
Source Filter
v7.2.2.1 or newer
by invoking VideoGrabber.ONVIF_SetStr (“RTSP_Source_Axis_IrCutFilter_str”, Value)
with Value = “auto”,
“enabled” or “disabled”


– possible wrong video clip duration/frame count when reopening a video clip that has already been opened

– video capture devices -> VideoFormats/VideoSizes/VideoSubtypes lists: duplicates items with some capture devices

– IP cameras in HTTP/MJPEG mode: excessive frame rate

v10.8.4.2 – August 24, 2018


– default Display_AspectRatio value changed from ar_Stretch to ar_Box


– loosing the focus of the current control when starting the video (preview, recording or playback)

– when the preview/recording is running, CameraControlValue and VideoQualityValue now return the real value read from the video capture

– preview/recording may fail to start with some video capture devices

– OpenPlayer returns true although the file does not exist

– OpenPlayer / RunPlayer may fail when invoked from the OnPlayerEndOfStream event

– when capturing all the frames of a video clip in burst mode, the OnFrameCaptureCompleted event does not occur for the last frame of the clip

– http cameras in MJPEG mode may fail to start


function SetDisplayParent lets attach additional video windows to controls or forms:

– Delphi/C++ Builder: function SetDisplayParent (DisplayIndex, TWinControl descendant)
– other languages: function SetDisplayParent (DisplayIndex, window handle)

Usage :
VideoGrabber.SetDisplayActive (1, true)
VideoGrabber.SetDisplayParent (1, Panel1)
VideoGrabber.SetDisplayActive (2, true)
VideoGrabber.SetDisplayParent (2, Form2)

v10.8.4.1 – August 7, 2018


function Monitor_Primary_Index returns the index of the primary monitor (to use with SetDisplayMonitor and GetMonitorBounds)


– some webcams may fail to start, saying a codec is missing, although no extra codec is needed

– OnAudioPeak event not working in some cases

– OnAudioPeak event: Left_DB and/or Right_DB parameters returning randomly -2147483648

– CSharp component unstable under certain circumstances

v10.8.2.8 – June 11, 2018


– player reports incorrect clip duration

– when invoking AVIInfo and/or AVIDuration a 1st time on a valid clip, then a 2nd time on a corrupted clip, at the 2nd time the functions report the
duration of the 1st clip, instead of 0

– memory leak

– PausePreview / ResumePreview not working properly under certain circumstances

v10.8.2.6 – May 31, 2018


– setting VideoFormatIndex with a value > 0 not taken in account

v10.8.2.4 – May 24, 2018


– opening a clip may fail randomly under certain circumstances

– in certain cases, the 1st opening of a WMV clip is correct but next openings show a shifted image

– the OnInactive event occurs now only when the component stops (in previous versions it occurred also while connecting asynchronously to an URL)

– when invoking ShowDialog (e.g. ShowDialog (dlg_VideoCompressor), some tabs of the dialog are missing)

– IP cameras: jerky video when AudioSource=as_UseExternalAudio (when the audio source is a PC’s audio capture device e.g. line in or microphone)

v10.8.2.2 – May 14, 2018


– support of NET Framework 4.7.2

– function ONVIFDeviceInfo (onv_MacAddress) returns the MAC address of the network port of the IP camera


– webcams: if a 1080p or 720p video size is available, it is selected by default instead of 320×240.


– IP cameras: after a connection failure (camera not available or wrong URL), invoking StartPreview() or StartRecording() with a live URL failed to

– during the reencoding, CurrentState() was returning cs_Preview, instead of cs_Reencoding

– text overlay: the overlay position may change depending on the Windows’s “Display Settings” -> “Scale” setting

– StartSynchronized not working

v10.8.1.5 – April 23, 2018


– text overlay: when TextOverlay_HighResFont = true, the last character of the overlay may be missing with some fonts

– StartPreview may fail if AudioDeviceRendering=true and the video source has no audio

– StartRecording could have started with black screen if no write rights in the recording folder.
Now StartRecording just fails to start and an error is reported by the OnLog event.

v10.8.1.4 – April 10, 2018


– hanging when stopping the video on some platforms (may appear after the Windows 10 1709 update)

– when TextOverlay_HighResFonts=true and TextOverlayAlign=tf_Center, the text is not centered correctly


– support of the madVR video renderer

– QT quick start demo project

– property Display_Embedded_FitParent

– GetItemNameFromList (‘RTSP_LIC_VERSION’, 0)
returns “2018” if the version of both TVideoGrabber and the RTSP filter are >= 2018

– GetItemNameFromList (‘VIDGRAB_LIC_VERSION’, 0)
returns “2018” if the TVideoGrabber version is >= 2018

v10.8.1.2 – March 13, 2018


ONVIF PTZ support: continuous PTZ, absolute PTZ and relative PTZ with the following functions:
  . ONVIFPTZGetLimits
  . ONVIFPTZGetPosition
  . ONVIFPTZSetPosition
  . ONVIFPTZStartMove
  . ONVIFPTZStopMove

– ONVIFPTZPreset (create, remove, goto)

– ONVIFPTZSendAuxiliaryCommand

– ONVIFDeviceInfo

– IP Cameras and URLs: it is now possible to use an URL as video source and a PC microphone or other audio capture device as audio source with the
following sample code:

VideoGrabber.VideoSource = vs_IPCamera

VideoGrabber.AudioDevice = VideoGrabber.AudioDeviceIndex (…)
VideoGrabber.AudioSource = as_UseExternalAudio

// VideoGrabber.AudioDeviceRendering = true // if needed to render
VideoGrabber.AudioRecording = true
VideoGrabber.RecordingMethod = …

– C#/VB.NET DLL for .NET 4.7.1

– Latest Delphi & C++Builder Tokyo 10.2.2 update


– RecordingMethod = rm_ASF may fail when the source is the RTSP/RTMP/HTTP/ONVIF DirectShow source filter, depending on
RecordingInNativeFormat is enabled or disabled

– possible audio/video sync problem when RecordingMethod = rm_MP4

– text and image overlay transparency/alphablending may not work properly or the alphablending quality is bad

– OnMouseDown event may not work in some cases

v10.6.2.2 – May 9, 2017


– possiblity to overlay the VU-meters over the video frames with VUMeter=vu_AnalogOverlay or VUMeter=vu_BargraphOverlay


– player: forwarding, rewind and scroll may fail

– player: setting PLayerFramePosition may not be taken in account- property VideoDelay now works even if the frame grabber is disabled

– when recording the screen, the playback of this recording plays faster

– OnMouseLeave event occurs while the cursor is within the video windows

– vu-meters may not work in the player

– possible unstable behavior in WPF


– components for Delphi/C++Builder 10.2 Tokyo

– components for .NET Framework 4.6.1, 4.6.2 and 4.7

– property ExtraDLLPath lets you specify the folder location of the binaries of the Datastead RTSP/RTMP/HTTP/ONVIF DirectShow source filter and/or
the Datastead Multipurpose Encoder (in this case it is not necessary to register the filters nor run the filter’s installer)

– property VideoStreamNumber lets you select the video stream (in the 0..n-1 range) when a clip has more than one video stream

– property OnMouseDown_Video, OnMouseUp_Video and OnMouseMove_Video return directly the coordinates of the cursor in the video frame

– property OnMouseDown_Window, OnMouseUp_Window and OnMouseMove_Window return directly the coordinates of the cursor in the video window
(useful e.g. to popup a context menu)

v10.5.1.4 – October 14, 2016


– motion detection may not work

v10.5.1.2 – October 12, 2016


– support for ONVIF cameras (e.g. onvif:// through our Datastead RTSP/RTMP/HTTP/ONVIF DirectShow Source Filter

– function ONVIFSnapshot to capture ONVIF JPEG snapshot

– alpha blending of text overlays with SetTextOverlay_AlphaBlend and SetTextOverlay_AlphaBlendValue (in the 0..255 range)


– when TextOverlay_HighResFont is enabled, the “OnTextOverlayScrollingCompleted” event occurs before the end of the text is displayed

– alpha blending of image overlay may not work in certain cases

– chroma keying of image overlay not working

– cannot pause WMV recording when the frame grabber is disabled

– TVideoGrabber tries to reconnect when the AVERMEDIA LGP is unplugged

– no audio rendering with the AVERMEDIA LGP with HDMI input

– Point Grey cameras through the FlyCapture SDK raise an error when starting the preview or recording

– AVIInfo returns wrong values

– C#: OnFrameBitmap callback may fail in some cases

v10.4.2.4 – June 16, 2016


– Delphi/C++Builder 10.1 Berlin component included

– .NET 4.6 and 4.6.1 components included


– reencoding to WMW may fail (ReencodingMethod = rm_ASF)

– video rendering may appear delayed when the frame grabber is enabled

v10.4.1.2 – May 17, 2016


– Delphi and C++ Builder 10.1 Berlin VLC components

– possibility to overlay the VU-Meters (analog or bargraph) over the video frames

– possibility to use the VU-meters and bargraphs to display custom values (instead of audio level)


– less memory consumption when the frame grabber is enabled

– 1920×1080 supported by ASF recording (RecordingMethod = rm_ASF)

– wrong text overlay positionning

– when connecting the OnFrameOverlayUsingDC event in a WPF application, an error may occur in the event callback

– possible black video frame in a WPF application

– possible video blinking in a WPF application

– possible error L1496 when compiling a Delphi application

v10.2.2.1 – November 23, 2015


– AutoFileName = fn_Modulo

– SetAudioRendererAdditional

– GetLastFrameBitmapBits

– GetLastFrameBitmapBits2

– MultipurposeEncoder_ReindexClip


– StartPreview sometimes hangs when NetworkStreaming = ns_ASFDirectNetworkStreaming

– StartPreview or StartRecording fails when the video source is the Datastead RTSP filter and VideoRenderer = vr_None

– OnRecordingStarted event not called in some cases

– changing the BackgroundColor property may be ignored

– VideoRotation = rt_custom_angle may not work

– when displaying on 2 monitors, the video may appear only on one

– text overlay not centered when TextOverlay_VideoAlignment is set to a centered value

– using the Monogram DirectShow AAC encoder to compress audio fails to bind

v10.1.2.8 – April 20, 2015


playlist: video freezes and/or video window not properly located

SetCameraControl (cc_Exposure…) may not be saved in some cases (the webcam goes back to its auto exposure mode)

v10.1.2.6 – April 16, 2015


VideoRendererPriority property: default Speed, possible values: TVideoRendererPriority = (vrp_Speed, vrp_Quality)
Set it to vrp_Quality to get a smoother display quality at large video sizes (this may increase the CPU load).


wrong alignement when invoking SetTextOverlayAlignment or SetImageOverlayAlignement centered (oa_CenterTop, oa_LeftCenter, oa_Center,
oa_RightCenter or oa_CenterBottom)

after setting PlayerTimePosition = 0 or PlayerFramePosition = 1, the trackbar may reflect another position

v10.1.2.4 – March 12, 2015


PauseRecording() and ResumeRecording() now supported with the Avermedia Live Gamer (C875)


Multipurpose live network streaming works when invoking StartPreview() but not when invoking StartRecording()

AVI Recording fails to recopy the file at the end of the recording when PreallocCapFileEnabled is enabled

v10.1.2.2 – March 6, 2015


SetImageOverlay_VideoAlignement and SetTextOverlay_VideoAlignment functions

Support for our new Datastead Multipurpose DirectShow Encoder. If installed, this DirectShow multiplexer
filter allows the TVideoGrabber SDK, with 3 lines of code, to record in many formats, stream in RTSP to the network, or transcode/merge/edit clips.
The sample code is included in the MainDemo project.

The Multipurpose Encoder is supported with the following new functions:

– EnableMultipurposeEncoder
– SetMultipurposeEncoderSettings
– GetMultipurposeEncoderSettings
– MultipurposeEncoder_GetLastLog
– MultipurposeEncoder_GetCurrentInfo
– GetLastFrameBitmapBits
– GetFrameBitmapInfo
– OnMultipurposeEncoderProgress
– OnMultipurposeEncoderError
– OnMultipurposeEncoderCompleted


– no video when playing H265 clips with the LAV filters installed.

– possible huge memory usage in WPF at large video sizes

– changing the size of the video window can causes flicker

– cannot record audio+video with a DV source

– possible error when accessing the TextOverlay_Font property

– setting the JPEGQuality property is ignored

– CaptureFrameSyncTo function not triggering the OnFrameCaptureCompleted event

– the Dazzle DV recorded HD does not work

v9.2.1.4 – July 1, 2014


– IP cameras in HTTP mode may not work

– invoking a TVideoGrabber action (e.g. StopRecording) from a TVideoGrabber event (e.g. OnFrameProgress2) may hang

– using an audio capture device as audio source for the RTSP filter with AudioSource = as_UseExternalAudio may fail if AudioDeviceRendering is

v9.2.1.2 – June 25, 2014


– stopping the preview or recording when the DirectShow RTSP filter is used as source may block

– error may occur when exiting the application

v9.1.1.2 – June 16, 2014

what’s new

new development platforms supported:
– Visual Studio 2013 (NET Framework 4.5.1)
– RadStudio XE6

– asynchronous connection to IP cameras and RTSP / RTMP / HTTP URLs with the OpenURLAsync property (enabled bu default)

– overlays can be applied directly to the video window(s) so they are not stretched when the video windows are resized
with the new SetTextOverlay_TargetDisplay and SetImageOverlay_TargetDisplay properties
(when using more than one renderer, the overlay can be applied only to the specified display window)

– text overlays: high resolution fonts by enabling SetTextOverlay_HighResFont
Note that the high resolution fonts are supported in C++, C# and VB.NET, ActiveX and Delphi/ C++Builder XE or higher.
The high resolution fonts support gradient colors by enabling SetTextOverlay_GradientMode and specifying the 2nd color with

– it is possible to use more than 2 video renderers with the new set of functions:
VideoGrabber.SetDisplay_… (displayindex, value)
VideoGrabber.GetDisplay… (displayindex)

– overlay settings can be set directly through functions by specifying the overlay indexes by invoking the new set of functions (extensively listed below)

E.g. to set the string of the 4th overlay:

VideoGrabber.TextOverlay_Selector = VideoGrabber.TextOverlay_String = “string for overlay 4”
can be replaced by
VideoGrabber.SetTextOverlayString (4, “string for overlay 4”)


– VideoGrabber.OpenPlayerAtFramePositions (NewFrame, -1, …) do not work properly

– changing VideoGrabber.PlayerSpeedRatio is ignored in some cases

– Pinnacle Dazzle capture device does not work

– audio recording only of a DV capture device does not work

– reencoding may stop before completion

– invoking StopPreview() or StopRecording() may hang in some cases

– inconsistent behavior of SetVideoControlMode, or SetVideoControlMode2 (top-down or left-right flipping settings of USB or PCI video capture

– scrolling of text overlays slows-down progressively and stops after a few hours

– AVIDuration may return 0 instead of the real duration

v8.8.4.1 – October 4, 2013


– VideoGrabber.FullScreen=true: the video goes in full screen mode but the application remains visible in some cases

– playlist: the video window now remains visible between clips

– VideoGrabber.NetworkStreaming enabled: invoking StopPreview() or StopRecording() now stops the graph immediately (previously it took a few

– freezing or error when stopping the preview or recording in some rare cases

– Delphi or C++Builder: changing the BackgroundColor property was ignored


RadStudio XE5 components

it is not possible to use up to 8 display windows, just invoke the SetDisplay… functions with an index between 2 and 8 (0 and 1 are reserved to the
existing Display… and DualDisplay… properties), e.g.:
Videograbber.SetDisplayActive (2, true);
Videograbber.SetDisplayActive (3, true);
Videograbber.SetDisplayMonitor (2, 1);
Videograbber.SetDisplayMonitor (3, 2);
Videograbber.SetDisplayFullScreen (2, true);
Videograbber.SetDisplayFullScreen (3, true);

v8.8.2.2 – July 24, 2013


– playback: half top of the video window may appear black when some video processings are applied (e.g. 90° rotation, etc…)

– audio VU-meter may not work properly

v8.8.2.1 – July 11, 2013


– possible slower sample times when VideoSource = vs_ScreenRecording, vs_IPcamera or vs_Mixer

– ASF/VMW playback: half top of the video window appears black after installing the Microsoft’s KB2803821 update.

– static playlists: now the components takes as default resolution the size of the 1st clip.
To specify a non-default resolution invoke UseNearestVideoSize (width, height, true) before invoking OpenPlayer()

– VideoSource = vs_JpegsOrBitmaps hangs when invoking StartPreview() or StartRecording() and no sample is passed from the
OnVideoFromBitmapsNextFrameNeeded event

– possible access violation when destroying the component

v8.7.2.5 – April 29, 2013


– memory leak

– OnFirstFrameReceived event may not occur in some cases

– invoking StopRecording() may hang in some cases

– OnMouseWheel event may not work in some cases

– RecordToNewFileNow() may stop working after a few calls

– possible instability when using several TVideoGrabber instances with the VS.NET(DLL) component

– RecordingTimer may stop working after some time

– when specifying a ZoomCoeff value, the overlays are applied to the zoomed image, even if OverlayAfterTransform = false

– preview or recording may take time to start in some cases

– when specifying a PlayerSpeedRatio <> 1, the real PlayerSpeedRatio may be faster than the specified PlayerSpeedRatio


– property OnFrameBitmapEventSynchrone: if enabled in Windows applications the OnFrameBitmap event is synchronized from the main thread,
allowing to update controls or perform operations that can block

v8.7.2.4 – March 13, 2013


– when VideoSource = vs_JpegsOrBitmaps, pausing the recording does not pause the preview

– CPU load increases after restarting the preview

– possible error when reopening RTSP URLs

v8.7.2.3 – March 7, 2013


setting PlayerForcedCodec=”IGNOREFFDSHOWSETTINGS” just after creating the component prevents it to save/restore the current settings of the
FFDShow encoder when it is selected as video compressor


– generating a new file during recording may create a 0 size file when the RTSP filter is used as video source and RecordingInNativeFormat is

– AsynchronousStartFromThread .NET demo project did not work correctly

– stopping the recording when RecordingMethod = rm_MP4 may freeze

– invoking CaptureFrameTo() before opening a clip may return an empty frame

– invoking GetLastFrameAs…() just after opening a clip may return an empty frame

– property AutoFileNameDateTimeFormat lets you specify a custom date/time format when the recording file names are generated automatically and
AutoFileName is set to fn_DateTime

– OnDeviceReconnecting event: occurs when a RTSP source is lost and the RTSP filters reconnects automatically (by default)

– OnDeviceReconnected event: occurs when a RTSP source is reconnected (this event occurs always after the OnDeviceReconnecting event)

– setting PlayerForcedCodec=”IGNOREFFDSHOWSETTINGS” prevents TVideoGrabber to save/restore the FFdshow encoder settings

– wrong trackbar position after changing the PlayerSpeedRatio setting

– OnDblClick event may not occur

– audio may disappear while the playlist is playing

– ImageOverlay_ChromaKey may fail

– unable to desactivate MotionDetector_UseThisReferenceSample by passing a NULL bitmap handle / empty file name

v8.7.2.1 – January 29, 2013


lower CPU load when the frame grabber is enabled

more accurate trackbar seeking when PlayerTrackbarSynchrone is enabled

better deinterlacing quality when VideoProcessing_Deinterlacing is set to di_FullSize


SetTextOverlayCustomVar ignores the TextOverlaySelector value passed as parameter

v8.7.1.5 – January 25, 2013


– frozen frame between pause and resume when recording with RecordingCanPause=true and RecordingPauseCreatesNewFile=false

– excessive background erasing may show black video

– player may play at wrong speed after a recording

v8.7.1.4 – January 21, 2013


– VideoGrabberWPF: excessive CPU load and memory consumption when the component was active

– RecordingMethod = rm_ASF: the final recorded file is truncated

– possible jerkiness or artifacts at large video sizes

– OnFrameProgress event may not occur if VideoRenderer = vr_None

– RecordToNewFileNow mail fail after the 2nd call

– MultiplexedRole = mr_MultiplexedMosaic4 or mr_MultiplexedMosaic16: the OnMouse events reported the global xy position instead of the respective
xy position of each multiplexed input (in 2×2 or 4×4 layout)

v8.6.2.10 – November 16, 2012


64bit OCX component available (vidgrab_NET_x86.ocx and vidgrab_NET_x64.ocx

OnMouseEnter/OnMouseLeave events

WPF component available: VideoGrabberWPF control of the VidGrabNoForm namespace (look at the WPFQuickStartDemo demo project for sample


player trackbar may stop working after invoking RunPlayer()

changing PlayerSpeedRatio during playback makes the clip restart from 0

AVISynth scripts may raise an error in some cases

possible error with some Intel graphic chipsets

possible error or recorded clip corrupted when stopping the recording

C#/VB .NET DLL: some events may not be raised when using VideoGrabber component from the VidGrabNoForm namespace

VideoSource = vs_Mixer: sync problem when recording the mixer with an audio capture device and VideoRenderer = vr_None

v8.6.2.8 – September 12, 2012


– enabling ImageOverlay_StretchToVideoSize has no effect

– reencoding may fail with some AVI clips when ReencodingMethod = rm_AVI

– black window when restarting preview after a “RecordingMethod = rm_MP4” recording

– no audio when playing some MP3 or WMV clips

– some MP4 clips may have played top-down

v8.6.2.6 – August 30, 2012


– starting preview or recording may take a few seconds

– playing an HD clip can take longer than the real duration of the clip

– OpenPlayerAtTimePositions() and OpenPlayerAtFramePositions() may not work properly

v8.6.2.4 – August 14, 2012


– possible error when invoking UseNearestVideoSize () and then opening some video clips

– possible error when invoking UseNearestVideoSize () and video source = vs_ScreenRecording

– small VU-meter range when Recording than when Previewing

– player: opening a clip may take a few seconds

– some MP4 clips may show a black window when the MPC codecs are installed

v8.6.2.3 – August 6, 2012


– support for the AJA KONA capture card (see the user guide for more information)


– MP4 clips may fail to play

– MP4 recording with on the fly compression may fail

– static images in player: overlays stop refreshing after 1 second

– CaptureFrameTo() may fail with video clips

v8.6.2.2 – July 31, 2012


– .NET DLLs: possible error when creating/destroying programmatically the component multiple times

– CaptureFrameTo() may fail when the player is paused

v8.6.2.1 – July 26, 2012


– C# and VB.NET: now the component supports the native IntPtr type, e.g. “Handle.ToInt32()” can be replaced by “Handle”

– TVideoGrabber now supports direct harware-encoded H264 to MP4 recording with the Logitech C920
(look at the “Capture devices with a H264 hardware encoder” chapter under “video capture devices” in the user guide)

– VideoGrabberThread class in the VS.NET(DLL) component: lets start an IP camera or open a clip without blocking the main thread.
(look at the “AsynchronousStartFromThread” demo project included under VS.NET(DLL)Demos

– function GetCameraExposure returns the exposure time as double value, e.g. 1/8, 1/16, etc…

– function GetCameraExposureAsString returns the exposure time as a string, e.g. “1/8”, “1/16”, etc…

– procedure SetCameraExposure (Value: Double) lets set the camera exposure time as 1/8, 1/16, etc…

– function GetLastAverageStreamValue (StreamType: TStreamType) return the current average level (for an audio stream) or pixel value (for a video

– function SendImageToVideoFromBitmaps2 (pBtmapInfo: LongInt; pBitmapBits: LongInt; EndOfData: Boolean) lets pass a bitmap to VideoSource =
vs_JpegsOrBitmaps directly by passing a pointer to the bitmap bits
note: if the header is created dynamically, don’t forget to set BitmapInfo^.BmiHeader^.biSize := sizeof (TBitmapInfoHeader), otherwise the call to
SendImageToVideoFromBitmaps2 will be ignored


– video may appear top-down when playing MP4 clips

– MP4 recording with mutiple pause/resume: the video recording may freeze

– AVIInfo() and AVIInfo2(): incorrect frame rate reported for some clips

– PlayerSpeedRatio does not play at the specified speed (e.g. PlayerSpeedRatio=0.5 plays at 0.25)

– ASF(WMV) recording with multiple pause/resume (RecordingMethod=rm_ASF, RecordingCanPause=true and RecordingPauseCreatesNewFile=false):
incorrect audio stream duration

– changing the name of the component under Delphi or C++Builder causes an access violation

– memory leak when invoking multiple SetImageOverlayFrom… may cause the overlays to disappear

– black video window when starting the preview or recording with some capture devices

– forcing a video size with UseNearestVideoSize (width, height, true) with video capture devices may be ignored

– setting VideoProcessing_Rotation=rt_custom… with VideoProcessing_RotationCustomAngle causes an access violation

– VP8 recording: specifying a RecordingVideoBitRate value was ignored by the VP8 codec

– VideoProcessing_Deinterlacing = di_HalfSize does not work

– playback of static images: specifying PlayerDuration before invoking OpenPlayer() ignored

– VideoSource=vs_JpegsOrBitmaps:
 . the first frames passed with SendImageToVideoFromBitmaps() may have ben duplicated or lost
 . setting the “EndOfData” parameter of SendImageToVideoFromBitmaps was ignored
 . 8-bit bitmaps ignored by SendImageToVideoFromBitmaps()

– resizing an image overlay with alpha transparency makes the overlay disappear

– application focus may be lost when starting the video

– screen recording with ScreenRecordingUsingCoordinates may freeze

– VS.NET: exiting the application freezes if the TVideoGrabber component has been created programmatically and has no parent

v8.6.1.6 – January 4, 2012


now the component supports compression after recording (CompressionMode = cm_CompressAfterRecording) from other recording methods than


– same USB audio capture devices may be listed twice in AudioDevices list with different names

– C#: OnRecordingStarted event may be blocking when waiting for it from a waitable object.

Delphi/C++Builder MainDemo project: the trackbars that control the “video quality” and “camera control” settings of the capture devices were

v8.6.1.4 – December 2, 2011


– wrong player size reported by VideoWidth_PreferredAspectRatio and VideoHeight_PreferredAspectRatio, when UseNearestVideoSize (width, height,
true) has been invoked to specify a video size before invoking OpenPlayer()

– audio not synchronized when recording in other formats than AVI and ASF and RecordingCanPause is enabled

– possible jerky video when the frame grabber is enabled

v8.6.1.2 – November 21, 2011


– VideoSource = vs_JpegsOrBitmap:

It is now possible to pass the video frames synchronously by invoking SendImageToVideoFromBitmaps in real time.
(note that SendImageToVideoFromBitmaps must be invoked at least one time before invoking StartRecording)


– PlayerTrackBarSynchrone now enabled by default

– Reencoding_Method now set to rm_ASF by default


– codec settings may not be properly saved/restored

– video quality / camera control settings may not be properly saved/restored

– adjustPixelAspectRatio may resize DV clips, even when the property is disabled

– possible freezing when invoking CaptureFrameSyncTo

– specifying a play duration for a static image in a playlist, e.g.:
VideoGrabber.PlayList (pl_Add, “c:folderimage3.bmp”)
VideoGrabber.PlayerDuration := 40000000
VideoGrabber.PlayList (pl_Add, “c:folderimage4.bmp”)
VideoGrabber.PlayList (pl_Play, “”)
was ignored, the playing duration of each image was 1 second.

– if the playlist begins with an audio clip, the next video clips are not displayed

– when opening multiple audio clips successively, the trackbar may jump at the end, and then be inoperant until the application is restarted

v8.5.3.1 – October 10, 2011


– possible unexpected frame captures when WebcamStillCaptureButton = wb_Enabled and the preview is restarted

– possible freezing when playing static images

– codec settings may not be properly restored

– access violation when MultiplexerRole = mr_MultiplexedMosaic4 or mr_MultiplexedMosaic16

– the last VideoFormat index of the VideoFormats list can”t be selected

v8.5.2.8 – September 13, 2011


– possible freezing when seeking a clip

v8.5.2.7 – September 12, 2011


– 32/64 bit Delphi XE2 component released.


– error when invoking RecorToNewFileNow() or when the recording timer is enabled

– VideoSource = vs_VideoFileOrURL: when specifying a FileOrURL_StartTime and/or FileOrURL_StopTime, the values are ignored, the clip starts from 0
and plays until the end.

v8.5.2.5 – August 23, 2011


– when using more than 1 identical video capture devices, the other devices are listed as “device#2, device#2, device#2…” instead of “device#2,
device#3, device#4…”

– the OnRecordingStarted event may not occur in every cases

– background may not be properly erased while restarting the preview, recording or playback

– when the Synchronized property is enabled on several components, only one component starts when invoking e.g. StartPreview()


– seeking may not work properly depending on the clip encoding

v8.5.2.4 – July 28, 2011


– seeking may not work properly depending on the clip encoding

– wrong duration reported with some audio clips

– unable to select the #3 or more capture device when more than 2 identical capture devices are used

– OnPlayerOpened event may not occur in some cases

v8.5.2.3 – July 15, 2011


– possible corrupted clips after long AVI recordings

– jerky video in mixer mode

– possible jerky video in MJPEG mode

– bad audio/video sync with some webcams

– devices not properly listed in the video and/or audio devices lists

– back video with some capture devices


– function PointGreyConfig (ConfigType: TPointGreyConfig; var PGRActionValue: LongWord; ulRegister: LongWord; ulMode: LongWord; ulLeft:
LongWord; ulTop: LongWord; ulWidth: LongWord; ulHeight: LongWord; ulPercentage: LongWord; ulFormat: LongWord): LongInt;
lets configure a Point Grey camera

– RecordingMethod = rm_MPG, the MPEG2 multiplexer can be specified with VideoGrabber.Multiplexer = VideoGrabber.MultiplexerIndex (mux name)

– property ASFBufferWindow: LongInt
lets increase the network streaming latency (expressed in ms)

– property AspectRatioToUse: Double
lets override the display aspect ratio (applies only to the display window, not the recording or frame capture)

– possibility to reindex an ASF(WMV) video clip as follows:
VideoGrabber.Reencoding_SourceVideoClip = the file name of the clip to reeindex
VideoGrabber.Reencoding_NewVideoClip = “ASFINDEX”

v8.5.2.2 – March 28, 2011


– codec settings previously saved were not restored (did not occur with all codecs)

– codec names returns an empty string when invoking AVIInfo / AVIInfo2

– adjusting the AudioVolume property was changing the global audio volume of the PC

– incorrect frame progress when playing audio clips

– dropped frames not reported when recording in ASF format (RecordingMethod = rm_ASF)


– the OnFrameOverlayUsing… and OnFrameBitmap events now occur after the text overlays and image overlays have been applied

– the AudioChannelRenderMode settings now apply also to the preview and recording (applied previously only to the playback)


– the PlayerVideoCodec/PlayerAudioCodec properties and the GetVideoCodec/GetAudioCodec functions now return the FourCC between parenthesis
after the codec name

v8.5.2.1 – February 28, 2011


– audio capture devices failed to bind in certain cases

– wrong sample time reported by the OnFrame… events when playing an audio clip

– possible access violation when the component is destroyed

– player: overlays fail to refresh when the dual display is enabled and the clip is paused

– playing a playlist with pl_loop sometimes stops


– possibility to specify preferred codec(s) to use by passing it(them) with the “prefer:” keyword to the PlayerForcedCodec property, e.g.:

VideoGrabber.PlayerForcedCodec = “prefer:Xvid MPEG-4 Video Decoder”
VideoGrabber.PlayerForcedCodec = “prefer: …”
VideoGrabber.PlayerFileName = …clip to play

To reset the settings set:
VideoGrabber.PlayerForcedCodec = “”

v8.5.1.9 – February 10, 2011


OnDeviceArrivalOrRemoval event not notified after invoking RefreshDevicesAndCompressorsLists

file possibly recorded in “slow motion” when VideoSource = vs_Mixer and RecordingMethod = rm_ASF

playing some .ax URLs may fail

end of reecoding not reported by the OnReencodingCompleted event in certains cases

OSPrey cards: switching from Composite to SVideo may fail

OSPrey cards: possible BSOD when restarting the preview


property ScreenRecordingLayeredWindow: Boolean

v8.5.1.8 – January 28, 2011


function IsVideoSignalDetected returns false even if video signal available

setting ASFVideoBitRate=-1 or SetASFVideoFrameRate=-1 does not set them back to their default values after a value has been set

OnDiskFull event may not be raised in certain cases while recording is running

no sound with Decklink cards when recording audio only


when ASFProfileVersion=apv_ProfileVersion_9, specifying a ASFVideoQuality>-1 (between 0 and 100) activates the WMV9 VBR recording mode (by
default in CBR mode)

v8.5.1.7 – January 10, 2011


RecordingMethod = rm_WebM lets record in WebM format by using the Google’s VP8/WebM codecs and the Xiph’s Vorbis codecs

QuickDeviceInitialization: Boolean initialize the video capture device with its default settings, without restoring the saved settings (useful mainly with

TextOverlay_Scrolling: Boolean activates/deactivates the scrolling of the text overlay, now TextOverlay_ScrollingSpeed=0 pauses the scrolling,
TextOverlay_ScrollingSpeed>0 scrolls from right to left and TextOverlay_ScrollingSpeed<0 from left to right

Support of Decklink playout. By default the video is displayed in 720×480, invoke UseNearestVideoSize (1920, 1080, true) to display it in HD size (the
video clip must be 25 or 29.97 fps)


TextOverlay_ScrollingSpeed = 0 now just pauses the scrolling (see above)

OCX/NET DLL versions: devices property lists (VideoDevices, AudioDevices, VideoSizes, etc…) had an extra line that is now no more added.
If the last line is missing in your ComboBox lists after upgrading, upgrade the procedure that updates your ComboBox by using the new sample code of the
AssignListToComboBox function included in the VidGrabUtil.cs or VidGrabUtil.vb of the MainDemo project


Multiplexed mode does not work properly when MultiplexedRole is used

Jerky trackbar behavior when seeking clips

“Google Camera Adapter” was listed in the VideoDevices list, although not useable

black video window with some Logitech webcams

v8.5.1.5 – November 23, 2010


– possible excessive CPU load when VideoSource = vs_ScreenRecording

– possible periodical freezings when previewing/recording IP cameras

– possible error when opening .WAV audio clips when third-party codecs packs are installed

– VideoGrabber.PlayList (pl_Add, “”) + VideoGrabber.PlayerFileName=”PLAYLIST” + VideoGrabber.OpenPlayer() fails if the clips in the list are only

v8.5.1.4 – November 12, 2010


– player reports aspect ratio reports 0x0 with some MPEG2 codecs, possibly with no video displayed or frame capture not available

– no audio recording with Dazzle DVC 100

– possible freezing with some MPEG clips when PlayerTrackbarSynchrone is enabled and making successive and consecutive seekings

– video clip position not updated fast enough when seeking to a new position and PlayerTrackbarSynchrone is enabled

– possible error when starting a recording in MPG format

v8.5.1.3 – November 3, 2010


– random freezings of 1 or more seconds when previewing/recording IP cameras

– wrong sample times returned when the frame grabber is enabled and PlayerSpeedRatio <> 1

– recording of HD camcorder may fail when RecordingInNativeFormat is enabled

– ASF/WMV non-seekable clip stops playing after 1 second

– UseNearestVideoSize() does not apply to IP cameras

– text overlay scrolling may disappear and never reappear when TextOverlay_ScrollingSpeed > 0

v8.5.1.2 – October 25, 2010


– property AdjustOverlayAspectRatio: Boolean (enabled by default)
When enabled and the frame grabber is enabled and the display aspect ratio is different of the source size, the video is resized before applying the overlays
so there are not stretched by the resizing at display time.
This property requires a bit more CPU so it can be disabled to reduce the CPU load.


  • BSOD problem fixed
  • background not properly erased when Display_FullScreen = true and Display_AspectRatio = ar_NoResize

v8.4.1.5 – October 19, 2010


property ThirdPartyDeinterlacer: string

property DirectShowFilters: string (string list of the DirectShow filters available)

property DirectShowFiltersCount: Integer

set PlayerForcedCodec = NOFFDSHOW to prevent the FFDSHOW codecs to be binded by DirectShow

set PlayerForcedCodec = NOMPC to prevent the MPC codecs to be binded by DirectShow

When TextOverlay_ScrollingSpeed > 0 the text overlay can be now scrolled into an area delimited by TextOverlay_Left and TextOverlay_Right at the
TextOverlay_Top location


possible freezing when stopping the app from the debugger under Visual Studio

rare BSOD occuring when starting the application.
Note: This problem remains while the application is running, this will be fixed with the
upgrade released during next days.

v8.4.1.4 – September 30, 2010


the functions below lets you export and import the current video or audio compressor settings (be sure to first select the RecordingMethod, and
VideoCompressor or AudioCompressor index)

– function LoadCompressorSettingsFromDataString (IsVideoCompressor: Boolean; CompressorIndex: LongInt; DataString: string): Boolean;

– function LoadCompressorSettingsFromTextFile (IsVideoCompressor: Boolean; CompressorIndex: LongInt; FileName: string): Boolean;

– function SaveCompressorSettingsToDataString (IsVideoCompressor: Boolean; CompressorIndex: LongInt): string;

– function SaveCompressorSettingsToTextFile (IsVideoCompressor: Boolean; CompressorIndex: LongInt; FileName: string): Boolean;


– some AVI clips fail to play

– bad quality of the text overlays when the frame grabber is enabled and AdjustPixelAspectRatio is enabled

– black video window with the OsPrey 440

v8.4.1.3 – September 22, 2010


– error “set outputfilename (mux/sink)” when enabling the network streaming in preview mode

– jerky seeking while the player is paused

v8.4.1.2 – September 15, 2010


– current control can loose focus when starting the preview, recording or playback

– bad video quality with VMR7 and/or EVR renderers

– error in ASF recording when stopping the recording while the recording is paused when RecordingCanPause and RecordingPauseCreatesNewFile are

– chroma key does not work

– wrong frame rate reported by AVIInfo / AVIInfo2

– cannot open in the player a .WAV clip just recorded if HoldRecording=true + ResumeRecording was used during the recording

– screen recording: cropping and UseNearestVideoSize do not work properly

– updading image overlay settings from the OnFrame… events is slow

– application freezing in VB6 / VC6 when the OnFrameProgress2 event is used

– unplugging a webcam may not be detected every time (the cam stays in use so it can’t be restarted when re-plugged in)

– vigrab_VB6.ocx: the app raises an error or stops responding to events after a variable time

– when selecting a new capture device and VideoSource <> vs_VideoCaptureDevice, the device discovery fails: the VideoSizes, VideoSubtypes and
VideoInputs lists are empty (to reset them if needed, invoke VideoGrabber.ResetVideoDeviceSettings just one time)

– VideoWidth_PreferredAspectRatio and VideoHeight_PreferredAspectRatio report wrong values after invoking UseNearestVideoSize

– reencoding may stop prematurely


tpf_AddToGraph added to the ThirdPartyFilter_AddToList options to simply add a third-party filter to the graph

MP4 recording with RecordingMethod = rm_MP4 by selecting a MPEG-4 codec in the VideoCompressors list (XVid, DivX, etc…)

FLV recording with RecordingMethod = rm_FLV / settings by invoking ShowDialog (dlg_FLVWriter)Optional custom settings by invoking ShowDialog (dlg_FFDShowVideo) and ShowDialog (dlg_FFDShowAudio)

DSCaler Deinterlacer support with VideoProcessing_Deinterlacing = ds_DScaler
settings by invoking ShowDialog (dlg_DScaler)

function GetTranslatedCoordinates (DisplayIndex: LongInt; NativeX: LongInt; NativeY: LongInt; var TranslatedX: LongInt; var TranslatedY: LongInt):

property FrameNumberStartsFromZero: Boolean

property Aero: TAero
TAero = (ae_Default, ae_AutoBestRenderingQuality, ae_ForceOnWhenStartingVideo, ae_ForceOffWhenStartingVideo, ae_ForceOnImmediately,

function MPEGProgramSetting (MPEGProgramSetting: TMPEGProgramSetting; Value: LongInt): LongInt;
TMPEGProgramSetting = (mps_Program_Number, mps_Program_PCR_PID, mps_VideoStream_PID, mps_AudioStream_PID)

v8.2 build – April 12, 2010


– reencoding may stop prematurely

– IP camera recording may stop prematurely

– error when invoking SetTextOverlayCustomVar periodically

v8.2 build – March 10, 2010


– after playing a WMV/ASF file, it was not possible to overwrite it (to record it again) unless restarting the application.

– transparency and/or alphablending may not work properly depending on the image used

– dual full screen mode with Display_FullScreen and DualDisplay_FullScreen enabled on 2 different monitors does not display in full screen mode on one

– first frame not notified by the OnFrameProgress… events when the frame grabber is disabled

– seeking does not work properly with some video clips

– ASF recording freezes or stops after a few minutes

– events do not work in the VC6 MainDemo project

– reencoding or playing a PLAYLIST introduces stops between the clips

v8.2 build – February 25, 2010


– image overlay transparency fails when ImageOverlay_Transparent is enabled and ImageOverlay_Alphablend disabled

– when rendering or recording an audio input of the soundcard, other inputs may be muted

– the OnFrameProgress… event does not occur when opening a clip with the frame grabber enabled and AutoStartPlayer = false

– when selecting several text overlays with TextOverlay_Selector, there may be not displayed correctly when enabling/disabling

v8.2 build – February 9, 2010


– no video in mixer mode if the frame grabber is disabled on the mixer

– random error when invoking GetFrameInfo from the OnFrameProgress/OnFrameProgress2 event

– OnRecording… events may not occur in certain cases

– OnRawVideoSample event may not occur when RawVideoSampleCapture is enabled

v8.2 build – February 2, 2010


background not fully erased when Display_AspectRatio = ar_Box

unable to seek some video seekable video clips

trying to connect indefinitely when some IP cameras do not respond properly

video hickups (small freezings) with some capture devices or during playback

v8.2 build – January 26, 2010


no video in the dual display windows if the first window is not selected

possible black video when recording and the video renderer is vr_VMR7, vr_VMR9 or vr_EVR

the VideoCodec and/or AudioCodec properties report wrong codec names

possible error when generating a new file during asf recording

no audio captured or rendered with some analog TV capture cards

with analog TV cards the default TV channel may display a black video if another channel has not been selected first


OnMotionDetected event: the FrameBitmap parameter is now useless.
To capture the motion frame from this event invoke GetLastFrameAsHBitmap (all versions) or GetLastFrameAsTBitmap (Delphi/C++Builder) as shown in the
MotionDetected event of the MainDemo project (in MainForm)


function GetLastFrameAsHBitmap (all versions) and GetLastFrameAsTBitmap (Delphi/C++Builder)

fast capture of all the frames of a video clip with the following sample code:

VideoGrabber.PlayerFileName = …
VideoGrabber.BurstMode = true
VideoGrabber.BurstCount = 0 // don’t stop capturing
VideoGrabber.StoragePath = “c:yourcapturefolder”
VideoGrabber.BurstInterval = 0
VideoGrabber.BurstType = fc_JpegFile // you can use fc_BMPFile
VideoGrabber.UseClock = false

v8.0 build – November 6, 2009


– OnReencodingCompleted or OnRecordingCompleted event not fired


– the video size of the static playlist can be specified by invoking UseNearestVideoSize() before invoking OpenPlayer()

– the frame rate of the static playlist can be specified by setting the FrameRate property before invoking OpenPlayer()

v8.0 build – October 28, 2009


– Decklink capture cards: SDI audio input not available

– error with some IP cameras

– IP cameras record in uncompressed RGB instead of MJPG format, even when RecordingInNativeFormat is true

– the playlist does not loop when the end is reached although PlayList (pl_Loop, “”) has been invoked

v8.0 build – October 9, 2009


– no audio rendeding when playing a playlist with the following code:

VideoGrabber.VideoSource = vs_VideoFileOrURL
VideoGrabber.PlayList (pl, Add, “clip1.avi”)
VideoGrabber.PlayList (pl, Add, “clip2.avi”)

VideoGrabber.VideoSource_FileOrURL = “PLAYLIST”)

– PlayerFramePosition may return negative values

– error in TVideoGrabber.h when compiling the “VC++(DLL)” version from native C

– freezing when starting preview with some video capture devices

– Axis IP cameras: axrtsphttp://… URL fails to start preview

v8.0 build – September 3, 2009


– function ResetVideoDeviceSettings() can be invoked when the component is inactive to reset the settings of the video capture devices to their default


– black video when starting preview with some capture devices (e.g. Logitech webcams)

– no preview while the ASF recording is paused

v8.0 build – August 31, 2009


– Blackmagic Decklink: not possible to select the HDMI input

– no video displayed when starting the preview after playing a playlist

– the trackbar progress does not correspond to the video clip position when PlayerSpeedRatio <> 1, PlayerAudioRendering enabled and FrameGrabber
<> fg_Disabled

– RecordingTimer fails when using the VidGrabNoForms class in .NET(DLL) version

– ThirdPartyFilter_ShowDialog does not display any dialog


possibility to pause/resume the ASF recording when RecordingCanPause=true and RecordingPauseCreatesNewFile=false

v8.0 build – August 24, 2009


Support of the Vista’s Enhanced Video Renderer (set VideoGrabber.VideoRenderer = vr_EVR)


– incorrect logo position whatever the LogoLayout setting when LogoDisplayed = true

– blank between clips when VideoVisibleWhenStopped=true or during the playback of a playlist

– player position jumps after a PausePlayer | change PlayerSpeedRatio | RunPlayer

“Cannot focus a disabled or invisible window” error when moving the mouse over the video window and the “MouseWheelEventEnabled”
property is enabled

v8.0 build – June 24, 2009


– function Mixer_SetupPIPFromSource lets display the video from another TVideoGrabber in PIP (Picture In Picture) mode

– function PlayerFrameStep lets step one frame forward (or n frames forward) while the clip is paused


– possible error when the text overlay is used, the error occurs after a various time

– shadow of the text overlay not correctly centered when the text overlay is not aligned to the left side

– possible flickering during playback

v8.0 build – June 21, 2009


– property VideoRendererExternalIndex

– it is now possible to extract the audio of a clip during reencoding by just specifying “.wav” or “.mp3” as extension for the Reencoding_NewVideoClip
file name
Remark: the Elecard LAME Audio encoder (freeware) is required to encode in MP3, it can be downloaded here


– clip position jumps when changing the PlayerSpeedRatio value during playback

– trackbar position does not match the current position when PlayerSpeedRatio <> 1

v8.0 build – June 10, 2009


– support for HD camcorders

– procedure SetFrameCaptureBounds (LeftPosition, TopPosition, RightPosition, BottomPosition) lets specify a sub-rectangle to capture on the video


– Trendnet IP100 IP camera fais to connect

– Secifiying a Reecoding_StartFrame and/or Reencoding_EndFrame may be ignored depending of the way the source clip is encoded

v8.0 build – June 7, 2009


– property Display_AlphaBlendEnabled

– property Display_AlphaBlendValue

– property Display_TransparentColorEnabled

– property Display_TransparentColorValue

– property DualDisplay_AlphaBlendEnabled

– property DualDisplay_AlphaBlendValue

– property DualDisplay_TransparentColorEnabled

– property DualDisplay_TransparentColorValue

– function Mixer_SetPIPLocation (Id: LongInt; ActivatePIP: Boolean; PIP_Left: LongInt; PIP_Top: LongInt; PIP_Width: LongInt; PIP_Height: LongInt;
MoveToTop: Boolean): Boolean;

– bool Mixer_SetPIPLocation(int Id, bool ActivatePIP, int PIP_Left, int PIP_Top, int PIP_Width, int PIP_Height, bool MoveToTop);
(see the “PictureInPictureMixer” demo project included in the package)

– static Playlist played like a single video clip (see the Player -> Playlist chapter of the user guide)

– WebcamStillCaptureButton: TWebcamStillCaptureButton = (wb_Disabled, wb_Enabled).
(when enabled and pressing the webcam’s snapshot button, the frame is captured and returned by the OnFrameCaptureCompleted event)


– recording fails to start when RecordingMethod = rm_ASF, ASFProfileVersion = apv_ProfileVersion_8 and a profile is selected (ASFProfile >= 0)

– motion detector fails to detect properly the 1st time the preview or recording is started

– audio hick-ups when playing high res video clips

– possible freezing when the motion detection is enabled

– error when stopping the recording after a PauseRecording / ResumeRecording

– possible freezing after a long recording in mixer mode (VideoSource = vs_Mixer)

– error when exiting a VB6 app

– invoking MotionDetector_SetCellSensitivity does not change the sensitivity of a cell

– OnPlayerEndOfStream event notified 2 times in some cases

– out of resources error during the screen preview/recording after about 10-15 minutes

– possible black window after invoking OpenPlayer and before the clip starts to play if another task is performed during this interval of time

– possible “cannot create file” error when starting the streaming


In Delphi/C++Builder, global functions are replaced by TVideoGrabber properties, e.g.:

function VideoDevices: string replaced by VideoGrabber->VideoDevices

function VideoDevicesCount: int replaced by VideoGrabber->VideoDevicesCount

If you need to access them before the visible TVideoGrabber component has been created, creat a temporary TVideoGrabber component to get the list
then delete it.
E.g., depending on the development language:

VideoGrabberTemp := TVideoGrabber.Create(nil)
MyVideoDevicesList := VideoGrabberTemp.VideoDevices

VideoGrabberTemp = new *TVideoGrabber(this)
MyVideoDevicesList = VideoGrabberTemp->VideoDevices
delete (VideoGrabberTemp)

    Your Cart
    Your cart is emptyReturn to Shop