有个视频采集卡,不断的采集图片,然后要把图片传输到客户端显示,假设每秒传10张的话,直接用TCP传输会总出错(传的慢些的时候还好,也可能是我编写的代码本身就有问题),想知道如果先把图片传输到sql数据库,然后客户端再实时读取显示,这么做效果怎么样,会比TCP直接传输好吗?
假设在局域网的环境下,最好能解释下为什么,感谢啊。

解决方案 »

  1.   

    呵呵,每秒10长都出问题啊?视频要流畅一点的话,正常格式好像是24帧,但是没必要要这么快,我也没见达到过。
    感觉视频监控没必要用tcp,又不是必须保证每一幅图像都不能丢失,偶尔丢失一两副图像是不会影响视频质量的,tcp为了保证数据的安全到达,每次传输都需要等待接收方回应,这里无疑使得速度慢掉了,而udp则不会有这个问题,况且你是在局域网中,局域网一般都是100M,网络环境应该是没有问题的,我看别人做的桌面监控(几乎相同的原理,截屏,按照一定的频率发图像给服务器,然后显示),或者视频会议,都是用的udp,把采集到的图像数据,用定时器,设置一定的频率,比如每秒10张,发给服务器,然后显示,因为udp不需要确认,无等待,也不优化,所以,如果忽略掉网络延迟,接收方几乎可以按照这个频率来显示。
    如果你先放进数据库的话,只能说有可能只能保证你不会出错,但是效果肯定有延迟,因为你先放到数据库中的话,你和数据库之间的通信别人的数据库系统肯定给你处理了异常并保证通信安全,然后你查数据库显示数据这个没什么出错不出错的吧