windows下局域网实时视频传输软件结构

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

我去年做了一段时间局域网上的实时视频传输,如果是服务器对多用户进行实时的视频传输,以我的经验:

1.服务器软件用多线程:

(1)主线程:读出(看你的图象具体怎么上PC机了)一帧视频数据,送给拆分线程。

(2)拆分线程:接到一帧视频,开始拆包、做帧标记、打序列号,送给发送线程。

(3)发送线程:用RTP socket把封装好的数据包发给客户端。此socket是点对多点、单向

有根方式的组播套接字,实际上是基于UDP派生的,但他用到了RTP和RTCP(实时传输

协议和实时传输控制协议),如果你传输的不是实时数据,直接用UDP就行了。

2.客户端软件结构一般用多线程,线程间用事件对象进行同步,而共享数据区用临界区对象进

行同步。

(1)主线程:接收网络数据包的线程,优先级最高,可以尽量保证不丢数据,也采用RTP协

议,用网络事件来触发。主线程接收到视频数据包后,将数据放入一个链表中,然后

用事件对象触发组装线程。

(2)组装线程:从链表中读出数据包,要进行帧确认、排序等工作,当把一帧图象的所有

包都取到时,再调用组装模块(可以是一个函数),将这些数据包组装成完整的一个

帧,然后送到解压线程。

(3)若干解压播放线程。主要考虑到如果你客户端软件想同时播放多画面,比如说4画面图

象,就要用4个解压播放线程。

(4)至于图象存储,要看你的客户需要怎么存了,如果是手工存当然不需要单开线程,如果

是规定定时存或在某个事件发生时自动存盘,就需要单开一个线程,由定时器到时消息

或此事件发生来触发。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航