本文在嵌入式硬件平台TMS320DM8168上实现了一款基于RTSP协议的视频通信服务器,详细阐述了DM8168的硬件平台与开发框架,以及基于RTSP协议的视频通信服务器的实现。系统先通过摄像头对视频进行采集,然后对视频进行H.264的编码,再将编码后的H.264流进行RTP封包并建立好RTSP服务模块,将视频传输给接收端并进行了实验结果的展示。 This paper implements a video communication server based on RTSP protocol using an embedded hardware platform TMS320DM8168. It specifically elaborates the hardware platform and development framework of TMS320DM8168, the realization of video communications server based on RTSP protocol as well. System captures the video flow through a camera firstly, then doing H.264 coding works. After that, the coded flow is packed as RTP packets; meanwhile, the system will establish a RTSP serve module. Finally, the server transfers the coded video flow to the receiver which displays the experiment results.
白勇,卿粼波*,何小海,付雄
四川大学电子信息学院图像信息研究所,四川 成都
收稿日期:2015年11月13日;录用日期:2015年11月28日;发布日期:2015年12月1日
本文在嵌入式硬件平台TMS320DM8168上实现了一款基于RTSP协议的视频通信服务器,详细阐述了DM8168的硬件平台与开发框架,以及基于RTSP协议的视频通信服务器的实现。系统先通过摄像头对视频进行采集,然后对视频进行H.264的编码,再将编码后的H.264流进行RTP封包并建立好RTSP服务模块,将视频传输给接收端并进行了实验结果的展示。
关键词 :DM8168,MCFW,H.264,RTSP
近年来,通信技术有了很大的进步,为人们越来越高的通信要求提供了技术支持。多媒体通信是通信技术的一个重要分支,它能够提供语音、视频和数据的立体式服务,在远程教育、视频通话、视频监控等方面有着广泛的应用[
本文旨在设计一款视频通信服务器,摄像头对视频进行采集后送入视频通信服务器,视频通信服务器对视频进行相应的处理,通过传输协议传送给PC、嵌入式设备、或者手机等终端进行播放。系统框图如图1所示。
本系统的硬件平台是TMS320DM8168以为核心处理器的高速图像处理平台。核心处理器TMS320DM8168实现图像处理和外设控制。除了核心处理器外,还有DR3、网口、视频输入输出、电源复位和时钟等外设。其中DDR3容量是2 GB,主要用来提供操作系统运行和程序所需要的内存空间。模数转换芯片是将摄像头采集的模式视频转换成数字视频传给核心处理器处理。网口采用的是千兆网,主要用来进行数据传输。时钟电源和复位是为系统的运行提供支持。总体框图如图2所示。
TMS320DM8168是TI公司推出的一款高性能处理器,它采用的是多核异构模式,集成有四个处理器:Cortex A8、C674x、VIDEO M3和VPSS M3。四个处理器通过协同分工,独立完成各自的任务,然后再经过核间通信等方式进行协同从而完成复杂的功能,这种分工协同的开发方式是通过TI提供的多通道处理框架(MCFW)来实现的。为了进行图像处理,在MCFW中定义了许多Link节点,每个Link节点独立的完成一项处理,处理完成后调用需要的Link节点并将消息传递给下一个Link节点,下一个Link
图1. 系统框架图
图2. 硬件平台框图
节点接着对图像进行处理。所以用户只要有序的创建和调用需要的Link节点就能完成复杂的图像处理操作。这种方式将复杂的图像处理操作分解为了许多简单的图像处理并调用Link节点实现,大大降低了开发难度,同时也提高了图像处理的效率 [
本文的传输协议采用的是实时流传输协议(RTSP)。RTSP是TCP/IP协议体系中的一个应用层协议,定义了一对多应用程序如何有效地通过IP网络传送多媒体数据,它使用TCP或UDP完成数据传输 [
作为应用层协议,RTSP用于若干个同步的媒体数据流连接的建立和控制,但它并不能传输媒体数据流;RTSP与RTP/RTCP等更低层的协议一起配合使用,提供基于互联网络的整套媒体流化服务。RTSP不但为服务器和客户端建立会话控制连接,还实现媒体数据流的远程控制操作。因此客户端首先应该连接服务器的RTSP端口;客户端建立RTSP连接后发送DESCRIBE方法给服务器,方法中包含目标点播文件的URL。客户端将RTSP包的DESCRIBE方法发送给目的服务器;服务器收到此方法信息后会传送标准的媒体描述文件SDP到客户端播放器;客户端读取并分析SDP描述文件按具体内容来配置相应音视频数据解码的同步信息,例如:网络类型、RTP传输通道的端口号、编码类型、采样率等。
为了实现视频通信服务器,首先对视频进行采集,然后将采集的视频进行基本的去噪处理,接着对视频进H.264的编码,再对编码后的码流进行RTP打包,最后建立RTSP服务器。服务器的软件设计是在TI提供的多通道框架(Multi Channel Framework, MCFW)中实现的。如图3所示。
本文所设计系统的服务器端软件设计是在MCFW框架内实现的。在MCFW框架中,进行图像处理时,先将复杂的处理分配给一个个Link,通过调用各个Link完成相关功能,再通过Link的通信实现整个处理。要实服务器端的设计,首先需要对视频进行采集和预处理和H.264编码,然后才能进行RTP打包发送,流程图如图4所示。
为了实现对视频的采集、编码,将这个过程拆分成了一个个Link,上游Link先实现自己的功能,然后将消息传递给下游Link,这样完成整个处理流程。具体过程为:视频数据从Capture Link传给Nsf Link,完成去噪处理,这个过程都是在VPSS M3核上完成的,所以不需要Ipc link,直接通过.nextLink和prevLinkId就可以实现。由于Nsf Link运行在VPSS M3核上,而Encode Link是运行在VIDEO M3上的,所以这两个Link之间的通信需要在中间添加另外两个用于核间通信的Ipc Link,即ipcOutVpssId和ipcInVideoId;视频数据先从VPSS M3出来之后,再进入VIDEO M3核中。从而实现两个核之间的通信。通过上面的Encode Link之后,视频数据被编码成了H.264文件格式,接下来需要把这些H.264文件传到Cotex A8中,等待RTP打包并通过网口发送出去[
视频经过H.264编码之后生成了一个个NALU (网络传输单元),对H.264进行打包就是将一个个的NALU进行RTP打包,主要分为RTP头打包实现和RTP有效负载打包实现。
1) RTP头的打包实现
对RTP头进行打包,就是对RTP报文头部的各项参数进行赋值,赋值的依据就是系统的要求。首先需要申请一个1500字节大小的数组mysendbuf[
2) RTP分组负载的实现
本系统对采集到的原始视频数据进行H.264编码后,输出的是一个个的NAL单元。每个NAL单元都由三部分组成,NALU的结构如下所示:
[开始码] [NALU头] [NALU有效负载]
图3. 视频服务器软件设计方案
图4. 视频处理流结构
本系统开始码赋值为00 00 00 01。NALU头部占用1字节,NALU有效负载为多个字节的RBSP数据。本系统的最大传输单元(MTU)设为1400。根据NALU大小来区分:尺寸很小采用组合封包,小于1400字节采用单一封包,大于1400字节采用分片封包 [
图5. RTP分组负载的实现
RTP打包流程:首先检测到NALU包,检测NALU的起始码00 0000 01,去掉NALU头部,检测到有效负载。判断NALU有效负载的大小,分别采用分片封包、单一封包和组合封包,将之写入创建的数组中,等待网络发送。
当RTSP客户端需要服务时,它先要对RTSP服务器发起连接请求,然后RTSP服务器对请求进行响应。对客户端的响应是由RTSP服务模块完成的(图6)。
在本系统服务器模型中,为了处理客户端的RTSP请求,首先分析RTSP请求报文各头字段信息,然后程序判断RTSP请求的命令码再分别对其进行处理,并回复RTSP应答报文。当服务器正确处理PLAY请求后,会将该用户的RTSP状态设置为STATE_ PLAYING,然后开始向客户端发送封装有H.264视频数据的RTP分组。
RTSP服务器模块初始化后,程序会一直监听系统的554端口,等待客户端连接。客户端与服务端建立连接后,客户端会按顺序发送RTSP请求报文,服务端会根据请求报文内容做相应的处理,并回复RTSP响应报文。然后双方完成RTSP协商,服务器开始发送封装有H.264频数据的RTP分组,客户端接收到RTP分组后解码显示。最后,服务结束,关闭连接 [
通过第二节设计实现了视频通信服务器,为了验证正确性,采用PC机作为视频接收端。在PC机安装开源播放器VLC,连接网线,在VLC中输入IP地址:rtsp://192.168.196.128/steam1.264,请求服务器播放视频,服务器响应请求,将视频传输到PC机端并在VLC中显示。图7是系统硬件平台的连接图,图8是PC机所接到的视频在VLC上的显示画面。
图6. 服务器模块处理过程
图7. 实验效果图1
图8. 实验效果图2
本文针对快速实时的传输视频数据的应用,设计与实现了一款基于TMS320DM8168的视频通信服务器,实现了嵌入式设备对视频进行采集、编码和传输,并建立了RTSP服务器。本文通过MCFW框架对视频进行采集和H.264的编码,再对编码过的视频流进行RTP打包,建立好RTSP服务器,从而完成了视频通信服务器的设计,并在最后测试了系统设计的正确性。由于受到硬件系统的限制,本文系统处理的视频是D1格式的,如果想实现更加清晰的播放效果可以考虑采用高清视频实现。
国家自然科学基金(61201388)。
白勇,卿粼波,何小海,付雄. 基于TMS320DM8168的视频通信服务器的设计 Software Design of Video Communication Server Based on TMS320DM8168[J]. 图像与信号处理, 2016, 05(01): 1-8. http://dx.doi.org/10.12677/JISP.2016.51001