问题描述
最近要作一个项目,通过一个窗口查看到其他电脑上USB摄像头里的画面。没有什么思路,请教大家一下。第一部分USB摄像头采集,之前看好像都用directshow采集摄像头的画面,但是directshow被微软准备用mediafoundation代替了,但是这块国内资料很少,更没什么实例。另外同时对几十台电脑传输,怎么保障画面不延迟。还有看到好多说视频采集来后被编码,然后传输到目标机器后被解码。这块大致什么实现。希望大家能够提供一个流程以及采用的技术和协议,如果有对应的开源框架那就更好了。本人主要是windows上作多路USB摄像头实时传输。就是一个人能看见其他电脑上USB摄像头的画面,要实时的。修改
解决方案
解决方案二:
好几天了,也没个人。。。
解决方案三:
50路同时显示,这是个很大的问题。一般都是用硬件实现了,也就是32路。建议使用wcf+wpf来做。wcf做传输,wpf做采集和显示。要使用udp来做,或者更好的使用rtsp或rtp
解决方案四:
最后,还是不敢想了。lz50路同时显示在一个屏幕上。
解决方案五:
是不是应该用硬件分路器来实现呢?
解决方案六:
可以不用50路,同时20路也可以。可以通过切换来进行循环看。这边要求要纯软件实现,之前我也看到的是纯软件可以实现的
解决方案七:
如果没有请求,后面的思路都没意义,请求是出发点,不看的东西不需要显示,不显示,问题就简单多了如果没请求,就磁盘存储,有请求,就走双路,用最快的速度把数据传给消费者,POST方式,别管消费者用还是不用,POST过去完事,后台用一个队列暂存来不及处理的部分内容,写入本地磁盘。
解决方案八:
至于采集传输,这块压缩,是肯定要做的,来的及压的,就压,来不及压的,就直接传,硬件的参数肯定有,传输速度满足硬件参数就行,现在通信应该很便宜了,弄N根光纤的成本,和一根几乎可以忽略(反正也怕监听,我指的是用地沟下的专网)
解决方案九:
最主要地,你应该做一个分布式的视屏数据查询网络。你的服务器平常并不应该用来保存数据,而是应该仅仅用来处理“登录”,和向各个在线客户端推送查询命令。而客户端负责对“多路视频”进行本地备份,并且进行(业务意义上足够明白的)视频数据索引。当得到服务器的查询命令,客户端把查询结果返回给服务器;当得到服务器的“推送视频”命令,客户端这个时候才会把视频数据(断点)上传到服务器。客户端应该根据服务器的请求去主动降低分辨率,不应该传送分辨率高于服务器需求的数据。等等。核心问题,就是拼命少用带宽问题。能够解决带宽问题的系统,就值钱。不能解决这个问题的系统就是垃圾。
解决方案十:
首先问下,你的网络吃得消吗?然后是你的硬件吃得消吗?