webcam - слишком медленно (avicap32)
От: v_sergei  
Дата: 06.03.10 10:49
Оценка:
делаю так видеозахват:

capCreateCaptureWindowA

SendMessage(hWnd, WM_CAP_CONNECT)

а потом по таймеру:

SendMessage(hWnd, WM_CAP_GET_FRAME)
SendMessage(hWnd, WM_CAP_COPY)

И дальше из клипборда берется имадж. На то чтобы сделать так один кадр — уходит >200 мс, что слишком много (камера 30 fps максимум, получается около 5 fps). Нет другого способа тоже самое сделать, более быстрого (получить одиночный кадр)?



09.03.10 04:27: Перенесено модератором из 'WIN API' — Кодт
Re: webcam - слишком медленно (avicap32)
От: CyberDemon Россия  
Дата: 06.03.10 12:12
Оценка:
Здравствуйте, v_sergei, Вы писали:

_>И дальше из клипборда берется имадж. На то чтобы сделать так один кадр — уходит >200 мс, что слишком много (камера 30 fps максимум, получается около 5 fps). Нет другого способа тоже самое сделать, более быстрого (получить одиночный кадр)?


DirectShow делает это быстро.
Re[2]: webcam - слишком медленно (avicap32)
От: v_sergei  
Дата: 06.03.10 15:10
Оценка:
Здравствуйте, CyberDemon, Вы писали:

CD>DirectShow делает это быстро.


Спасибо, попробую
Re[2]: webcam - слишком медленно (avicap32)
От: v_sergei  
Дата: 07.03.10 19:08
Оценка:
Здравствуйте, CyberDemon, Вы писали:

CD>DirectShow делает это быстро.


Попробовал — взял пример из DirectShowSamples для .NET — DxSnap, камера логитек квикэкспресс, комп — E6550 (4Гб ОЗУ) — все те же печальные 5 fps. (Единственное отличие в примере — DsFindPin.ByCategory(capFilter, PinCategory.Still, 0) убрал, иначе падает в экспешене на filterGraph.Connect 0x80040217). Так что — это предел?
Re[3]: webcam - слишком медленно (avicap32)
От: CyberDemon Россия  
Дата: 07.03.10 19:53
Оценка:
Здравствуйте, v_sergei, Вы писали:

_>Попробовал — взял пример из DirectShowSamples для .NET — DxSnap, камера логитек квикэкспресс, комп — E6550 (4Гб ОЗУ) — все те же печальные 5 fps. (Единственное отличие в примере — DsFindPin.ByCategory(capFilter, PinCategory.Still, 0) убрал, иначе падает в экспешене на filterGraph.Connect 0x80040217). Так что — это предел?

Че-то не так делаешь. На "простых тормозных" пнях 4ых все летает (на более древних не пробовал). По поводу .net ничего не скажу, я на нативном с++ лабал.
Re[4]: там дело было в настройках камеры.
От: v_sergei  
Дата: 09.03.10 14:41
Оценка:
она при авто настройках освещенности не могла больше 5 fps выдать
Re: webcam - слишком медленно (avicap32)
От: 8bit  
Дата: 09.03.10 18:36
Оценка:
Здравствуйте, v_sergei, Вы писали:

http://rsdn.ru/forum/media/2487574.1.aspx
Автор: 8bit
Дата: 15.05.07
Re: webcam - слишком медленно (avicap32)
От: vdimas Россия  
Дата: 13.04.10 19:41
Оценка:
Здравствуйте, v_sergei, Вы писали:


_>И дальше из клипборда берется имадж. На то чтобы сделать так один кадр — уходит >200 мс, что слишком много (камера 30 fps максимум, получается около 5 fps). Нет другого способа тоже самое сделать, более быстрого (получить одиночный кадр)?


Зачем через clipboard? Это же тормоза. Бери непосредственно через WM_CAP_GRAB_FRAME_NOSTOP.
Есть еще кое-какой момент при инициализации камеры. Один из параметров отвечает за то, сколько кадров использовано для получения усредненного снимка, возможно у тебя тот самый случай, когда берутся несколько кадров.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.