Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа С Веб Камерой ?

3.2K
17 марта 2010 года
rihkov
42 / / 30.10.2005
Здравствуйте!
Подскажите какой протокол обмена у USB веб камеры, что посылаем, что получаем ?
Знаю что есть API по работе с джойстиком, может есть API для работы с веб камерой ?
5
17 марта 2010 года
hardcase
4.5K / / 09.08.2005
Цитата: rihkov
Здравствуйте!
Подскажите какой протокол обмена у USB веб камеры, что посылаем, что получаем ?
Знаю что есть API по работе с джойстиком, может есть API для работы с веб камерой ?


Есть - DirectX.

8.2K
17 марта 2010 года
bagie2
299 / / 26.10.2008
capCreateCaptureWindow
и пример. Неважно что на фасме.
3.2K
21 марта 2010 года
rihkov
42 / / 30.10.2005
Спасибо за помощь информация нужная...
Но все же кто знает где найти протокол обмена с веб камерой, что делать с данными получая их с конечной точки веб камеры, как обрабатывать... ?
56K
23 марта 2010 года
vellsi
2 / / 31.12.2009
1) включить, то бишь получить-сграбить картинку с локальной камеры (usb подключение) можно через функции (универсальный подход к работе с драйвером камеры) AVICAP32.dll (cистемная)
Код:
var
  DC    : HDC;
  Bt    : BITMAPINFO;
  h_wnd : HWND;
  h_cam : HWND;

//== Получение и обработка кадра
function FrameCallback(hWnd: HWND; lpVHdr: PVIDEOHDR): DWORD; stdcall;
type
  TByteArray = array [0..1] of Byte;
  PByteArray = ^TByteArray;
var
  i, j   : Integer;
  sum    : Single;
  status : TCapStatus;
  str    : string;
begin
  Result := 0;
// информация о изображении
  SendMessage(h_cam, WM_CAP_GET_STATUS, SizeOf(status), Integer(@status));
// проверка на корректность формата изображения
  if (status.uiImageWidth > 640) or (status.uiImageHeight > 480) or
     (lpVhdr^.dwBytesUsed div (status.uiImageWidth * status.uiImageHeight) <> 3) then
  begin
    TextOut(DC, 0,  0, 'Размер изображения не должен превышать 640х480 пикселей', 55);
    TextOut(DC, 0,  18, 'Изображение должно быть 24 битным', 33);
    Exit;
  end;

// вывод результата в окно
  bt.bmiHeader.biWidth  := status.uiImageWidth;
  bt.bmiHeader.biHeight := status.uiImageHeight;
  StretchDIBits(DC, 0, 0, 640, 480, 0, 0, status.uiImageWidth, status.uiImageHeight, lpVHdr.lpData, bt, 0, SRCCOPY);
end;

// настройка подключения-
 DC  := GetDC(h_wnd);
  if SendMessage(h_cam, WM_CAP_DRIVER_CONNECT, 0, 0) <> 0 then
  begin
    SendMessage(h_cam, WM_CAP_GET_VIDEOFORMAT, SizeOf(Bt), LongInt(@Bt));
    Bt.bmiHeader.biWidth    := 320;
    Bt.bmiHeader.biHeight   := 240;
    Bt.bmiHeader.biSize     := SizeOf(Bt.bmiHeader);
    Bt.bmiHeader.biPlanes   := 1;
    Bt.bmiHeader.biBitCount := 24;
    SendMessage(h_cam, WM_CAP_SET_VIDEOFORMAT, SizeOf(Bt), LongInt(@Bt));
    SendMessage(h_cam, WM_CAP_SET_CALLBACK_FRAME, 0, Integer(@FrameCallback));
...

// получить кадр, например по таймеру
//SendMessage(h_cam, WM_CAP_GRAB_FRAME, 0, 0);

(модуль с хэдерами прилагаю, передать по сети проблем не составит, можно реализовать сервером, а с нета например браузером смотреть)
...кроме того есть готовый компонент для работы через эту dll - TJLCVideo/ В нем реализовано получение и аудиопотока
(тоже прилагаю)

2) если вы хотите передавать видео и у вас потоковая камера
...лучше использовать AsfWriter из набора dspack, доступ через интерфейс IWMWriterSink... пример передачи:
 
Код:
AsfWriter1.WriterNetworkSink.SetNetworkProtocol(WMT_PROTOCOL_HTTP);
 AsfWriter1.WriterNetworkSink.SetMaximumClients(10);
 AsfWriter1.WriterNetworkSink.Open(номер порта);
 AsfWriter1.WriterAdvanced2.AddSink(AsfWriter1.WriterNetworkSink);
 AsfWriter1.WriterAdvanced2.SetLiveSource(True)

...это годится только если стандарт и интерфейс у камеры не какой-нибудь собственный (прокатывают потоковые камеры от axic)
...для просмотра можно импортировать - AxisCamControl activex (там же есть и управление)
3.2K
25 марта 2010 года
rihkov
42 / / 30.10.2005
А как быть если нужно написать свой драйвер для работы с камерой, я немогу найти протокол обмена с усб веб камерой ну хотя бы дескриптор ?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог