返回首页

基于P2P模式的校园网课堂直播系统的构建

时间:2010-09-02 00:30来源:知行网www.zhixing123.cn 编辑:麦田守望者

【摘要】 C/S结构的流媒体网络点播和直播系统,由于服务器及带宽的瓶颈的问题,无法提供大规模的应用,而P2P与流媒体技术的结合将计算及流量分散到了所有在线的客户端,为在校园网上搭建低成本高性能的网络直播系统提供了可能。

【关键词】P2P、流媒体、节点管理、直播

 

随着高校校园网应用的不断深入,高校网络教学已经进入了实时化、智能化、规模化的发展阶段。师生对各种网络信息媒体的需求不断增加,不再满足于普通的文本图片的浏览。更多实时的视频需求变得更加强烈。以视频、音频信息为代表的流媒体技术的应用在很大程度上满足了这类需求,实现了师生之间在不同时间与空间上的交流,为网络教学注入了活力。传统上的流媒体视频点播和直播有许多可供选择的方案。比如微软的media encoder + media server ;real公司的helix producer + realserver 都可以提供比较好的用户体验,实现的方式也很简单,采用的结构都是传统的C/S结构。与其他的任何C/S机构一样,这样的解决方案都会受到服务器计算能力和带宽的限制,服务器难以支持大规模的并发请求。笔者曾经做过类似结构的直播系统,当用户数量达到百人以上时,就会给服务器造成巨大的负担,同时频繁地出现缓冲的现象。于是一种新的解决思路被提出来了,即将流媒体技术与现在网络上用于下载的P2P技术结合起来实现大规模的网络直播。

 

一、流媒体与P2P术概述

流媒体技术简单来说就是一种边下载边播放的实时流技术,与传统的下载技术比较,它可以为用户提供实时播放体验。但由于它的数据仍然是从一个固定的服务器上下载。因此,它的流畅程度还是会受到服务器及带宽的限制。随着用户数量的增加,在一个临界点上,播放体验会快速下滑,且影响到所有的在线用户。通过增加冗余服务器可以在一定程度上缓解这个问题,但不是根本的解决办法[1]。P2P是英文Peer-to-Peer(对等)的简称,又被称为“点对点”。“对等”技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P还是英文Point to Point (点对点)的简称。它是下载术语,意思是在你自己下载的同时,自己的电脑还要继续做主机上传,这种下载方式,人越多速度越快。比如A和B都想在C上下载一个文件,此时,A和B都会对C发出连接,C把文件的一部分发送给A,另一部分发送到B,当A和B都或的了不同的两部分,此时A和B就会互相链接,互相交换自己需要的另一部分,这个过程中,A和B就是完全对等的,不存在服务器和用户的概念,这就是一个P2P网络,如果这个网络扩展开,不单单局限于A和B,而是成千上万台电脑时,那么每人都可能是资源发布者也是资源下载者[2]。
P2P直接将人们联系起来,让人们通过互联网直接交互。P2P使得网络上的沟通变得容易、更直接共享和交互,真正地消除中间商。P2P就是人可以直接连接到其他用户的计算机、交换文件,而不是像过去那样连接到服务器去浏览与下载。P2P另一个重要特点是改变互联网现在的以大网站为中心的状态、重返"非中心化",并把权力交还给用户。

 

二、P2P直播系统工作模式

P2P直播系统采用类似于Bittorrent的工作方式,它采用的是P2P网络结构中的树形结构。系统结构如图1所示。这是一种基于目录的服务模型,在一个经过优化的网络系统中,少量的目录就可以为数量众多的对等节点服务。对等点向目录服务注册关于自身的信息(起名称,地址,资源和元数据),并通过目录服务器中信息的查询。目录服务器的主要功能是负责接收用户的加入请求、节点管理、读取视频流数据并分发这些数据[3]。具体可以划分成三个功能模块:节点管理器、媒体生成器和分发器。节点管理器负责管理所有加入的节点信息,当有节点加入时,必须向节点管理器提出申请,只有通过验证才能加入直播系统。一个典型的节点加入过程可以大概描述如下:

(1)节点N给主节点S(目录服务器)发送请求;

(2)S收到节点 N的请求之后,判断自己的直接子节点数是否已经达到上限;

(3)如果没有达到上限,则将节点N作为自己的直接子节点,执行(8);

(4)如果直接子节点已经达到上限,则通过节点管理器来查询哪个子树的节点最少,然后将节点的地址端口号发送给它的相应直接子节点;

(5)该节点通过自己的伙伴管理器,判断节点N是否可以作为自己的直接子节点;

(6)如果可以,则将节点N作为直接子节点并建立连接,执行(8);


图一

(7)如果不可以,则将节点N的请求向子节点数最少的分支转发,依次类推,直到节点与某个子节点建立连接;

(8)节点N被某个节点接收后,向服务器S发送消息,服务器 记录下节点N 在网络中的信息;

媒体生成器类似于微软的media encoder 是一个实时的视频源,包括摄像头采集卡和编码软件。它负责按照媒体数据缓冲区中要求的数据量读取ASF文件数据,组装成流媒体数据包传送给媒体数据缓冲区。分发器负责从asf流中获取数据,并向其直接的子节点进行传输。

 

三、一个P2P网络直播系统的实例

为了帮助读者更好地理解P2P直播系统的构建,笔者这里给出一个具体的P2P网络直播的实现方法。整个系统的实现分为三个部分:视频采集编码(Media encoder9)、安装有P2P节点管理的服务器(TVants)和客户端(peer)。下面分别作出说明:

视频采集编码部分可以采用C/S结构下使用编码软件。比如Media encoder9 由它为P2P服务器提供一个视频源。采集卡的选择可以选用流行的OPPREY采集卡。在设置时,需要注意将Media encoder9设置为“自编码器拉传递”,使P2P服务器可以以mms://ip:port的方式获取到视频数据。具体设置步骤不再累述,读者可以自行尝试。

P2P服务器软件笔者这里采用的是由浙江大学开发的蚂蚁网络电视免费软件,这个软件可以和Media encoder9安装在同一台计算机上。这个软件集媒体生成器、节点管理器(目录服务)、分发器和播放器等所有P2P的组件于一体。安装完成后还必须进行相应设置后才能用于自己的网络直播,否则只能接收该软件官方公布的电视节目。具体设置如下:

1、在工具菜单中打开其“目录服务”功能。即启用本机作为一个P2P网络中的节点管理服务器。并在IP地址栏中输入本机的IP地址。然后在服务器选项卡中将刚才启用的“目录服务器”添加进服务器数据库中,这样就在网络上生成了一个P2P管理服务器。下面我们还需要为他添加一个直播的节目源。

2、在其频道选项卡中单击添加按钮,为P2P服务器定义一个节目的来源。具体参数可以参考设置Media encoder9时得到的mms://ip:port地址。这里需要注意的是服务器一栏必须填入在“目录服务”中定义的IP地址,这样我们发布的视频才能被节点管理器和分发器所获取并发布出去。其他的选项可以采取默认值。

3、当自定义的频道开始运行并出现绿色进度条后,既可以单击频道的“详情”按钮获取由系统自动生成的该节目的P2P公告地址了。具体格式可以参考tvants://P2PserverIP/tvants/?k=。通过这个地址客户端就可以收看实时的视频直播了。

对于客户端Tvants提供了两种播放方式。一种是使用Tvants软件直接播放。另外一种是将tvants嵌入IE浏览器的方式进行播放。如果希望以网页的形式发布,需要自己建立一个网页,并在网页中内嵌以下代码:

<object classid="clsid:4C833081-D026-4FF8-968F-7EAB660D2FBA" id="TvantsX" CODEBASE=" http://download.tvants.com/pub/tvants/tvants1/win32/cab/tvants.cab#Version=1,0,0,58 " width=100% height=100% >

<param name="Title" value="TR tv">

<param name="URL" value=" tvants://172.18.137.96/tvants/?k=b1e014e4b722bdc8648324cf63a6689a">

</object>

“URL”的值就是节目的公告地址了,CODEBASE中定义的是Tvants网页播放插件的下载地址,第一次播放时会自动从这个地址下载插件,以后不需要了。读者也可以将其改为自己的服务器地址,这样就可实现不用上公网的校园网电视直播,客户端打开以上网页后就可以在网页上收看直播节目了。蚂蚁电视的客户端播放插件还为观众提供了一个在线的交流平台,可以边看直播边与所有在线用户进行交流。

 

四、小结

在实际测试中与传统的C/S结构相比较,采用P2P模式进行网络直播后可以大大地提高直播效率。在线的人数从原来传统的码率400Kbps 200人左右直线上升到800Kbps千人以上,而且还在有上升的潜力。P2P的在线容量,其实是自增长的,在网络许可的情况下,可以达到万人同时在线。另外通过笔者给出的这个方案,也可以很容易地搭建学校自己的网络电视台,导入从互联网上公布的许多mms资源就可以实现零成本搭建校园网络电视台。

 

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):课堂直播系统 P2P技术
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
猜你感兴趣