分布式流媒体频道管理系统设计与实现
2018-07-19王君黛
摘 要 针对现有流媒体系统集中式频道管理在教育云环境下存在的管理难题,设计一种分布式的流媒体频道管理系统:直播信号的采集与发布本地完成,数据中心仅需存储该频道的参数文件;用户运行客户端播放器自动远程下载频道参数文件,获取直播源地址并播放节目。该系统高效、灵活,为教育云环境下的资源管理提供了一种新思路。
关键词 分布式;流媒体频道管理系统;公共教育服务平台;云教育
中图分类号:G434 文献标识码:B
文章编号:1671-489X(2018)21-0028-04
1 引言
目前,伴随着宽带互联网的普及、虚拟化技术的成熟及移动互联网技术的研究进展,云计算获得蓬勃发展,极大地拓展了信息技术应用范围,开启了智能生活的方方面面[1]。该项技术的不断成熟,使其在教育领域的应用也成为研究热点[2-4]。教育部在2012年3月发布《教育信息化十年发展规划(2011—2020年)》,提出国家教育云基础平台将在2015年初步建成,该平台不仅支持教育云管理服务平台及资源平台的部署和应用,而且可以同时向IPv4和IPv6用户提供教育云服务:首先,要充分整合并利用全国各级教育机构的信息硬件基础设施,建设布局合理、面向全国开放开源的教育云环境,支撑形成云资源平台、云基础平台及云教育管理服务平台的分层架构;其次,要推动省市建设地方区域级公共教育服务系统,各个省市要大力建设并建成本区域的公共教育服务平台,整合利用各个企业的相关服务,从而统一提供学习、资源、管理、平台等信息化服务[5]。
总体而言,云教育即借助云计算的相关技术,把现有分散的教育资源串联起来,整合成为共享的教育资源库[6]。其实质上是将以往教育信息化中建立的集中化管理模式及资源进行整合,建立公共的IT服務及资源应用的平台。然而在资源管理方面存在一些亟待解决的难题[7]:教育云的建设将逐步让全国从宏观(教育部门管理信息)到微观(个体学生档案信息)的各类教育数据汇聚集中,这些教育数据之中也包含所有者不愿意和别人分享的内容,比如版权信息等。因此,数据资源管理层面必须考虑什么样的数据适合第三方托管,什么样的数据必须保存在教育机构内部[8]。
这就需要构建新的资源管理体系与方法,以一种合理的、标准的、安全的方式实现教育资源的共享,实现各级学校及教育研究机构“无私”共享其优质教育资源,[9]。
本文提出一种基于分布式的资源管理系统实现方法,将资源的本地注入与频道信息分布式管理相结合,实现资源共享模式的创新。首先给出分布式的流媒体直播频道管理系统的设计思路,然后介绍该系统的具体实现过程,最后总结目前研究所取得的成果及其应用价值,并给出下一步的研究方向。
2 分布式的流媒体频道管理系统设计
系统概述 本文构建的分布式流媒体直播频道管理系统是在传统集中式的流媒体直播频道管理方法的基础上提出的一种分布式管理的思想。该系统基于可扩展的系统结构,直播负荷由多台流媒体服务器共同分担,同时能远程将分布于不同地区的直播源地址统一写入一个频道列表配置文件(channels.conf)中,用户只需打开播放器即可自动更新频道列表,其工作流程如图1所示。系统管理的基本流程描述如下。
步骤一:管理员访问频道管理平台,经身份验证后,将新增频道的元数据写入频道管理服务器上的channels.conf文件中。
步骤二:终端播放器运行后,自动从远程频道管理服务器上下载channels.conf文件,通过文件中元数据的引导,获取直播源内容并播放。
系统设计考虑具备如下优势。
1)分布式的频道管理可以分担存储负荷:利用HTTP URI确定频道列表的存储信息,在克服集中式存储模式中单个存储服务器容量瓶颈的同时,提高系统的可用性、可靠性及可扩展性。
2)实现频道的管理不再受时空局限,不需要在资源存放的数据中心即可完成直播节目的增添删改,具有很大的操作灵活性。
3)结合P2P架构,针对诸如体育赛事现场直播、突发事件新闻发布会直播等实时性要求比较高的节目发布,具有很大优势。
4)解决了视频发布中的版权疑虑:传统的频道管理需要把视频源文件集中汇总到数据中心服务器上,然而这个涉及视频版权问题;而运用本文的方法,数据中心并不存放资源,而是存放频道列表,视频资源直接本地发布,从而有效保护视频资源的版权。
系统过程定义 根据上述流程定义以下过程,如图2所示。
1)直播流的发布过程,指视频发布主机将采集设备采集到的直播源进行分片、流化处理,接着将直播频道参数信息通过网络传到数据中心频道管理服务器中。将视频发布到网络中时,所述直播频道信息包括直播流地址,一般还包括相关配置信息,如视频的编码码率、音频的编码码率、编码格式,是可通过软件捕获视频采集设备所采集到的视频,并且通过HTTP协议将视频发布到网络中的过程。图2中,主机A、B为视频发布主机,分别用于发布捕获的直播节目,设主机A发布了节目A,主机B发布了节目B。
2)频道列表的远程添加过程,指视频发布主机远程访问位于数据中心的频道管理服务器,经过身份验证之后,将所发布的直播频道参数写入频道管理服务器的频道列表中,并可通过Web远程访问方式,将已发布的直播流地址等参数写入数据中心频道列表中。图2中,主机A、B分别将已发布的直播流地址等参数写入频道管理服务器管理的数据中心频道列表。频道管理服务器一般设置在远程数据中心。实施例中,频道管理服务器管理的数据中心频道列表采用一个文件名为channels.conf的文件保存,具体实施时,管理人员可自行设定具体文件名。
3)频道列表的远程下载过程,指视频播放主机根据指定HTTP URI精确确定数据中心的频道管理服务器上直播频道列表所在的位置,并且自动从远程的数据中心频道管理服务器上下载直播频道列表至视频播放主机本地,实现直播频道列表的更新。客户端播放器运行内嵌的程序,通过HTTP协议自动将远程数据中心频道管理服务器上的频道列表下载到本地主机上。图2中,主机C是视频播放主机,从频道管理服务器上下载最新的频道列表,使用主机C的用户选择节目A即与主机A进行通信,选择节目B即与主机B进行通信。
以上过程综合实现频道管理,视频发布主机和视频播放主机采用计算机、智能便携设备等,频道管理服务器可采用现有服务器技术实现。
3 分布式流媒体频道管理系统的实现
系统框图 系统由直播采集模块、频道管理模块、视频播放模块等组成。其中,直播采集模块完成直播信号的采集与发布;频道管理模块完成频道信息的新增与删除;视频播放模块完成频道信息的解析与直播信号的播放,如图3所示。
系统实现步骤 利用现有技术中开源的ffmpeg库捕获实时直播源,通过其自带的音频/视频编解码库libavcodec
来对直播源进行录制、转换以及流化处理,然后发布到网络中。在分布式对直播频道进行管理过程中采用PHP+Apache
技术,PHP为超文本预处理语言Hypertext Preprocessor,Apache是世界使用排名第一的Web服务器软件。将PHP脚本语言嵌入HTML Web页面中,以实现对频道列表配置文件(即实施例中channels.conf)的动态添加、删除等操作。通过Apache Web服务器,将写好的Web页面发布到网络中,实现远程对channels.conf的读写操作。最后通过HTTP URI
精确定位channels.conf所在的位置,并且自动从远程下载最新的频道列表。系统构建在Linux环境下,采用PHP+
Apache实现的频道管理系统、C语言实现的网络播放器。
1)直播流的发布过程。在Linux命令行中通过Linux shell脚本语言来调用ffmpeg库,利用ffmpeg库自带的音频/视频编解码库libavcodec来对直播源进行录制、转换以及流化处理;然后通过调用ffmpeg库里面的ffserver将直播流以HTTP方式发布到网络中,实现将直播频道参数通过网络传到远程数据中心频道管理服务器上。
2)频道列表的远程添加过程。在频道列表的远程添加过程中,首先通过PHP嵌入式脚本语言定义身份验证功能。用户通过Web访问时,在正确输入用户名和密码,经过身份验证之后即登录进入直播频道管理系统。接着在直播频道管理系统中进行直播频道重名检测,检测系统中是否已有相同名称的频道。若无重名频道,则直接将新增频道名称及相关直播频道信息写入频道管理系统的channels.conf文件中;若已存在同名频道,则须修改频道名称后,将其写入频道管理系统的channels.conf文件中。channels.conf
文件详细信息如下:
其中CCNU-Nercl-01代表频道的名称(播放器运行效果如图4所示);AudioCodec代表音频编码方式;Audio-Channels为声道数;SampleRate为采样率;VideoCodec为视频编码方式;Width、Height分别表示视频的宽度和高度;Ratio代表视频的宽高比;Bitrate代表视频码率;Launch-
String中的-c參数表示每秒节点能发送的视频块数量,-b、-o分别代表输入、输出缓冲区大小,-i表示视频源的IP地址,-p表示视频源的端口号。
待直播视频流的IP地址及端口号写入channels.conf频道配置文件之后,channels.conf频道配置文件即通过Apache服务器发布到网络中。
3)频道列表的远程下载过程。用户在客户端打开播放器后,自动激活播放器内嵌的远程下载程序,该程序通过HTTP URI确定直播频道列表的准确位置,并从远程将最新的直播频道列表下载到本地主机上以供用户进行频道选择。
4 结语
本文提出一种分布式的流媒体直播频道管理技术,由于分布式将数据分散地存储于多台独立的机器设备上,并不需要将自己的物理资源贡献出去,克服了教育云平台数据共享机制中存在的缺陷,提高了云平台的可靠性、可用性及可扩展性。实施案例实验结果表明,该技术方法易于实现,且管理灵活高效,具有较高的实用价值。下一步研究工作的重点为该技术与教育云的结合,以发挥各自的技术优势,构建出具有较高网络适应性和延展性的教育云平台架构,使得这种架构能满足大规模用户的并发访问,同时可以进行无限扩展,从而发挥更大的实用价值。
参考文献
[1]李广文.对基础教育云建设与云服务模式的思考[J].中国现代教育装备,2012(8):5-6.
[2]祝智庭,管珏琪.我国基础教育信息化新发展:从“班班通”到“教育云”[J].中国教育信息化:基础教育,2011(7):
4-8.
[3]张进宝,黄荣怀,张连刚.智慧教育云服务:教育信息化服务新模式[J].开放教育研究,2012,18(3):20-26.
[4]祝智庭,杨志和.云技术给中国教育信息化带来的机遇与挑战[J].中国电化教育,2012(10):1-2.
[5]中华人民共和国教育部.教育信息化十年发展规划(2011—2020)年[EB/OL].[2012-03-13].http://old.moe.
gov.cn/publicfiles/business/htmlfiles/moe/s3342/2012
03/xxgk_133322.html.
[6]陶西平.“云教育”探索的起步[J].基础教育参考,
2012(21):3-4.
[7]刘臻.教育云的建设和运行机制亟待建立[J].中国教育网络,2011(6):26.
[8]卢蓓蓉,任友群.中国教育信息化的云中漫步:教育云建设的困境及探析[J].远程教育杂志,2012(1):62-67.
[9]祝智庭,姜昌华.教育云开启泛在学习之门[J].中国教育网络,2011(6):16-17.
*项目来源:2015年度福建省电化教育馆教育信息技术课题“基于技术条件下信息技术体验式教学研究”(项目编号:KT15017)。
作者:王君黛,福建省厦门第一中学,研究方向为移动学习与教育云服务(361003)。