Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Вниз

Как получить каждый кадр с Web камеры в память?   Найти похожие ветки 

 
AlexT1000   (2003-09-04 12:00) [0]

просто как TBITMAPINFO или дамп памяти или в каком либо другом виде.
Кто сталкивался дайте пожалуйста кусочек кода


 
pasha_676   (2003-09-04 12:41) [1]

Каптуришь кадр и записываешь. Все прозрачно.


 
Sapersky   (2003-09-04 14:44) [2]

http://delphimaster.net/view/8-1060930510/


 
AlexT1000   (2003-09-04 15:15) [3]

>> Sapersky у меня в системе нет указанного вами ActiveX компонента.
Есть еще варианты?

я тут выкопал такую ссылку в хелпе
{
VideoCallbackProc: Video Stream Callback Function
Called whenever a new frame is captured while streaming
Wnd: Application main window handle
VHdr: long pointer to VideoHdr struct containing captured
frame information
}
function VideoCallbackProc(WND :hWnd; VHdr:tVIDEOHDR):longint; stdcall;

fpVideoCallback := @VideoCallbackProc;
AVICapSM(WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,longint(fpVideoCallback));

Якобы эта функция должна вызываться на каждом кадре . но она почемуто не вызывается. может кто знает почему?

но


 
AlexT1000   (2003-09-04 15:22) [4]

И еще . может я чего не понимаю и это разные вещи но сейчас у меня стоит камера ,которая подключается к отдельной плате.
а Web-камера подключается к USB -порту?
будет ли данный вызов работать с WEb камерой или это только для камер с отдельными платами?

CapHwnd := CapCreateCaptureWindowA("My Capture Window", ws_child or WS_Visible,
CapWinX, CapWinY, 160, 120, Handle, 0);

проясните ситуацию, пожалуйста


 
pasha_676   (2003-09-04 17:10) [5]

Все зависит от того, как может воспринимать система твое камеру, какие дрова и т.д.
Самый простой способ проверки на возможность работы через Windows API - запустить утилитку мелкомягких VidCap. Если она "видит" твою камеру - тады все окей. Так можно делать.
А вообще бросай API и попробуй покапаться со стороны DirectX. Сейчас у меня все работает через DSPack (www.progdigy.com). Однако если в составе к камере не идут WDM-дрова (как правило старые железки) - тогда дохлый номер.


 
Smok_er   (2003-10-04 13:03) [6]

Вроде DSPack работает только с DirectX 9.0 Или я не прав?


 
pasha_676   (2003-10-06 09:51) [7]


> Или я не прав?

Читай у них страницу.


 
Smok_er   (2003-10-06 11:04) [8]

Ну прочитал и понял, что только с DirectX 9.0. Это так или я неправильно понял?


 
pasha_676   (2003-10-06 14:11) [9]


> Это так или я неправильно понял?

Ты неправильно понял. Например там лежит версия 1.05.


 
Smok_er   (2003-10-06 14:36) [10]

У меня кстати так и не получилось откомпилить ни один пример, который идет в поставке с версией 2.31.
НА компе установлен DIrectX 9
Может знаешь в чем траблы? Вылетают ошибки в DirectShow9.pas :(


 
pasha_676   (2003-10-06 15:22) [11]

Не знаю. Сейчас на 1.05 сижу. Но компилил. Работало. Вот только номер версии не помню (2 с хвостом).


 
Smok_er   (2003-10-06 15:52) [12]

Поставил себе 1.05
На первый взгляд возможностей конечно поменьше чем в TVideoGrabber. Кстати, у тебя есть документация нормальная к этому компоненту?


 
pasha_676   (2003-10-06 17:53) [13]

Нет конечно. TVideoGraber не знаю что вообще. А 1.05 на самом деле обладает очень хорошими возможностями. Он почти вплотную близок к DirectShow. Во всяком случае потом с него без труда перешел на Direct(почти перешел, в связи с увольнением процесс затянулся).
Основная документация - DirectX SDK + примеры.


 
Smok_er   (2003-10-06 18:00) [14]

А есть возможность у 1.05 выводить надпись поверх изображения? Сохранять картинки в различных форматах?


 
misterix   (2003-10-06 18:13) [15]

AlexT1000

Да не мучайся ты. Поищи в инете, скорее всего на Тори, компонент
TVideoCap. Там все есть с примерами. Мы же Дельфи-программисты! Компоненты FOREVER!


 
Smok_er   (2003-10-06 18:23) [16]

Я его уже видел.
Там много чего дорабатывать надо, сырой он еще :(
TVideoGrabber - rulez, но не могу найти свежие исходники :(


 
pasha_676   (2003-10-07 09:55) [17]


> А есть возможность у 1.05 выводить надпись поверх изображения

Если не через Direct то хоть на кавасе рисуй. Через директ пожалуй можно интересней замутить (сам не пробывал).


> Сохранять картинки в различных форматах?

Фильтр и компанент SampleGraber. Пример есть.


> TVideoGrabber - rulez, но не могу найти свежие исходники
> :(

Ага. Только не дает хороший контроль над графами. Во всяком случае на ряде девайсов он у меня не заработал. Промежду прочим DSPack тоже компанент и тоже с примерами.

Компанеты хороши для скорости разработки, для качества и взаимодействия с системой однако не фигово знать и API и Direct.


 
Smok_er   (2003-10-07 10:03) [18]

Блин, сейчас такое состояние, что хоть самому бери и пиши себе компонент...


 
pasha_676   (2003-10-07 11:03) [19]


> Блин, сейчас такое состояние, что хоть самому бери и пиши
> себе компонент...

На самом деле в DirectShow все ужой сделано. Облекать все это в форму компанента (при наличии подробных описаний в SDK) нафиг не надо. На самом деле что надо - это написать статью с примерами на дельфине о том как это делать. Возможно надо остановиться на ключевых интерфейсах, а так же на интерфейсах ввода/вывода, настроек пинов фильтров и т.д. Возможно надо описать в трех вариантах - автоматическое построение графа, полуавтоматическое и ручное.
Что еще? А нуда. Как сграбить кадр изображения. Можно на примере SampleGraber фильтра.

Былоб время занялся бы этим. И сам бы голову в порядок привел и народу польза.


 
Smok_er   (2003-10-07 11:21) [20]

Ну так если самому время себе не выкраивать, так оно никогда в жизни не появится. А это было бы действительно неплохим подспорьем как для начинающих в DirectX, так и "продолжающих".


 
pasha_676   (2003-10-07 11:25) [21]


> Ну так если самому время себе не выкраивать, так оно никогда
> в жизни не появится.

Вообще-то был не плохой шанс выбить из начальства время на переделку всех моих прог на чистый Direct. Тогда бы время появилось. Но сейчас поздно. Увольняюсь.


 
Smok_er   (2003-10-07 11:32) [22]

Ясно... А где можно скачать доки по DirectX, и по DirectShow в частности?


 
pasha_676   (2003-10-07 11:42) [23]

Ну давай тебя нагружу :).

Дока по ДиректХ имеется на том же progdigy. Ее качаешь. Суть справка. Там открываешь раздел по ДиректШоу. там надо читать разделы по фильтрам, а так же приводяться примеры на Си (по видеовходу тоже есть). В принцыпе довольно много инфы и в ней надо копаться.
Могу еще прислать на мыло пример с коментариями по воспроизведению AVI через Direct. А самое основное - надо понять, что все это суть связанные кубики. Просто в зависимости от ситуации ты берешь нужные кубики и из них лепишь.

Т.е. Чтобы воспроизвести что бы то ни было надо:

1)создать граф фильтров
2) добавить туда кубики фильтров
3) при необходимости произвести настройки в фильтрах и в их контактах
4) при необходимости соединить фильтры связями
5) отрендерить
6) вывести в нужную часть экрана

Чтобы лучше это прочюйствовать рекомендю поюзать Microsoft GraphEdit. После того как я с ним разобрался, я на практике понял как это работает. Качать его там же на progdigy.


 
misterix   (2003-10-07 11:49) [24]

2Smok_er

Что значит сырой? Грабить грабит? Еще как. В битмап сохраняет? Запросто. Текст сверху можно нарисовать? А почему бы на битмапе текст не вывести?


 
pasha_676   (2003-10-07 12:05) [25]


> Что значит сырой? Грабить грабит?

Хм. Давай скажем так. Не на всех девайсах у меня получалась с ним грабить. А c DSPack+не большие вкрапления DirectShow это получается. Не знаю как сейчас, но раньше этот компанет де факто просто строил автоматом фильтр от девайса в тупую. Не было возможности редактирования графа.


 
Smok_er   (2003-10-07 12:47) [26]

pasha_676 © (07.10.03 11:42) [23]
Да вот качаю некую инфу с progdigy.com.
Дело в том, что мне нужно именно под DirectX 8.

misterix (07.10.03 11:49) [24]
Не, у меня было пару багов...


 
pasha_676   (2003-10-07 13:10) [27]


> Дело в том, что мне нужно именно под DirectX 8.

В основе своей не отличается абсолютно. Изменения в основном каснулись 3D. Для начального изучения подойдет однозначно. Там все такое же должно остаться.


 
Smok_er   (2003-10-07 13:45) [28]

Т.е. я могу написать прогу с использование 9-ой версии, а запустить потом на компе с 8-ой?
Интересно...


 
pasha_676   (2003-10-07 14:59) [29]

Конечно можешь. Ты слышал о СОМ технологии? Только надо использовать интерфейсы, которые есть и там и там. Вообще, кстати почитай о СОМ - базовый принцып не сложен, а больше чем базовый принцып в этой задачи и не нужен.


 
Smok_er   (2003-10-07 15:22) [30]

Теперь ясно! Спасибо! Осталось только установить, у меня с этим траблы были.


 
KIE   (2003-10-12 23:17) [31]

А вообще вот дока по теме : rcorp.boom.ru/ Жаль что нашел я её, когда все уже написал ...


 
pasha_676   (2003-10-13 09:34) [32]

Хорошая весЧЪ по VFW на АПИ, но все горе заключается в том, что многие производители уже практически не пишут дрова под VFW. WDM вытесняет.

Вот меннее фундаментальная, зато на дельфи :), по VFW

http://www.argc-argv.relc.com/1112_2001/video.php

И еще раз повторю - сейчас лучше отходить от VFW и сразу начинать писать под WDM (DirectShow).


 
Анонимщик   (2003-10-13 11:12) [33]

Ну что, получилось?
У меня, кстати, тоже под восьмим сначала не пошло.
Во-первых, пришлось пару строк (не помню каких) в исходниках закомментировать. Если не компилируются, напиши, где именно, посмотрю у себя.
Во-вторых, бардак был с DirectX-драйверами. Попробовал запустить на "чистой" машине с только что установленным 8-ым directX, и все пошло. Потом и у себя все вышло.
Напиши, будь добр, о проблемах, а то все равно когда-нибудь может вылезти, так чтобы быть готовым.



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2004.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.01 c
6-38992
_san_
2003-12-10 18:29
2004.02.13
Проблема с TclientSocket


7-39102
AlexRush
2003-11-29 12:19
2004.02.13
настройки системы - определить LargeFont или SmallFont


1-38844
dendy
2004-02-04 22:22
2004.02.13
копирование из буфера в Grid


7-39121
fiatik
2003-11-28 23:17
2004.02.13
Help! Как запросить у компа: какие системе доступны компорты?


1-38949
Nucl
2004-02-03 17:27
2004.02.13
ActiveX Form





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский