Старые способы захвата кадра из видео потока ...
 viewtopic.php?p=86483#p86483
  viewtopic.php?p=86483#p86483 viewtopic.php?p=86918#p86918
 viewtopic.php?p=86918#p86918- Код: Выделить всё
- // Захват кадра
 function capCreateCaptureWindow
 (lpszWindowName : PChar; dwStyle : Integer; x : Integer; y : Integer;
 nWidth : Integer; nHeight : Integer; hWndParent : Integer; nID : Integer)
 : Integer; stdcall; external 'avicap32.dll' name 'capCreateCaptureWindowA';
 procedure TMainForm.Button2Click(Sender: TObject);
 const
 WM_USER = $00000400;
 WM_CAP_START = WM_USER; //старт для сообщений
 WM_CAP_GET_CAPSTREAMPTR = WM_CAP_START + 1;
 //описание callback ошибок
 WM_CAP_SET_CALLBACK_ERROR = WM_CAP_START + 2;
 WM_CAP_SET_CALLBACK_STATUS = WM_CAP_START + 3;
 WM_CAP_SET_CALLBACK_YIELD = WM_CAP_START + 4;
 WM_CAP_SET_CALLBACK_FRAME = WM_CAP_START + 5;
 WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START + 6;
 WM_CAP_SET_CALLBACK_WAVESTREAM = WM_CAP_START + 7;
 WM_CAP_GET_USER_DATA = WM_CAP_START + 8;
 WM_CAP_SET_USER_DATA = WM_CAP_START + 9;
 WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
 WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
 WM_CAP_DRIVER_GET_NAME = WM_CAP_START + 12;
 WM_CAP_DRIVER_GET_VERSION = WM_CAP_START + 13;
 WM_CAP_DRIVER_GET_CAPS = WM_CAP_START + 14;
 WM_CAP_FILE_SET_CAPTURE_FILE = WM_CAP_START + 20;
 WM_CAP_FILE_GET_CAPTURE_FILE = WM_CAP_START + 21;
 WM_CAP_FILE_SAVEAS = WM_CAP_START + 23;
 WM_CAP_FILE_SAVEDIB = WM_CAP_START + 25;
 WM_CAP_FILE_ALLOCATE = WM_CAP_START + 22;
 WM_CAP_FILE_SET_INFOCHUNK = WM_CAP_START + 24;
 WM_CAP_EDIT_COPY = WM_CAP_START + 30;
 WM_CAP_SET_AUDIOFORMAT = WM_CAP_START + 35;
 WM_CAP_GET_AUDIOFORMAT = WM_CAP_START + 36;
 WM_CAP_DLG_VIDEOFORMAT = WM_CAP_START + 41;
 WM_CAP_DLG_VIDEOSOURCE = WM_CAP_START + 42;
 WM_CAP_DLG_VIDEODISPLAY = WM_CAP_START + 43;
 WM_CAP_GET_VIDEOFORMAT = WM_CAP_START + 44;
 WM_CAP_SET_VIDEOFORMAT = WM_CAP_START + 45;
 WM_CAP_DLG_VIDEOCOMPRESSION = WM_CAP_START + 46;
 WM_CAP_SET_PREVIEW = WM_CAP_START + 50;
 WM_CAP_SET_OVERLAY = WM_CAP_START + 51;
 WM_CAP_SET_PREVIEWRATE = WM_CAP_START + 52;
 WM_CAP_SET_SCALE = WM_CAP_START + 53;
 WM_CAP_GET_STATUS = WM_CAP_START + 54;
 WM_CAP_SET_SCROLL = WM_CAP_START + 55;
 WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
 WM_CAP_GRAB_FRAME_NOSTOP = WM_CAP_START + 61;
 WM_CAP_SEQUENCE = WM_CAP_START + 62;
 WM_CAP_SEQUENCE_NOFILE = WM_CAP_START + 63;
 WM_CAP_SET_SEQUENCE_SETUP = WM_CAP_START + 64;
 WM_CAP_GET_SEQUENCE_SETUP = WM_CAP_START + 65;
 WM_CAP_SET_MCI_DEVICE = WM_CAP_START + 66;
 WM_CAP_GET_MCI_DEVICE = WM_CAP_START + 67;
 WM_CAP_STOP = WM_CAP_START + 68;
 WM_CAP_ABORT = WM_CAP_START + 69;
 WM_CAP_SINGLE_FRAME_OPEN = WM_CAP_START + 70;
 WM_CAP_SINGLE_FRAME_CLOSE = WM_CAP_START + 71;
 WM_CAP_SINGLE_FRAME = WM_CAP_START + 72;
 WM_CAP_PAL_OPEN = WM_CAP_START + 80;
 WM_CAP_PAL_SAVE = WM_CAP_START + 81;
 WM_CAP_PAL_PASTE = WM_CAP_START + 82;
 WM_CAP_PAL_AUTOCREATE = WM_CAP_START + 83;
 WM_CAP_PAL_MANUALCREATE = WM_CAP_START + 84;
 // Following added post VFW 1.1
 WM_CAP_SET_CALLBACK_CAPCONTROL = WM_CAP_START + 85;
 CONTROLCALLBACK_PREROLL = 1 ; //* Waiting to start capture */
 CONTROLCALLBACK_CAPTURING = 2 ; //* Now capturing */
 hCamCapture : Integer=0;
 Var
 hHandle:HWND;
 fRefreshRate: integer;
 fViewStyle: integer;
 r: TRect;
 ID: TGUID;
 S: string;
 function CapControlCallback (Hwnd, nState:dword): dword; stdcall;
 //var pCls: THIWebCam;
 begin
 // pCls := THIWebCam(GetProp(hwnd, PChar('OwnerObject')));
 Result := nState;
 end;
 begin
 hHandle := self.Panel2.Handle;
 // Connect;
 R:= self.Panel2.ReadBounds;
 S := 'WebCam_' + intTostr(LongInt(Self));
 if hCamCapture = 0 then begin
 hCamCapture := capCreateCaptureWindow(PChar(S),
 WS_VISIBLE OR WS_CHILD OR WS_CLIPSIBLINGS,
 0, 0, r.right-r.left, r.bottom-r.top, hHandle, LongInt(self));
 SetProp(hCamCapture,PChar('OwnerObject'), integer(pointer(self)));
 SendMessage(hCamCapture, WM_CAP_DRIVER_CONNECT, 0, 0);
 SendMessage(hCamCapture, WM_CAP_SET_OVERLAY, 0, 0);
 SendMessage(hCamCapture, WM_CAP_SET_PREVIEW, 1, 0);
 SendMessage(hCamCapture, WM_CAP_SET_SCALE, fViewStyle, 0);
 SendMessage(hCamCapture, WM_CAP_SET_PREVIEWRATE, fRefreshRate, 25);
 // SendMessage(hCamCapture, WM_CAP_SET_CALLBACK_CAPCONTROL, 0, longint(@CapControlCallback));
 end;
 SendMessage(hCamCapture, WM_CAP_EDIT_COPY, 0, 0);
 Imag1.Picture.Bitmap.LoadFromClipboardFormat(2);
 // .LoadFromClipboardFormat (ctClipboard);
 SendMessage(hCamCapture, WM_CAP_DRIVER_DISCONNECT, 0, 0);
 DestroyWindow(hCamCapture);
 hCamCapture := 0;
 end;
...не работают с планшетом-трансформером (Nomi W10100 Deka )в Вин 10 можно было-бы косить на 64 разряда но ... на другом ноте все прекрасно работает на Вин 7 и Вин 8 64 бита.... ("Режим совместимости" проверял не помогает... )
Возможно глюки конкретного железа (в планшете как нынче водится аж две камеры... одинаковой паршивости ... ) но в штатном приложении "камера" и скайпе все нормально
1 Никто сталкивался с подобной проблемой ?
2 Может кто-то более "прямой" способ захвата посоветовать ? (Мой явно не самый оптимальный)




 Ну и зачем ? У меня и так все работает ...
 Ну и зачем ? У меня и так все работает ...  
  )
 ) 
  впрочем сам что-то похожее пытался писать пока не ДОШЛО ...
   впрочем сам что-то похожее пытался писать пока не ДОШЛО ... 