Вверх ↑
Этот топик читают: Гость
Ответов: 841
Рейтинг: 17
#1: 2022-12-19 10:00:53 ЛС | профиль | цитата
Нужно отправить видео с веб камеры ТЦП клиенту и показать картинку от веб камеры, но у меня уходить уходит но ,что то не могу понять почему не разворачивает изображения, ну по хорошему ещё и звук от клиента к серверу передать бы но пока не могу понять, что к чему . у кого есть время помогите

Add(MainForm,68161,742,70)
{
Left=21
Top=106
Width=1037
Height=536
link(onCreate,46308:doEvent1,[])
}
Add(TCP_Client,52372,854,112)
{
Port=120
IP="127.0.0.1"
DataType=3
link(onRead,14937197:doDeCompress,[])
}
Add(BitmapStream,30541,938,105)
{
link(onRead,3418065:doLoad,[])
}
Add(Hub,46308,791,84)
{
link(onEvent1,37674:doOpen,[])
link(onEvent2,52372:doOpen,[(826,97)(826,118)])
}
Add(TCP_Server,37674,1449,84)
{
Port=120
DataType=3
}
Add(Button,3623346,944,266)
{
Left=5
Top=275
Width=135
Height=25
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="Connect WebCam"
link(onClick,9402563:doEvent1,[])
}
Add(Button,10919198,1063,273)
{
Left=155
Top=275
Width=135
Height=25
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="DisConnect WebCam"
link(onClick,6203314:doEvent1,[])
}
Add(Hub,9402563,994,266)
{
link(onEvent1,10066069:doConnect,[])
link(onEvent2,4858777:doTimer,[(1026,279)(1026,104)])
}
Add(Timer,4858777,1064,98)
{
Interval=200
Enable=1
link(onTimer,937320:doEvent1,[])
}
Add(BitmapStream,10552268,1316,182)
{
link(Stream,220734:Var2,[])
}
Add(MemoryStream,15524284,1316,91)
{
}
Add(Hub,9695341,1232,189)
{
link(onEvent1,10552268:doWrite,[])
link(onEvent2,43492:doCompress,[(1267,202)(1267,237)])
}
Add(ZLIB,43492,1288,231)
{
link(onStream,37674:doSend,[(1384,237)(1384,104)])
link(Stream,220734:Var1,[(1294,159)])
}
Add(GetDataEx,220734,1316,154)
{
link(Data,15524284:Stream,[])
}
Add(ZLIB,14937197,896,105)
{
link(onStream,30541:doRead,[])
}
Add(Hub,6203314,1113,273)
{
link(onEvent1,10066069:doDisConnect,[])
link(onEvent2,4858777:doStop,[(1139,286)(1139,198)(1052,198)(1052,111)])
}
Add(ChildPanel,6995777,742,119)
{
}
BEGIN_SDK
Add(EditMulti,5556220,21,21)
{
}
Add(Panel,12746300,35,105)
{
Left=305
Width=25
Height=375
}
END_SDK
Add(Label,1019185,784,119)
{
Left=10
Top=310
Width=47
Height=17
Caption="Сенрвер"
}
Add(WebCam,10066069,1169,266)
{
RefreshRate=67
FileDIB="WebCam.bmp"
FileVideo="WebCam.avi"
link(WinHandle,1998033:Handle,[])
}
Add(PaintBox,1998033,1176,105)
{
Left=5
Top=10
Width=285
Height=250
Point(Handle)
link(onBeforeDraw,10428161:doData,[(1220,111)(1220,156)(1164,156)(1164,195)])
}
Add(DoData,10428161,1176,189)
{
link(onEventData,9695341:doEvent1,[])
link(Data,1998033:Bitmap,[])
}
Add(Image,3418065,987,105)
{
Left=335
Top=5
Width=395
Height=320
}
Add(Hub,937320,1148,98)
{
link(onEvent1,15524284:doClear,[])
link(onEvent2,1998033:doRefresh,[])
}

карма: 0

0
Ответов: 783
Рейтинг: 168
#2: 2022-12-19 11:32:02 ЛС | профиль | цитата
GAv писал(а):
передать бы но пока не могу понять, что к чему


Add(MainForm,68161,308,105)
{
Left=21
Top=106
Width=1037
Height=536
link(onCreate,46308:doEvent1,[])
}
Add(TCP_Client,52372,420,147)
{
Port=120
IP="127.0.0.1"
DataType=3
link(onRead,14937197:doDeCompress,[])
}
Add(Hub,46308,357,119)
{
link(onEvent1,37674:doOpen,[])
link(onEvent2,52372:doOpen,[(392,132)(392,153)])
}
Add(TCP_Server,37674,1015,119)
{
Port=120
DataType=3
}
Add(Button,3623346,657,224)
{
Left=5
Top=275
Width=135
Height=25
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="Connect WebCam"
link(onClick,1518003:doConnect,[])
}
Add(Button,10919198,706,231)
{
Left=155
Top=275
Width=135
Height=25
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="DisConnect WebCam"
link(onClick,1518003:doDisConnect,[])
}
Add(ZLIB,43492,889,280)
{
link(onStream,37674:doSend,[(950,286)(950,139)])
}
Add(ZLIB,14937197,462,140)
{
link(onStream,351980:doUnPack,[])
}
Add(ChildPanel,6995777,308,154)
{
}
BEGIN_SDK
Add(EditMulti,5556220,21,21)
{
}
Add(Panel,12746300,35,105)
{
Left=305
Width=25
Height=375
}
END_SDK
Add(Label,1019185,350,154)
{
Left=10
Top=310
Width=47
Height=17
Caption="Сенрвер"
}
Add(Image,3418065,567,140)
{
Left=335
Top=5
Width=395
Height=320
link(Bitmap,351980:bmp,[(573,131)(559,131)(559,180)(517,180)])
}
Add(WebCam,1518003,770,224)
{
link(WinHandle,1829649:Handle,[])
}
Add(Timer,8930844,728,280)
{
Interval=100
link(onTimer,10034988:doCopy,[])
}
Add(Img_Copy,10034988,770,280)
{
DrawSource=1
Point(Width)
Point(Height)
link(onCopy,15537523:doPack,[])
link(Source,1518003:Handle,[])
link(Width,1829649:Width,[])
link(Height,1829649:Height,[])
}
Add(Image,1829649,777,161)
{
Left=5
Top=10
Width=285
Height=250
Point(Handle)
Point(Width)
Point(Height)
}
Add(StreamPack,15537523,833,280)
{
DataCount=#3:bmp|
link(onPack,43492:doCompress,[])
}
Add(StreamUnPack,351980,511,140)
{
DataCount=#3:bmp|
link(onUnPack,3418065:doLoad,[])
}

карма: 15

0
Ответов: 841
Рейтинг: 17
#3: 2022-12-19 11:40:30 ЛС | профиль | цитата
пока ждал вот так решил. но задержка меж кадров ещё слишком большая
Add(MainForm,68161,511,70)
{
Left=21
Top=106
Width=1373
Height=516
link(onCreate,46308:doEvent1,[])
}
Add(TCP_Client,52372,623,112)
{
Port=121
IP="127.0.0.1"
DataType=3
link(onRead,15437956:doRead,[])
}
Add(Hub,46308,560,84)
{
link(onEvent1,37674:doOpen,[])
link(onEvent2,52372:doOpen,[(595,97)(595,118)])
}
Add(TCP_Server,37674,1722,84)
{
Port=121
DataType=3
}
Add(Button,3623346,832,266)
{
Left=5
Top=275
Width=135
Height=25
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="Connect WebCam"
link(onClick,9402563:doEvent1,[])
}
Add(Button,10919198,951,273)
{
Left=155
Top=275
Width=135
Height=25
Font=[MS Sans Serif,8,1,0,1]
TabOrder=-1
Caption="DisConnect WebCam"
link(onClick,6203314:doEvent1,[])
}
Add(Hub,9402563,882,266)
{
link(onEvent1,10066069:doConnect,[])
link(onEvent2,4858777:doTimer,[(914,279)(914,104)])
}
Add(Timer,4858777,952,98)
{
Interval=0
Enable=1
link(onTimer,937320:doEvent1,[])
}
Add(BitmapStream,10552268,1547,182)
{
link(Stream,220734:Var2,[])
}
Add(MemoryStream,15524284,1547,91)
{
}
Add(Hub,9695341,1463,189)
{
link(onEvent1,10552268:doWrite,[])
link(onEvent2,14550993:doData,[(1529,202)(1529,237)])
}
Add(ZLIB,43492,1512,252)
{
link(Stream,220734:Var1,[(1518,159)])
}
Add(GetDataEx,220734,1547,154)
{
link(Data,7469085:Var2,[])
}
Add(Hub,6203314,1001,273)
{
link(onEvent1,10066069:doDisConnect,[])
link(onEvent2,4858777:doStop,[(1027,286)(1027,198)(940,198)(940,111)])
}
Add(ChildPanel,6995777,511,119)
{
}
BEGIN_SDK
Add(EditMulti,5556220,21,21)
{
}
Add(Panel,12746300,35,105)
{
Left=305
Width=25
Height=375
}
END_SDK
Add(Label,1019185,511,161)
{
Left=10
Top=310
Width=47
Height=17
Caption="Сенрвер"
}
Add(WebCam,10066069,1162,266)
{
RefreshRate=1
FileDIB="WebCam.bmp"
FileVideo="WebCam.avi"
Point(doEditCopy)
link(WinHandle,16220859:Handle,[])
}
Add(Hub,937320,1036,98)
{
OutCount=3
link(onEvent1,15524284:doClear,[])
link(onEvent2,9950240:doData,[(1138,111)(1138,195)])
link(onEvent3,10066069:doEditCopy,[(1106,118)(1106,286)])
}
Add(Image,16220859,1169,21)
{
Left=10
Top=5
Width=282
Height=263
TabOrder=-1
Ctl3D=0
Point(Handle)
Point(doRefresh)
}
Add(DoData,9950240,1372,189)
{
link(onEventData,9695341:doEvent1,[])
link(Data,13095079:Bitmap,[])
}
Add(Clipboard,13095079,1365,140)
{
}
Add(BitmapStream,15437956,686,112)
{
link(onRead,19361:doLoad,[])
}
Add(Image,19361,756,112)
{
Left=350
Top=6
Width=515
Height=355
ViewStyle=0
}
Add(DoData,14550993,1582,231)
{
link(onEventData,37674:doSend,[(1615,237)(1615,104)])
link(Data,7469085:Var3,[(1588,145)])
}
Add(GetDataEx,7469085,1547,140)
{
link(Data,15524284:Stream,[])
}

Gunta да конечно ваш вариант на много лучше. но как снять с этой камеры звук и отправить его, и максимально уменьшить задержку меж кадрами
Add(WebCam,1518003,553,154)
{
RefreshRate=1
}
стоит 1 RefreshRate , но плавности не хватает причину нашёл камера работала в 20 кадров

Редактировалось 6 раз(а), последний 2022-12-19 11:52:31
карма: 0

0
Ответов: 783
Рейтинг: 168
#4: 2022-12-19 12:02:50 ЛС | профиль | цитата
GAv писал(а):
но как снять с этой камеры звук и отправить его, и максимально уменьшить задержку меж кадрами

Посмотри в сторону FFMPEG
Ссылка на похожую тему - https://forum.hiasm.com/topic/67988/0
карма: 15

0
Ответов: 841
Рейтинг: 17
#5: 2022-12-19 12:09:16 ЛС | профиль | цитата
я про то без сторонних программ, а именно то что хиасм предлагает.
В целом остался только звук снять

Редактировалось 1 раз(а), последний 2022-12-19 12:09:34
карма: 0

0
Ответов: 783
Рейтинг: 168
#6: 2022-12-19 18:07:37 ЛС | профиль | цитата
GAv писал(а):
В целом остался только звук снять

В папке, где установлен HiAsm есть пример:
HiAsm\Elements\Delphi\Example\Media\BASS\BASS_Sockets.sha
Думаю, это то, что тебе нужно.
карма: 15

0
Ответов: 841
Рейтинг: 17
#7: 2022-12-20 08:53:59 ЛС | профиль | цитата
в целом разобрался.
Посмотри в сторону FFMPEG
Ссылка на похожую тему - https://forum.hiasm.com/topic/67988/0


теперь думаю изучить этот вопрос.
Сервер

1. - Сервер вещает Аудио и Видео поток .
1.1 - Получает код клавиш отправленные клиентом
1.2 - Получает Аудио поток от клиента при необходимости
Клиент

1. Клиент по средством веб JS получает возможность видеть и слышать сервер
2. Отправлять Аудио и код клавиш нажатых
По изучению этого вопроса буду держать в курсе
карма: 0

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)