![](images/chestnut/misc/left.gif) |
06.03.2010, 17:20
|
#1
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Сервис, работающий с вебками.
Короче пишу свой простенький сервис для работы с вебкамерами, твтюнерами, видеоглазкамиэ. Концепция такова, пользователь скачивает программку сервер, ставит на свой комп, настраивает, после чего может при помощи программы клиента или веб интерфейса наблюдать за тем, что там происходит. Вот выкладываю то, что на данный момент есть(код буду выкладывать при необходимости).
Вложение 9420 запустите Server потом Client, нужны только любые логин и пароль.
Проблема в том, что время от времени пропадает кусок передаваемого файла(передача ведётся покадрово через sendnetworkfile) и торможение на несколько секунд. Может кто сталкивался с подобным и может предложить решение?
__________________
...
Последний раз редактировалось Slepetc, 11.03.2010 в 21:06.
|
(Offline)
|
|
07.03.2010, 14:17
|
#2
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Сервис, работающий с вебками.
не смотрелся с утра в зеркало, и когда увидел свою рожу в маниторе, чуть с стула не упал ![:)](images/smilies/smile.gif)
молоток!
слуш, не подскажешь, какими средствами захватывать изображение с вебки?
доки какие что ли почитать дай )))
а то есть у меня тут одна дикая идея... займусь как нибудь на досуге)
|
(Offline)
|
|
07.03.2010, 23:35
|
#3
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Сервис, работающий с вебками.
Это самый простенький код для снятия картинки с вебки:
If OpenLibrary(0, "avicap32.dll")
*capAddress = GetFunction(0, "capCreateCaptureWindowA")
hWndC = CallFunctionFast(*capAddress, "", #WS_CHILD, 10, 10, 6, 4, WindowID(0),1)
SendMessage_(hWndC, #WM_CAP_DRIVER_CONNECT, 0, 0)
SendMessage_(hWndC, #WM_CAP_DLG_VIDEOSOURCE, 0, 0)
SendMessage_(hWndC, #WM_CAP_DLG_VIDEOFORMAT, 0, 0)
SendMessage_(hWndC, #WM_CAP_GRAB_FRAME, 0, 0)
SendMessage_(hWndC, #WM_CAP_FILE_SAVEDIB, 0, *куда сохранить файл с вебки*)
SendMessage_(hWndC, #WM_CAP_STOP, 0, 0)
SendMessage_(hWndC, #WM_CAP_DRIVER_DISCONNECT, 0, 0)
DestroyWindow_(hWndC)
СloseLibrary(0)
Endif
А это более увесистый(не мой):
![](images/chestnut/misc/code_html.gif)
; PB IRC Chat
; Author: DarkDragon (updated for PB 4.00 by Andre)
; Date: 22. May 2005
; OS: Windows
; Demo: No
#WM_CAP_START = #WM_USER
#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_DRIVER_CONNECT = #WM_USER + 10
#WM_CAP_DRIVER_DISCONNECT = #WM_USER + 11
#WM_CAP_DRIVER_GET_CAPS = #WM_CAP_START + 14
#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_SET_PREVIEW = #WM_CAP_START + 50
#WM_CAP_SET_PREVIEWRATE = #WM_CAP_START + 52
#WM_CAP_GET_STATUS = #WM_CAP_START + 54
#WM_CAP_FILE_SAVEDIB = #WM_USER + 25
#WM_CAP_SET_SCALE = #WM_USER + 53
#WM_CAP_SET_CALLBACK_CAPCONTROL = #WM_CAP_START + 85
Structure VIDEOHDR
lpData.l
dwBufferLength.l
dwBytesUsed.l
dwTimeCaptured.l
dwUser.l
dwFlags.l
dwReserved.l[3]
EndStructure
Procedure FrameCallback(lwnd.l, *lpVHdr.VIDEOHDR)
For k=0 To *lpVHdr\dwBufferLength-1
Color = PeekB(*lpVHdr\lpData+k)
PokeB(*lpVHdr\lpData+k, RGB(Blue(Color), Green(Color), Red(Color)))
Next
EndProcedure
hWnd = OpenWindow(0, 0, 0, 400, 500, "WebCamTest", #PB_Window_SystemMenu)
CreateGadgetList(WindowID(0))
If OpenLibrary(0, "AVICAP32.DLL")
hWebcam = CallFunction(0, "capCreateCaptureWindowA", "BLUBBER", #WS_VISIBLE + #WS_CHILD, 10, 10, 380, 380, hWnd, 0)
CallFunction(0, "capSetCallbackOnFrame", hWebcam, @FrameCallback())
SendMessage_(hWebcam, #WM_CAP_DRIVER_CONNECT , 0 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_SCALE , 1 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEWRATE , 50, 0)
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW , 1 , 0)
SendMessage_(hWebcam, #WM_CAP_SET_CALLBACK_FRAME , 0 , @FrameCallback())
Repeat
Event = WindowEvent()
Select Event
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until Quit = 1
SendMessage_(hWebcam, #WM_CAP_SET_PREVIEW , 0, 0)
SendMessage_(hWebcam, #WM_CAP_DRIVER_DISCONNECT, "BLUBBER", 0)
CloseWindow(0)
CloseLibrary(0)
EndIf
;End
Оч интересно, как у тебя шло, по теме лагов и глюков картинок.
__________________
...
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
08.03.2010, 01:41
|
#4
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Сервис, работающий с вебками.
лагало с периодичностью, подвисало на долго
но в среднем впринцыпе нормально
|
(Offline)
|
|
08.03.2010, 01:43
|
#5
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Сервис, работающий с вебками.
А серые куски были?
__________________
...
|
(Offline)
|
|
08.03.2010, 01:52
|
#6
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Сервис, работающий с вебками.
не заметил вроде.. внизу справа ток какие то 4 точки..
|
(Offline)
|
|
08.03.2010, 02:27
|
#7
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Сервис, работающий с вебками.
Ясно. Спс.
__________________
...
|
(Offline)
|
|
11.03.2010, 21:07
|
#8
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Сервис, работающий с вебками.
Короче, несколько переработал проект, теперь привилегированн веб интерфейс.
Сайт: Top-ca
Выложенные исходники я удалил, т.к. они не комплектовались с нынешним сервером.
__________________
...
|
(Offline)
|
|
12.03.2010, 14:14
|
#9
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Сервис, работающий с вебками.
ну ваще те исходники которые были, можно было и не выкладывать)
без обид но пока что оценивать нечего)))
у меня в планах было, сделать софтину, разбирающую движение)
по идее должен получиться большой тормаз... но вдруг получиться нечто приемлимое))
просто чисто по фану... махнул рукой - фключился медиаплеер ))
щёлкнул пальцами (хотя для моей вебки слишком быстрое движение чтоб получить четкую картинку) - включился браузер ^^
|
(Offline)
|
|
12.03.2010, 15:08
|
#10
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Сервис, работающий с вебками.
Вообще, без обид, но это такой боян.
Если интересно, то я видел оченьблизкую нароботку
тут или тут, точно не помню.
__________________
...
|
(Offline)
|
|
12.03.2010, 22:28
|
#11
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Сервис, работающий с вебками.
пфф.. скажешь тоже
почти всё что делают в целях самообразования - баян.
и "это" в данном случае не исключение.
|
(Offline)
|
|
13.03.2010, 00:19
|
#12
|
Нуждающийся
Регистрация: 05.07.2008
Сообщений: 53
Написано 6 полезных сообщений (для 7 пользователей)
|
Ответ: Сервис, работающий с вебками.
Прости, если я тя обидел, просто почти все дорываясь до работы с вебками думают именно об этом. А так идея интересная, но непрактичная.)))
__________________
...
|
(Offline)
|
|
13.03.2010, 14:36
|
#13
|
Разработчик
Регистрация: 12.07.2008
Сообщений: 523
Написано 196 полезных сообщений (для 470 пользователей)
|
Ответ: Сервис, работающий с вебками.
Расслабься, обидеть меня ну очень сложно))
идея бестолковая, непрактичная, согласен.. по факту такое управление вообще не нужно..
но вот то что это интересно - меня и прильщает ![:)](images/smilies/smile.gif)
при чем сама работа с вебкой тут минимальна.
наверняка можно получить изображение через DirectShow.. и дальше обрабатывать с помощью ГАПИ..
вот сама обработка интересная.
эт надо научить прогу разбирать разные движения...
ну эт ладн, эт в долгий ящик)))
|
(Offline)
|
|
12.11.2011, 01:36
|
#14
|
ПроЭктировщик
Регистрация: 17.02.2006
Сообщений: 144
Написано 13 полезных сообщений (для 36 пользователей)
|
Ответ: Сервис, работающий с вебками.
На самом деле этот сервис очень удобно было бы написать с опорой на DxShow.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:42.
|