论文部分内容阅读
随着无线通信技术的不断更迭和Android智能移动终端性能的不断提升,视频传输系统中的终端设备正从个人电脑和固定摄像头向Android智能移动终端为终端迁移。目前市场中的视频传输系统大多需要高带宽支持以保证视频传输的实时性,当遇到在网络拥堵的情况时,这些视频传输系统就无法保证视频直播的实时性甚至会中断视频直播,这对用户而言是非常差的体验。基于上述问题,本文提供了基于KCP协议的实时视频传输方案,针对网络拥堵这种极端情况下直播实时性差的问题,尝试在协议侧使用KCP协议作为视频传输协议进行解决。本方案使用Android智能手机作为实时视频传输系统的推流端和播放端,并使用KCP协议进行端到端的通信。KCP协议作为一个可靠的传输层ARQ协议,它的初衷就是为了处理在网络拥堵的情况下TCP的网络通讯速度很慢的难题。本文使用KCP协议作为Android推流端和Android播放端之间的视频传输协议,能够有效的保证网络拥堵情况下直播系统的实时性。此外,本文还在Android播放端添加了追帧计算以保证网络抖动时直播的实时性。本文的主要工作如下:1.为了实现基于KCP的Android推流端,本文使用KCP Client作为Android推流端,设计并实现了Android推流端从视频数据采集到发送过程中的各个模块,这些模块包含从采集、拷贝、预览、修改、编码和发送实时视频数据模块。2.为了实现基于KCP的Android播放端,本文使用KCP Sever作为Android播放端,设计并实现了Android播放端从视频数据接收到播放过程中的各个模块,接收、解码和播放实时视频数据模块。3.为了减少网络抖动时Android播放端的累计时延,本文设计出了通过遍历KCP收包队列,根据队列尾部的视频数据时间戳判断是否丢弃数据包的追帧计算。为了验证系统的有效性,本文对所实现的实时视频传输系统进行了功能测试和性能测试,验证了各个模块在功能上的正确性以及实时视频播放的实时性,能够满足实际使用的要求。