论文部分内容阅读
随着互联网的广泛普及和多媒体技术的迅速发展,基于网络的流媒体传输技术得到了广泛的应用。如视频通话、视频监控、视频点播、网络直播、远程医疗等。但互联网只提供一种“尽力而为”的服务,在视频传输的过程中,由于网络的延时,带宽的不稳定,编码效率的低下,很容易造成数据包的丢失,从而导致视频播放的失真等问题,因此很有必要研究一个有效的实时流媒体传输方案来解决这些问题。本文在对live555进行二次开发的基础上,利用FFMPEG和H.264的高效编解码技术以及RTSP和RTCP/RTP的高效网络传输策略来实现了一个基于RTSP协议的H.264实时流媒体传输方案。本文先是对流媒体的相关技术进行了介绍,对网络传输协议进行了深入的研究,选择了RTSP、RTP、RTCP协议作为网络传输和控制协议,H.264和AAC作为主要的视频、音频编解码标准。其次对流媒体方案进行了比较,选择了live555和FFMPEG作为主要的技术框架。在对live555库、FFMPEG库和Android系统的架构进行了简要地分析的基础上,提出了系统的总体框架,并对服务器和客户端的主要模块进行了简要介绍。接着详细地分析了实时流媒体传输系统的服务器方案,利用RTCP技术解决了实时传输的拥塞控制问题,针对Live555不支持客户端上传、MP4文件下发、实时转发等问题,对Live555进行了二次开发,增加了上述功能模块,并进行了多进程扩展。然后对流媒体客户端的方案进行了详细介绍,通过在Android平台上移植FFMPEG,结合Anroid API开发了一个既支持RTSP上传又支持RTSP播放的手机客户端,通过采用缓冲队列和时间戳来解决音视频同步和播放等问题。此外还介绍了音视频采集模块,音视频编码模块,客户端MP4文件解析模块、音视频解码模块,音视频播放模块、音视频同步模块的具体实现。最后对系统的硬件和软件环境进行了介绍,并对流媒体服务器和客户端进行了相关测试,对测试结果进行分析表明,系统具有较好的实时性和传输质量。