论文部分内容阅读
近年来,计算机网络技术特别是宽带技术的发展给人们的生活带来了巨大的冲击.可以预见,在不久的将来,Internet将成为人与人之间最主要的交流方式.而流媒体技术的出现与发展将使得人与人之间的交流方式更加人性化、多样化.为构建一个稳定的、高效的、基于IP的流媒体应用平台,有必要对现代流媒体的传输和存储技术进行研究.考虑到应用环境的复杂性,在数据采集端采用了一个基于μ Clinux的嵌入式设备,该设备支持TCP/IP,可适用于多种工作场合.而在接收端,用户可以通过播放器或者是WEB页面来获取千里之外的视/音频内容.作为流媒体服务平台的枢纽,视/音频数据转发及存储系统需要将从数据采集端接收的数据重新分帧、包装并转发给发布服务器.在转发过程中,由于采用的是本身不具备拥塞控制的UDP协议,因此出现丢包的情况在所难免.Ⅰ帧作为参考帧,包含着更多的有效信息.相较P帧而言,Ⅰ帧的丢失往往会对视频质量产生更大的影响.在网络负载较大的情况下,怎样降低Ⅰ帧的丢失率就成了一个具有现实意义的问题.在带宽有限的条件下,可以考虑主动丢弃一部分P帧以降低网络的负载.因此设计一种能够根据网络的负载状况和数据源的重要程度对P帧的丢弃进行模糊控制的算法具有一定的积极意义.出于通用性的考虑,系统选择较为常见的ASF(Advanced System Format)和AVI(Audio Video Interleaved)作为存储格式.为方便用户开发,Microsoft公司在Windows平台上提供了相应的SDK(Software Development Kit),但考虑到系统在UNIX平台上的应用,有必要在研究和分析ASF和AVI格式的基础上提出一种脱离Microsoft SDK的存储实现方法.基于面向对象的设计思想,可以将系统分为3个模块,它们分别完成数据的转发、存储和控制信令解释等功能.在分析相关协议和标准的基础上,给出了这些模块的设计方案和具体的实现方法.