本帖最后由 VisualEleven 于 2011-12-06 09:22:03 编辑

解决方案 »

  1.   

    你先看一下接收的速率,排查一下是不是socket的问题,然后再定位是不是GDI+的问题..
      

  2.   


    我实时监控我接受的数据量,当图片在走的时候,下行速度可以达到378kbps,但是卡住的时候,下行速度就是几kbps,这是我其他软件的消耗。所以应该不是GDI+的问题,这是接收不到图片的原因吧。然后我尝试在发送端每发送一次,Sleep(20),线程暂停20ms,但是除了显示的速率慢了,该卡还是卡。这样是不是可以说就是socket的问题呢。 
      

  3.   

    你没有做缓冲处理,当然不行。首先,你先定义缓冲时间,比如500毫秒。也就是说,从A点到B点,至少要经过500毫秒的缓冲。然后你需要在每一帧图像上打时间戳。B点收到图像,也不着急显示,而是要等到其从缓冲区弹出。你最好定义一个传输窗口,这个窗口大小为小于500毫秒的数据,数据不必按照顺序传输,而是在窗口内的帧都可以传输,接收也不分先后,到了B点再排序,如果某帧错过了时间窗口,就不必传了。也就是说,在你的显示端和采集端之间存在一个缓冲区间,这样才能平滑地显示。
      

  4.   

    这显然是网络传输速率不稳定造成的,这是必然的啊。哪有接一帧就显示一帧的?视频是需要一个稳定的帧率的,PAL制或者N制。