Si estás usando
VFrames.pas y
VSample.pas con el siguiente código deberías poder capturar un frame sin problemas:
Inicializar el control:
Código Delphi
[-]
cam := TVideoImage.Create;
cam.GetListOfDevices(TStringList(lbCamList.Items));
Iniciar el video:
Código Delphi
[-] cam.SetDisplayCanvas(pbVideo.Canvas);
cam.VideoStart(lbCamList.Items[lbCamList.ItemIndex]);
Y capturar el frame:
Código Delphi
[-] Randomize;
var Bmp := TBitmap.Create;
try
cam.GetBitmap(bmp);
imgFileName := TPath.GetTempPath + Random(9999).ToString + '_imagen.bmp';
bmp.SaveToFile(imgFileName);
finally
bmp.Free;
end;
imgFrame.Picture.LoadFromFile(imgFileName);
A mi me funciona bien.
Te adjunto el proyecto. Está compilado con Delphi 12, pero debería compilar sin problemas con versiones anteriores.