论文部分内容阅读
随着社会的发展与互联网时代的到来,人们对于公共和私人场所的安全性要求越来越高。视频监控技术伴随着物联网和流媒体技术的飞速发展也在不断更新换代。在校园、公司、企业甚至家庭里,实时流媒体监控与直播正在成为一个不可或缺的部分,每时每刻都在保障着所有场所的安全以及消除其中可能的隐患。但是传统的视频监控解决方案造价昂贵,依靠大量的专业设备,并且不能依靠现有的因特网进行视频数据的传输。同时当前市面上新一代的视频监控方案,有些仅仅依赖于网络摄像头的流媒体传输服务,有些则需要商业收费。本文选择了架构精简的开源流媒体服务框架Live555,并在其基础之上进行二次开发,实现了代理服务器功能,同时基于Qt和LibVLC库,设计了一个分屏显示的视频监控客户端,本方案低廉并且架设方便,适合中小型场所存在一定数量的摄像头和监控客户端的场景。本文首先介绍了流媒体有关的技术,对流媒体服务所需的RTSP/RTP/RTCP协议进行深入分析,选择了市面流行的H.264为视频传输编解码格式,同时对Linux下的网络传输与socket编程进行简要介绍。然后概述了整体方案的各个组成部分,解释了选择流媒体框架Live555的理由,分析了 Live555的结构组成,以及对实现视频监控客户端所需的Qt和LibVLC库进行了详细介绍。接着仔细分析RTSP服务器提供RTSP服务的过程以及内部对一系列RTSP命令请求的处理流程,同样分析了 RTSP客户端发送RTSP命令并处理响应的方式,实现了代理服务端的转发功能。然后设计并实现了基于Qt和LibVLC库的视频监控播放客户端软件。总结了使用Qt库设计分屏显示客户端和实现动态分屏的流程,介绍了界面组件的功能,以及如何获取远程视频数据并在选定分屏屏幕上播放视频的功能。最后,对整套系统进行了性能测试。实际实验表明,该系统在多路摄像头数据接入及多用户客户端并发访问时运行稳定,具有很强的实用性和扩展性。