摘要:H.323协议为通过基于IP的网络进行音频、视频和数据通信的应用提供了可遵循的标准。本文根据多媒体点播的需求,将多媒体点播系统分为两层,资源层和H.323层。资源层按照HTTP协议传输多媒体中的文字等资源,H.323层以H.323协议传输媒体流与控制指令。
关键词:H.323 多媒体 点播
在过去的几年中,Internet已经变成支持多媒体服务的可见基础设施,包括单向点播的多媒体内容查找,实时交互服务如电话或会议。存储的或实时的多媒体服务需要一些新的Internet服务来进行数据传输和控制。研究者已经提出了一些传输实时数据的协议[1],但是,发起并控制多媒体会话的协议并不完善。本文在H.323协议的基础上,设计并实现了通过Internet发起并控制存储的或实时交互的多媒体会话的多媒体点播系统。
1 系统整体架构
本文实现的多媒体点播系统分为三个部分,分别为MCU服务器,资源服务器和数据库服务器。MCU服务器遵循H.323协议,按照H.323协议传输媒体流和控制指令;资源服务器响应点播终端对其他资源的请求,将其请求的资源传输给各个终端;数据库服务器存放所有系统数据,包括用户数据等。终端从数据库服务器获取用户信息以完成访问控制、用户权限控制等功能。三个服务器各司其职,互不干扰,有效分散了系统的负载,同时明确了各自的职责,方便后期的开发和维护。系统结构如图1所示。
图1 系统总体结构
2 资源层设计
在本系统的设计时,尽量重用HTTP协议,以HTTP协议为基础的好处是该系统可以最大程度的利用现有的封装协议[2],认证协议[3],内容标记和客户端访问控制技术[4],另外,成熟和稳定的服务器,代理,防火墙等技术也可以为该系统所用。
资源传输是资源层最主要的功能,资源层主要将所有资源都转成HTML格式,并通过HTTP协议完成资源的传输,这里不再赘述。
3 H.323层设计
H.323层主要负责控制指令和多媒体流的传输,该层完全基于H.323协议,采用Openh323协议栈进行初始化、控制指令的传递以及多媒体流的传输,开发语言为C++。
该层采用集中式多点点播模式,所有多媒体流都由MCU服务器中转,所有控制指令也均由MCU服务器接收并处理。终端的H.323层处理点播会话的发起和建立,媒体流的接收,控制指令的发送等工作,MCU服务器处理多路媒体流的发送,控制指令的处理和响应等。
(1)自定义控制指令系统结构
本系统设计了一套专门用于多媒体点播的控制指令,分为MCU指令,点播指令,中断指令,令牌指令和MCULIST指令。
MCU指令是MCU服务器特有的指令,用于向终端传递多媒体节目信息,标识为MCU。
点播指令是终端特有的指令,用于向MCU传递用户点播信息,标识为UNICAST。
中断指令是MCU服务器和终端共有的指令,用于中断当前的多媒体会话,标识为BREAKOFF。
令牌指令即TOKEN指令,TOKEN是MCU服务器为每个终端生成的唯一标识,在本系统中,均以TOKEN来唯一标识各个终端,由于此标识只在服务器端生成,终端无从得知,因此定义了该指令,MCU服务器使用该指令告知终端其对应的TOKEN,标识为TOKEN。
MCULIST指令是终端多媒体节目更新指令,标识为MCULIST。
控制指令的基本结构如表1所示。
表1 控制指令基本结构
|
源Token |
ISSIGNAL |
指令属性 |
指令名 |
附加信息 |
源Token标识发送方,ISSIGNAL标识指令类别为控制指令,指令属性为MCU指令,点播指令,中断指令,令牌指令和MCULIST指令等几种。点播内容在附加信息中。
(2)点播流程
指令流程如图2所示。首先终端与MCU之间建立H.323连接,连接建立完成后即开始初始化流程,在进行所有操作前,终端必须先获取自己的TOKEN,因此,由MCU向终端发送TOKEN指令,用于告知终端的TOKEN,随后,MCU向终端发送MCULIST指令,更新终端的多媒体节目列表,然后,终端可以在用户的控制下进行节目点播,点播的节目通过UNICAST指令传递给MCU,MCU接到UNICAST后将用户请求的多媒体信息通过H.323协议传送给终端。若用户想退出,则可以发送BREAKOFF指令,MCU服务器收到BREAKOFF指令后会结束多媒体流的传递,并退出H.323会话。
图2 点播流程时序图
4 H.323服务器处理流程设计
本系统采用集中多点点播模式,所有终端均需要与MCU建立连接,终端通过建立连接与MCU交互控制信息和媒体流。每个终端维护自身的连接,而MCU则同时维护多个连接。MCU对用户请求的处理时通过对连接的维护实现的。
MCU在初始化之前需要导入存放在指定地点的配置文件,此配置文件中存放了MCU的所有配置信息,包括IP地址、监听端口号等等。MCU根据此配置信息初始化整个系统。
由于连接可能随时到来,故MCU始终运行着一个监听线程,负责处理所有到来连接,连接到来时,系统要先检查连接字符串,该连接字符串有多种表达形式,主要信息包括:MCU名/MCU地址,房间ID,用户名及密码等。系统首先检查此字符串是否是规定格式,若不是,则立即拒绝连接,检查完格式后,系统继续检查MCU名或MCU地址,若该项表示的是自己,则字符串合法,对于非法字符串,系统立即拒绝连接,否则则建立连接,系统对于每个已接收的连接都要处理控制信息和媒体流直至系统关闭。
对音视频进行转发对于MCU来说也是比较重要的一部分,MCU服务器音视频传输主要指当接到用户点播请求时,将用户所请求的多媒体内容(包含音视频信息)传送给终端。为了满足系统的实时性要求,在音视频传送过程中,为每个终端开辟一块音视频缓冲区,先将请求的多媒体数据放入缓冲区中,然后再进行数据传递。
5结语
本文在研究了H.323协议基础上,研究了H.323协议与多媒体点播系统结合的可行性,给出了H.323协议在多媒体点播系统中的应用实例,为了降低MCU服务器的负载,提出了两层框架结构,并详细阐述了终端及H.323服务器的详细设计方案。系统实现验证了H.323协议应用到多媒体点播系统中的可行性。
参考文献:
[1]H.Schulzrinne. “RTP profile for audio and video conferences with minimal control,” Request for Comments (Proposed Standard) RFC 1890, Internet Engineering Task Force, Jan. 1996.
[2]D.E.Eastlake, “Universal payment preamble,” Internet Draft, Internet Engineering Task Force, Oct. 1996. Work in Progress.
[3]J.Franks, P.Hallam-Baker, J.Hostetler, P.A. Luotonen, and E.L.Stewart, “An extension to HTTP: digest access authentication,” Request for Comments(Proposed Standard)RFC 2069, Internet Engineering Task Force, Jan. 1997.
[4] T.Krauskopf, J.Miller, P.Resnic, and W. Treese, “PICS label distribution label syntax and communication protocols, version 1.1,” W
