TVideoGrabber如何并行处理多摄像头
大家都知道 TVideoGrabber是一款支持包括C#、.NET、VB.NET、C++、Delphi、C++Builder和ActiveX平台在内的视频处理控件,可以捕捉视频,也可以作为多媒体播放器。个人比较觉得不错的是视频源的选择还真挺丰富,能捕捉和记录多种视频捕捉设备上的视频和音频流,包括USB摄像头、USB模拟捕捉设备、网络摄像机、台式机以及用作视频源的各种位图。
要在在TVideoGrabber中如果要并行处理多摄像头以及执行多摄像头网络流,需要执行下面的步骤:
1、通过视频输入的一个TVideoGrabber组件:
如果你有一个“true inputs”卡(one input = one video chip),比如说IEI IVC200G,就有4个输入,4个输出。
只需要放4个TVideoGrabber组件在窗体上,并分配每个“VideoDevice”属性给每一个输出(0、1、2、3)。
在这种情况下你要为TVideoGrabber组件的每个“ASFNetworkPort”属性分配唯一的一个网络端口,所以你将会有有着4个不同接口的4个网络流URL。如果可以的话,你需要在路由器或是防火墙上打开每个网络接口。
2、一个TVideoGrabber组件控制着一个有着4或16个多路复用输入:
通过TVideoGrabber,这个多路复用输入会定期的自动切换,这样就可以将它们显示在一个“mosaic layout”模式中,在这里TVideoGrabber显示了整个的4或16输入到同一个大的视频窗口中。
通过简单地设置“MultiplexedRole”属性到mr_MultiplexedMosaic4或mr_MultiplexedMosaic16可以激活这个模式。
这种情况下,在一个的视频窗口和一个的网络流中,你可以同时流4或16输入(在这种情况下,你只需要一个网络端口和 4个或16个通道)。
3、一个主TVideoGrabber处理一张有4或16多用复路输入的卡,同时每个输入被分配到一个TVideoGrabber从组件。
这是一个主/从模式,其中这个主TVideoGrabber组件分配每个这4或16的输入到4或16TVideoGrabber的从组件上。每个从属组件可以用来作为一个正常的TVideoGrabber组件,并从主组件的每个输入接收视频帧。
这里留个地址,有兴趣的自己去研究一下 ,下载