视频捕捉回调函数function FrameCallBack(hWnd: HWND; lpVHdr: PVIDEOHDR): LongInt; stdcall;

  • 主题发起人 主题发起人 网中戏
  • 开始时间 开始时间

网中戏

Unregistered / Unconfirmed
GUEST, unregistred user!
视频捕捉回调函数function FrameCallBack(hWnd: HWND;
lpVHdr: PVIDEOHDR): LongInt;
stdcall;的新问题(100分)
<br />在捕捉USB摄像头中用function FrameCallBack(hWnd: HWND;
lpVHdr: PVIDEOHDR): LongInt;
stdcall;做回调函数。进行捕捉发送到对方电脑。新问题如下:
[red] 如果捕捉窗口可见一切正常。但是如果捕捉窗口最小化或被别的窗口档住。在function FrameCallBack(hWnd: HWND;
lpVHdr: PVIDEOHDR):函数中就捕捉不到图象数据。[/red]
有遇到过并且解决的大富翁朋友请给个提示!
 
UDP 发送数据不应该大于2048,大于2048的丢包率很高.
 
是lan还是wan?
 
做成可设置的,一是检测,二是使用起来灵活
 
在局域网内2048和4096都很快。就不知道在互联网上那个更好。
各位在互联网用UDP发送时(比如视频帧图象)。一般把大图象分割成多大发送?效果如何?包丢的厉害不厉害?因为我是发送视频帧。如果丢太多的包就有不连续的感觉。
 
还是2048吧!我就用得这个呀!
 
谢谢各位就决定用2048了。还有个新问题。我是用API发送的。代码如下
var ////多线程自动循环发送
BlockBuf:Array[0..2047] of Byte;
dw: dword;
ss:TsockAddrIn;
begin

............
sendto(udpapisock,BlockBuf,RemainLen,0,ss,dw);//RemainLen为实际数据大小
end;

问题是:如果接收方的程序打开一切正常。如果没有停止多线程接收方的程序关闭
发送程序会出现错误自动退出。但是捕捉句柄没有释放。请问有朋友遇到过吗?如何解决?
[red]问题已经解决。上面代码正确的。问题出在接收代码部分。[/red]
 
1468 最好
在TCP/IP应用协议中基于UDP的 一都是 1468
因为以太网 mtu = 1468
 
try
sendto(udpapisock,BlockBuf,RemainLen,0,ss,dw);//RemainLen为实际数据大小
except
//do something
end;
 
最好做一下包检测,可以参考微软的流媒体播放。
 
哇。问题解决了。送分都没有人要啊!谁以后送分我可都要。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部