时间:2024-08-31
郑艺芳
(福建师范大学人民武装学院,福建福州 350007)
基于HTTP的P2P流媒体直播系统构建*
郑艺芳
(福建师范大学人民武装学院,福建福州 350007)
P2P技术在音视频直播中的应用,可以极大降低中心服务器的压力,为用户提供良好的服务体验,是新一代内容分发的核心技术.基于HTTP流媒体协议构建的P2P直播系统,可以使P2P终端具有更好的网络适应性;其中HTTP流媒体协议的切片技术,有利于P2P网络中资源的定位和查询,比起传统的P2P协议,更加适合专用网络中的音视频直播服务构建.
HTTP流直播;P2P;流媒体
HTTP是互联网上流量排名第一的协议,其次为各种P2P协议,如BT等.HTTP承载了大部分的文本、音视频数据传输,是各种主流应用的首选协议.但长期以来,HTTP没有用来作为流媒体数据传输的主流协议,大部分直播服务采用了RTSP、RTMP等协议进行传输控制.在音视频直播领域,基于P2P的流媒体技术十分普及,如 PPStream、PPLive、ESM等,它们大部分采用了复杂的P2P网络模型和混合模型,资源定位算法复杂,各计算节点的系统资源占用较大.
由于HTTP流媒体协议基于标准HTTP协议,并在此基础上定义了适合媒体数据实时传播的机制,有效保证了音视频数据的传输实时性.HTTP对网络有较强适用性,即大部分的防火墙都默认允许HTTP协议穿透;以此为基础来构建P2P服务,可以适应现有网络,为用户提供较好体验,同时极大减轻服务器的压力[1].
基于HTTP流媒体协议构建传统的视频直播系统,有三个主要部分:直播数据编码、数据分发系统、客户端.一般架构如图1所示.
图1 HTTP流媒体服务体系
在典型的配置中,前段编码器将音视频直播流数据按照指定压缩标准进行编码,一般编码规范会遵循MPEG-2或H.264标准,然后通过文件切割器不断生成小的TS流文件,同时生成索引文件.所创建的索引文件和TS流文件群会分发到Web架构服务器中,由Web服务器将索引文件和TS流文件进行发布.这样客户端就可以通过标准HTTP协议读取索引及流文件,解码后播出.
直播数据编码部分的数据来源是卫星接收机,卫星接收机接收卫星信号,将其以MPEG-2的TS流输入到编码器.一般情况下,每个频道都配置一台专用编码器,所以前端编码器的多少和直播系统支持的频道数有关.编码器调整自己的配置,采用H.264的视频编码格式和AAC的音频格式,对输入TS流进行压缩编码,并对音视频流以MPEG2 TS的文件格式进行封装.直播编码器产生的TS流直接输入到流文件切割器中,流切割器将其按照直播的实时性要求,切割为一定粒度的小TS文件,一般该粒度设置为10秒;同时,流切割器还产生一个包含生成TS文件列表的索引文件[2].
这样,直播数据编码部分最终生成了索引和TS流文件,这些文件将被存储到数据转发系统,进行分发.
数据分发系统一般是由Web服务器或者是web缓存系统组成,用来作为HTTP服务器发布媒体索引文件和一系列的.ts文件,以供HTTP客户端下载.一般来说,索引文件采用M3U8文件格式规范,TS文件为MPEG-2中的文件封装格式.
表1 文件格式和MIME类型对应
M3U8文件示例如表2所示.其中将M3U8中的每一行列出来,并在右方注释.
表2 M3U8文件示例及注释
在完成直播功能时,M3U8文件需要及时更新,这个取决于及时调整其存活时间属性,这样文件会被频繁地覆盖,客户端也会在存活时间到期后重新请求更新的M3U8文件.
客户端首先获取M3U8索引文件,并解析M3U8识别其中的每一个TS文件,以及解密密钥等必要信息.客户端按顺序下载每个可用的媒体文件.
客户端也采用HTTP协议请求数据,HTTP协议并不需要设计如何穿透防火墙,一般防火墙都允许这一类协议的数据通过[3].
第二部分描述了基于服务器的直播系统架构.这种架构充分利用了HTTP部署方便的特点,可以较为快速地完成视频直播系统的构建.然而,基于HTTP的服务器模型和一般的B/S架构有同样的缺陷,即随着用户规模的扩大,服务器需要不断扩容以支持用户并发请求;当用户数量极大时,服务器节点的投资建设将占用大量的成本.
基于P2P技术可以解决这一问题,在P2P系统中,客户端同时作为服务器提供数据分发服务.在服务器端,除了传统的数据服务器外,还需要配置少量服务器用于收集资源区域分布信息,为客户端请求数据提供索引服务.
基于HTTP流协议的P2P模型,具有如下优势:
(1)HTTP协议可以无需考虑网络穿透问题,防火墙一般都允许HTTP协议通过;
(2)HTTP流媒体协议对文件的切片方式,导致客户端需要下载多个小ts文件,存储在内存中后连贯起来播放,在直播系统设计中,一般会下载3段ts文件.这样,终端的节点实际上都保存这最近3段的ts文件.这种设计模式方便终端节点通过标准的web方式提供数据服务;
(3)终端节点和资源节点管理服务器之间基于标准HTTP协议进行数据交互,协议设计方便,软件编写简单.
基于HTTP的P2P网络模型如图2所示.
图2 基于HTTP的P2P网络模型
相对于传统的HTTP流服务,该网络模型在服务架构上,增加了资源节点管理服务器,采用P2P中的混合网络模型进行资源的定位和协调.每个终端节点都接受节点管理服务器的命令,告知其当前状态、网络状况等信息.
资源节点管理服务器不仅直接和终端节点交换信息,同时和web服务器交换信息.Web服务器接收终端节点的首次请求,并根据节点管理服务器中保存的当前节点的信息来决定终端最终从哪里得到数据.Web服务器将连接的客户端信息同步给节点管理服务器,这样,节点服务器就根据区域节点资源分布算法,生成相应的区域节点分布信息.
终端节点请求数据时,如果服务器认为该区域的节点足以支撑其数据请求,则其首先从web服务器得到对应区域的节点分布信息,然后从各个节点获取对应的直播数据[4].这时,各个终端节点之间通过HTTP协议完成数据交互,所有节点在网络上都是平等的.
P2P节点开始总是从web服务器请求数据,web服务器是P2P节点唯一知道的初始外界联系对象.设P2P节点为A,中心Web服务集群为H,资源节点管理服务器为R,P2P节点的数据请求流程如下:
(1)节点A连接中心Web服务器H,首得到当前的直播列表文件,A节点解析该列表文件,但暂时不请求其中指定的URL获取数据.
(2)H得到A的连接请求后,通知资源节点管理服务器R,同时在回复信息中告知R的访问方法.
(3)A向R发起请求,要求得到索引文件中指定的流媒体ts文件的数据源分布状况.
(4)R查找数据库,得到A节点所在区域中的信息,回复数据资源的区域分布信息给A;
(5)A节点将根据获取的区域分布信息向其中的节点发起请求,获取对应数据.
由以上数据获取流程可知,资源节点管理服务器R查找资源节点的算法,是影响整体性能的关键所在.在本课题中,采用了类似DHT的算法来完成节点定位和查询.节点A使用哈希函数HASH(RID,RIP)标示自己请求的资源名称(RID)以及自身IP地址(RIP),经过哈希运算后得到唯一的标识,节点管理服务器R据此查找其对应的节点资源信息.
节点管理服务器采用web服务模式构建,基于soap协议为web服务器,各个终端节点提供访问方法.
建设专用网络的多媒体广告信息系统需要增加直播功能,采用了基于HTTP的P2P技术.该系统提供了30个频道的采集和直播,并以每个1.2~1.6Mbps的码流完成编码参数配置.设计采用HP380G5服务器作为Web分发系统,通过Linux系统集群实现.每个服务器配备千兆网卡,服务器设计负载能力为300用户.预计用户数为10~30万之间.
图3 广告信息直播系统模块图
系统整体包括内容制作系统、直播采集转发系统、广告管理系统、广告服务系统、信息发布系统、各种形式的多媒体信息终端,下面分别说明其作用.
(1)内容制作系统可将各种格式的视频进行转码和检测,使其他格式的视频资源转化为符合高清广告机要求的视频,并对视频进行压缩,形成h264编码视频;
(2)直播采集转发系统将卫星电视信号转换为数据流,并将直播转发到Web数据分发系统中;
(3)多媒体广告管理系统包括广告运营商管理、广告资源管理、广告资源分发、广告发布、广告机分组管理、广告机监控、广告展示统计、第三方信息接入等模块.以组为单位的管理模式可以实现个性化的精确广告投放展示.
(4)多媒体广告服务系统包括广告机心跳服务、广告资源下载服务、日志上报采集、直播服务、第三方数据转发等主要模块.广告服务系统采用分布式部署.
(5)图文信息发布管理系统进行资讯管理和资讯浏览查询展示,直接响应终端的展示查询请求.
在实际的环境中测试,每天同时上线用户数最高峰值为5000左右,此时,服务器投入的资源为2台集群Web数据分发服务器,其余的数据都通过P2P网络进行分发.而我们在实验室模拟5000用户进行传统中心服务模式测试,支撑5000用户需要至少18台服务器集群,且此时服务器CPU占用率已高达85%.表3是测试数据的对比.
表3 P2P分发模式和中心服务模式对比
数据显示,P2P模式服务器压力明显较小,但客户端压力也明显较大.由于此应用场合是运行在专用网络中的广告信息终端设备,不运行其它任务,所以客户端略高的资源占用不会引起业务实现问题.对比两种方案,在5000台的规模下,P2P模式已经占据成本优势.随着用户数量的增加,其优势更加明显.
基于HTTP流媒体协议构建的P2P直播系统,可以满足中小型流媒体直播服务的需求,其特点使得部署应用十分简单,而且可以提供实时性较好的直播服务.采用该技术,可以有效解决视频直播中的服务器压力过大,高峰时段服务质量下降等问题,极大提高直播系统的稳定性并降低总体成本.
[1]王志海,童新海,沈寒辉.OpenSSL与网络信息安全——基础、结构和指令[M].北京:清华大学出版社,2007.
[2]管磊.P2P技术揭秘:P2P网络技术原理与典型系统开发[M].北京:清华大学出版社,2011.
[3](美)史蒂文斯.TCP.IP详解(卷3):TCP事务协议.HTTP和UNIX域协议[M].北京:人民邮电出版社,2010.
[4]黄孝建,陶蒙华.IPTV关键技术详解[M].北京:北京邮电大学出版社,2009.
TN919.85
A
1008-4681(2012)02-0043-04
2011-11-18
郑艺芳(1978-),女,福建福州人,福建师范大学人民武装学院讲师,硕士.研究方向:计算机应用技术、网络服务、网格计算等.
(责任编校:晴川)
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!