APP下载

流媒体转发服务器的设计与实现

2018-01-09黄慧精

电脑知识与技术 2017年34期

黄慧精

摘要:视频监控是安防领域的重要组成部分,是當今社会安全系统中相当关键的一环。流媒体服务器又是其重要的设计环节,流媒体服务器的引入有效地解决了监控系统的带宽瓶颈,本文主要介绍了流媒体转发服务器的系统实现架构,提高转发效率设计的实现,并系统化展示了其功能环节。

关键词:流媒体转发;RTSP; RTP;RTCP

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)34-0199-02

1 概述

随着监控系统的系统化、效率化的发展和提高,流媒体技术的引入有效地提高了监控系统的传输机制,流媒体技术是将视频或音频等多媒体数据以RTP数据包的形式,将前端设备IPC数据流实时传输至客户端。流媒体服务器能实现同时响应多个客户端的视频流实时请求,从而有效地解决了带宽的限制。

本文详细介绍了流媒体服务器的功能架构,具体的设计、实现,并以系统的形式展现其功能价值。

2 系统总体框架

2.1 系统流程设计

整个视频监控系统由多个部分构成,前端设备IPC负责采集视频数据,流媒体服务器负责转发媒体视频流数据,监控平台主要给客户端提供浏览视频使用。流媒体服务器起关键作用,当客户端需要某路视频图像时,通过RTSP协议与流媒体服务器建立通道连接,流媒体解析消息后,再与对应的IPC建立流连接通道;IPC上传RTP视频数据流至流媒体服务器上,流媒体再接受到该数据包后,做相应处理,再转发给请求的客户端。

2.2 软硬件接口设计

流媒体服务器与客户端和IPC软件接口采用目前常用的RTP、RTSP、RTCP协议,系统运行前需要先配置流媒体服务器的相关信息,供客户端调用。客户端是一种应用视频软件,提供了视频界面,有一定的参数配置等。当多个客户端同时访问同一个视频流时,流媒体可以有效地减轻网络宽带压力的影响。

考虑系统吐吞量比较大,该系统采用千兆双网口,一个是视频入,一个是视频出;运行在嵌入式linux操作系统上。性能主要表现为系统的反应速度和响应时间,作为一个实时监控系统,对反应速度和响应时间的要求要高,同时还要满足多客户端同时点播前端设备的情况。每个流媒体服务器最大支持64路1080p/8Mbps码流或128路720p/4Mbps码流。

3 流媒体服务器设计与实

3.1 流媒体点播处理过程

视频点播过程又可分为两个过程即请求视频数据和停止视频数据。具体流程如下,

请求视频数据流程:

(1) 流媒体服务器收到由客户端数据请求后,解析访问者信息(IP/PORT)。

(2) 判断客户端请求的设备是否已经建立过连接,如果已经建立连接,直接给请求的客户端转发视频流,并记录访问媒体数据流量。如果没有建立连接,则通过RTSP与IPC交互并接受来自IPC的RTP数据流。

停止视频数据流程:

(1) 流媒体服务器在接到客户端发出的请求终止视频数据的消息后,立即解析访问者的信息数据流(IP/PORT)。

(2) 判断视频服务器请求的设备是否还有其他客户端连接,如果还有其他客户端连接,则直接断开与客户端连接通道即可;如果没有其他客户端访问该设备,先停止相应的转发服务,再断开与客户端的连接通道。

3.2 流媒体系统设计

流媒体服务器与IPC端之间数据流,有三条消息通道,一条通道是RTP协议数据链路,这条通道主要工作是接收前端设备IPC的视频RTP数据流;第二条通道是RTCP协议数据链路,这条通道的工作是传输RTP链路协议中的QoS控制消息,然后让服务器根据这条通路发送的消息来调整整个发送端的速率。再一条是RTSP协议数据链路,主要完成与IPC端的通信建立之前的交互操作,获取所需的参数信息。

流媒体服务器与客户端之间数据流,有两条数据通道,一条通道是RTP协议数据链路,这条通道负责转发由服务器端向客户端传输的视频流。第二条通道是RTCP协议数据链路,主要完成传输RTP链路协议中的QoS控制消息,使得服务器根据这些消息调整发送端的速率。

流媒体服务器主要功能是响应客户端的请求,然后从IPC获取需要的视频流数据,最后为发出请求的客户端转发视频。当流媒体服务器接收到来自客户端的点播或请求后,服务器启动该线程,监听来自客户端的请求。若有多个客户端点播,则流媒体服务器需要启动多个处理线程,为了节省资源减少操作,我们可以定义一个线程池,预先开启多个线程,每当接收一个客户端请求时,直接从线程池中启用,当客户端断开后,释放线程,再将其放入到线程池中,这样可以减少很多关于线程创建和释放的操作。同时流媒体服务器需要先创建一个缓冲区,用来存放来自前端IPC设备发过来的RTP报文,同时为了避免多线程同时操作数据造成数据错乱,需要创建一个临界区,用互斥量来保证数据的顺序执行。流媒体服务器主要设计流程如图1。

从系统设计流程图(图1)可以看出,要建立的RTP会话的数量与当前IPC流媒体服务器之间传输的视频路数相对应。即要转发多少路视频,就要建立多少个相应的RTP会话,同时每一个RTP都要有自己相应的线程。所以要建立的RTP线程数量,与要转发出去的视频路数没有必然的联系。结果表明,一个RTP会话的一路视频,可以转发给多个用户。

RTP会话的关闭取决于当前视频通道的转发情况,而不是由一个客户端的停止请求所确定。当客户端发出一个停止请求时,服务器先把发出请求的客户端地址从转发列表中删除,然后再判断当期通道请求的数量。如果当期通道请求的数量为0,就结束当期RTP的会话,关闭线程,实时流视频停止请求的工作。

4 系统运行与测试

系统搭建完毕后,配置设备的参数,系统正常启动后,视频流从前端设备IPC经过转发服务器回传到客户端,本系统中使用两个IPC,流媒体服务器一台,一台笔记本主要运行客户端软件。具体显示如图2、图3:

5 结束语

本文从系统设计和高效的资源管理方面提出了设计和改进方案,实验证明该方案有效地降低了CPU的使用率,极大提高了视频转发处理能力,很好提高了吐吞量。

参考文献:

[1] 毕厚杰.视频压缩编码标准—H.264/AVC[M].北京:人民邮电出版社,2009.

[2] TMS320DM368 digital media system-on-chip[EB/OL].[2010-07-27].

[3] RTP:a transprot protocol for real-time application[EB/OL].[2010-07-27].

[4] 王艳营. H.264中块匹配的快速搜索算法研究.中国有线电视,2007(24).

[5] 张晓燕,李瑞欣,刘玲霞.多媒体通信技术[M].北京:北京邮电大学出版社,2009.

[6] http://focus.ti.com.cn/cn/docs/prod/folders/print/tms320dm368.html.endprint