Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Almacenar en buffer Captura de video (https://www.clubdelphi.com/foros/showthread.php?t=64005)

sebasthian777 12-03-2009 12:37:00

Almacenar en buffer Captura de video
 
Muy buenas otra vez compañeros programadores.

Vengo con una duda.

Tengo un programa que captura una webcam y la muestra por formulario, por panel o por donde quiera por asi decirlo, simepre y cuando direccione que handle quier usar.

aca un poco del codigo para que no sea tan abstracto:
Código Delphi [-]
function CreateCaptureWindow(Name: PChar; Style: Longint; X, Y: Integer;
 Width, Height: integer; Parent: HWND; id: integer): HWND; stdcall;
 external 'AVICAP32.DLL' name 'capCreateCaptureWindowA';

y el uso de la misma funcion:
Código Delphi [-]
pHWND:= CreateCaptureWindow('Ventana de captura',WS_CHILD or WS_VISIBLE,
    0,0,Panel1.Width,Panel1.Height,panel1.handle,0);


donde pHWND:

Código Delphi [-]
pHWND : THandle;


y uso los metodos siguientes para controlar el avicap32
Código Delphi [-]
SendMessage(pHWND, WM_CAP_DRIVER_DISCONNECT, 0, 0);
    SendMessage(pHWND, WM_CAP_DRIVER_CONNECT, 0, 0);
    SendMessage(pHWND, WM_CAP_SET_PREVIEW, 1, 0);
SendMessage(pHWND, WM_CAP_GRAB_FRAME, 0, lParam(PChar('C:\bmp\1.jpg')));
SendMessage(pHWND, WM_CAP_SAVEDIB, 0, lParam(PChar('C:\bmp\1.jpg')));
SendMessage(pHWND, WM_CAP_SET_PREVIEW, 1, 0);


con estas constantes:
Código Delphi [-]
const   WM_CAP_START = WM_USER;   WM_CAP_STOP = WM_CAP_START + 68;   WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;   WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;   WM_CAP_SAVEDIB = WM_CAP_START + 25;   WM_CAP_GRAB_FRAME = WM_CAP_START + 60;   WM_CAP_SEQUENCE = WM_CAP_START + 62;   WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;   WM_CAP_SET_PREVIEW = WM_CAP_START + 50;   WM_CAP_SET_OVERLAY = WM_CAP_START + 51;   WM_CAP_SET_PREVIEWRATE = WM_USER + 52;   WM_CAP_EDIT_COPY = WM_CAP_START+ 30;


En el ejemplo que puse anteriormente se actualiza constantemente el video sobre un Tpanel, y asi lo puedo ver en tiempo de ejecucion. Lo que realmente quiero es poder almacenar ese video en tiempo real en un buffer, como para poder mandarlo via tcp o udp.

desde ya muchas gracias!
y saludos!

Young 12-03-2009 14:28:35

Hola como estás, bueno no soy de esos que le gusta re-inventar la rueda, una vez por favor a un amigo tuve que hacer algo parecido y encontré estos componentes (Libres para uso no comercial) que tienen todo lo que necesitas y más creo yo. Además el concepto de estos componentes es muy atractivo.

Saludos.

sebasthian777 12-03-2009 14:35:35

Se agradece mucho, ya le di boton del medio para mirar bien todo... comentare que tal me va a medida que avance... lo malo es que es posible que sea para uso comercial .... pero puede que me sirva para abrirme la cabeza... desde ya muchas gracias otra vez.

sebasthian777 16-03-2009 15:25:40

Cita:

Empezado por Young (Mensaje 341185)
Hola como estás, bueno no soy de esos que le gusta re-inventar la rueda, una vez por favor a un amigo tuve que hacer algo parecido y encontré estos componentes (Libres para uso no comercial) que tienen todo lo que necesitas y más creo yo. Además el concepto de estos componentes es muy atractivo.

Saludos.


perdon por mi respuesta tardia, pero esos componentes no solucionan mi problema... no me permiten ver como enviar video por lan.... los seguire mirando y analizando a ver si estoy en un error!

saludos!


La franja horaria es GMT +2. Ahora son las 12:23:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi