CN101699860A - 用于混合对等计算网网络电视流媒体服务器的实现方法 - Google Patents

用于混合对等计算网网络电视流媒体服务器的实现方法 Download PDF

Info

Publication number
CN101699860A
CN101699860A CN200910184930A CN200910184930A CN101699860A CN 101699860 A CN101699860 A CN 101699860A CN 200910184930 A CN200910184930 A CN 200910184930A CN 200910184930 A CN200910184930 A CN 200910184930A CN 101699860 A CN101699860 A CN 101699860A
Authority
CN
China
Prior art keywords
program
user
media server
module
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200910184930A
Other languages
English (en)
Inventor
王汝传
唐鑫
韩志杰
李玲娟
吴敏
支萌萌
李致远
徐鹤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN200910184930A priority Critical patent/CN101699860A/zh
Publication of CN101699860A publication Critical patent/CN101699860A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

用于混合对等计算网网络电视流媒体服务器的实现方法,是专门针对DM6446平台的基于P2P协议的IPTV机顶盒流媒体服务器系统的解决方案,解决其GUI设计、建立RTSP连接、与EPG(Electronic Program Guide,电子节目单)服务器交互、发送数据、节目管理以及对P2P数字机顶盒进行激励等问题,较之当前市场上流行的流媒体服务器系统而言,该方案具有新颖性、灵活性、易扩展性和易操作性,并且对于P2P数字机顶盒具有针对性,具有很好的市场前景。本发明通过对采用P2P技术的IPTV机顶盒的功能与需求进行详细划分,采用模块化设计和人性化设计的思想,本着拥有良好的人机交互界面的原则,提出并实现了RTSP流媒体服务器系统。

Description

用于混合对等计算网网络电视流媒体服务器的实现方法
技术领域
本发明是一种用于P2P(Peer-to-Peer,对等网络)机顶盒的流媒体服务器的系统实现方案,主要用于解决为在TI(德州仪器)公司最新提供的双核开发平台TMS320DM6446(达芬奇数字平台)上实现的P2P数字机顶盒提供音、视频的点播和直播服务的问题,属于对等网络应用领域。
背景技术
流媒体技术是一种基于宽带技术的音、视频实时传输技术。人们在网页上看到的不再是文字或者是禁止的图像,而是类似电视播放的活动图像信息。相对于下载后观看的网络播放形式而言,流媒体的典型特征是把连续的音频和视频信息压缩后放到网络服务器上,用户边下载边观看而不必等待整个文件下载完毕。
作为新一代互联网应用的标志,流媒体技术在近几年得到了飞速的发展。而流媒体服务器又是流媒体应用的核心系统,是运营商向用户提供视频服务的关键平台。其主要功能是对媒体内容进行采集、缓存、调度和传输播放,流媒体应用系统的主要性能体现都取决于媒体服务器的性能和服务质量。因此,流媒体服务器是流媒体应用系统的基础,也是最主要的组成部分。
目前市场上流行的数字机顶盒都是采用C/S计算(Client/Server Computing,客户/服务器计算)或是B/S(Brower/Server Computing,浏览器/服务器计算)这样不对称的计算模式,对服务器端的带宽以及CPU运算能力要求很高。所以IPTV(Interactive Personality TV,交互式网络电视)系统要解决十万、百万用户同时收看视频节目的问题,就需要部署大量的服务器,依赖极宽的网络带宽或者要对现有网络进行大规模的改造,这些都成为制约IPTV发展的瓶颈。因此在IPTV数字机顶盒网络中引入P2P计算模式是极具创新思想的设计,也具有非常重要的现实意义。P2P技术是一种将客户端赋予服务功能的技术,它使得网络上的数字机顶盒既能接收也能对外发送流媒体内容。在广播、点播(VOD)和推播(Push VOD)视频节目的时候,可以通过用户端之间相互传递量子TS流包来传送视频内容,从而避免了所有内容均从一个或少量服务器中发出而造成的网络堵塞。同时,由于P2P技术的引入,我们可以将P2P网络中的激励机制也引入到IPTV系统的设计与实现中。通过对数字机顶盒节点的激励,可以有效地避免免费搭便车(Free-riding)现象,使得各种闲置资源得到有效利用,让系统达到资源的最大共享。
普通的万维网服务器向客户端传送文件是基于HTTP(超文本传输协议)的,客户请求的文件放在HTTP响应报文中,并用TCP(传输控制协议)传送给客户端。这种传送方式强调的是准确无误但不能及时(尤其是在发生拥塞时),也不适用于多播环境中。因此流媒体服务器基于RTSP(实时流化协议)协议,在客户端与流媒体服务器交互的过程中,音视频数据封装在RTP(实时运输协议)分组中进行传送,RTSP使得媒体播放器能够控制多媒体流的传送。现在市场上比较成熟的流媒体服务器产品有Apple公司的Darwin Streaming Server,RealNetworks公司的RealServer等,它们都需要流媒体服务器硬件具有强大的并发处理能力。尚且没有一款流媒体服务器是专门针对对等计算机顶盒设计的。而作为P2P数字机顶盒系统的重要组成部分,一款量身打造的流媒体服务器对于实现数字机顶盒的直播、点播,最大程度地促使机顶盒节点共享资源具有重要的意义,这也是本文的价值所在。
RTSP流媒体服务器的开发主要借助于网络编程接口进行通信与数据交互,开发的过程中设计与实现一套GUI(Graphical User Interface,图形用户接口)系统,操作与管理整个系统的资源以及连接情况,负载情况,最大程度地满足用户的使用要求,这些都是必要的。
综上所述,一款优异的针对基于DM6446平台的P2P数字机顶盒流媒体服务器系统除了能够完成必需的功能外,还将架起客户与服务提供商沟通的桥梁。它关系到整个IPTV机顶盒开发项目的成败。
本技术的设计方案已经针对达芬奇数字平台(DaVinci)TMS320DM6446作了实验,并证明了可行性。达芬奇数字平台TMS320DM6446是TI公司新提供的面向视频开发领域,拥有ARM(Advanced RISC Machines)和DSP(Digital SingnalProcessor,数字信号处理器)双CPU(Central Processing Unit,中央处理单元)内核的高端嵌入式开发平台,主频高达720MHZ。该平台上拥有丰富的硬件接口如USB(Universal Serial Bus,通用串行总线)、网卡、IDE硬盘接口(Integrated DriveElectronics)等等,因此可以选择在该平台上开发一款高性能和拥有广泛业务(包括电子商务,股票交易,视频聊天等)的IPTV(Interactive Personality TV,InternetProtocol TV,交互式网络电视)机顶盒。
发明内容
技术问题:本发明的目的是提供一种用于混合对等计算网网络电视流媒体服务器的实现方法,是专门针对DM6446平台的基于P2P协议的IPTV机顶盒流媒体服务器系统的解决方案,解决其GUI设计、建立RTSP连接、与EPG(ElectronicProgram Guide,电子节目单)服务器交互、发送数据、节目管理以及对P2P数字机顶盒进行激励等问题,较之当前市场上流行的流媒体服务器系统而言,该方案具有新颖性、灵活性、易扩展性和易操作性,并且对于P2P数字机顶盒具有针对性,具有很好的市场前景。
技术方案:本发明是为P2P数字机顶盒提供音、视频直播和点播服务。流媒体服务器的工作原理可以描述为首先响应数字机顶盒的连接请求,返回服务器提供的可用方法,然后建立会话,确定传输模式并传输数据。如果用户所请求的服务是直播,则将用户加入相应的多播组中,使其接收多播数据;如果是点播请求,则为该用户单独创建一个线程,专门传送请求的节目数据。在点播服务的过程中,P2P网络里的数字机顶盒节点每隔一段时间就进行相互投票,流媒体服务器定时收集选票并进行处理,从而计算出每个用户的优先级,通过区别服务的方式实现对数字机顶盒的激励作用。
该实现方法的步骤包括:
步骤1).进行需求分析,对流媒体服务器系统需要完成的功能进行分析,并生成需求分析文档,
步骤2).按照步骤1)的分析文档设计模块,对各模块的功能进行详细分析,生成各个模块之间的逻辑关系和功能说明文档,
步骤3).按照步骤2)的文档,设计与实现缺省界面,在缺省界面中,显示:服务器的配置与管理、节目信息管理、服务器启动的三个按钮以及用户连接显示、负载状况实时监测两个窗口,
步骤4).按照步骤2)的文档,设计与实现服务器配置与管理功能,在弹出对话框中配置服务器的首选端口,备选端口以及直播、点播和音频广播的节目路径,
步骤5).按照步骤2)的文档,设计与实现“节目信息管理”功能,该功能是利用流媒体服务器的节目信息管理模块来实现的,该功能可实现对点播节目、直播节目以及音频广播节目的分类管理,其中点播节目又细分为电影、电视剧、动漫,在下拉框中选择任意一项,则下方列表框中显示相应的节目信息,包含节目的编号,名称,在存储设备中的具体路径,右侧提供了对节目信息的“添加”、“删除”、“修改”、“查找”、“更新”操作,在直播节目管理与音频广播节目管理中增加了选定当前直播/广播频道的按钮,
步骤6).按照步骤2)的文档,设计与实现“激励模块”,P2P网络里面每隔一段时间会在节点之间发起相互投票,该模块可以对收集到的选票进行数据处理,计算节点的信誉值;“激励模块”的引入使得流媒体服务器系统能够对P2P网络中数字机顶盒节点进行激励,
步骤7).按照步骤2)的文档,设计与实现“服务器启动”功能,该功能可使服务器的用户信息收集模块处于监听状态,一旦监听到来自用户的连接请求,则记录下连接用户的ip端口号和请求的节目编号;接着启动“节目信息管理模块”,根据节目编号在节目信息数据库中查找到响应的节目记录信息,根据信息中提供的节目存放路径,在存储设备中找到响应的音、视频文件;P2P网络里面每隔一段时间会在节点之间发起相互投票,选票信息同样通过用户信息收集模块收集,收集到选票以后传给“激励模块”进行数据处理,从而计算出节点的信誉值,根据信誉值分发给节点不同数量的彩票,使用彩票调度算法进行调度,信誉值较高的节点在点播中得到的响应优先级相应较高,
步骤8).按照步骤2)的文档,设计与实现“用户连接显示”窗口,该窗口可以显示出用户的ip,请求的节目名称,节目播放方式是直播、点播或音频广播,现在的播放状态以及用户实时接收到的流量信息,流媒体服务器管理员通过右键点选某条记录可以选择终止对相应用户的服务,
步骤9).按照步骤2)的文档,设计与实现“负载状况实时监测”窗口,该窗口分为“网卡流量检测”和“服务器CPU负载监测”两个部分,分别用来显示网络流量以及服务器CPU负载的实时数据信息。
“激励模块”的引入使得流媒体服务器系统能够对P2P网络中数字机顶盒节点进行激励的方法如下:
步骤21).假定用户C1、C2、C3...的点播请求到达以后,激励模块通过用户信息收集模块获得各个节点的信誉值RC1、RC2、RC3...,
步骤22).为每个用户建立服务线程,线程初始状态都为等待态,
步骤23).为每个用户线程分配一定的彩票额,彩票额的大小为N*RCi,其中N为一个固定的大数,RCi为用户经过归一化处理的信誉值。可以看出,信誉值越大的用户所获得的彩票数就越大,
步骤24).采用彩票调度算法对用户线程进行调度,就可以使信誉值较大的用户的数据更加及时地发送,以达到区分服务和激励的目标。
有益效果:本发明通过对采用P2P技术的IPTV机顶盒的功能与需求进行详细划分,采用模块化设计和人性化设计的思想,本着拥有良好的人机交互界面的原则,提出并实现了RTSP流媒体服务器系统。技术的关键点是不仅要满足机顶盒的各项功能需求,还要让系统拥有稳定性、可靠性以及拥有良好的人机交互界面。下面我们给出具体说明:
完善的功能:通过对RTSP流媒体服务器功能与需求的详细划分,为了保证流媒体服务器在各种情况下能正常工作,有必要对流媒体服务器的GUI与各个模块进行统一管理。我们将流媒体服务器系统的GUI菜单设计成四部分,每一部分完成不同的功能,这样我们可以在满足机顶盒用户各种请求的情况下进一步完善RTSP流媒体服务器的功能。整套流媒体服务器系统,操作非常简便,不仅提供了音、视频直播、点播和音频广播服务功能,还可对节目进行分类管理,对用户连接进行显示,更可以对网络流量和机器负载进行实时控制,并可根据实际情况进行终止用户连接操作。
模块化设计:整个RTSP流媒体服务器系统按照功能需求分成数个模块,模块之间分工明确,耦合性低,可复用性高,便于系统的升级和重新配置,如用户信息收集模块、节目信息管理模块、激励模块以及数据发送模块。
良好的系统扩展性:由于系统模块之间采用的是独立模块化,功能并行层次化设计,系统模块之间的通信机制完全采用层次化的结构,因此可以方便地添加新的功能,也可以很容易地升级现有的功能,所以该系统具有很好的可扩展性。
高度的可靠性和稳定性:通过对RTSP系统的单元测试,集成测试以及整个机顶盒软硬件系统的系统测试表明该RTSP流媒体服务器系统运行良好,占用系统资源少,拥有良好的容错机制以及灾难恢复能力,能够适应不同的处理器速度以及不同级别的网络速度。
易操作以及界面美观:由于该系统采用人性化设计,并且对界面进行了美化,使得该系统操作方便快捷,界面操作简单,功能强大,图形化显示一目了然,具有较高的市场推广潜质和商业应用价值。
附图说明
图1是整个对等计算机顶盒系统的组成结构图。图中包括:EPG/Tracker服务器、流媒体服务器、对等计算机顶盒以及模拟电视机。表示采用P2P技术的IPTV网络逻辑拓扑结构。
图2是流媒体服务器各模块划分关系图。系统模块包含用户信息收集模块、节目信息管理模块、激励模块以及数据发送模块。其中激励模块只有在启动音、视频节目点播功能时才会被启动。
图3是用户信息收集模块工作流程图。用户信息收集模块不光收集用户的服务请求,而且收集P2P网络中传来的投票信息。将此信息进行数据处理后存放在数据库中留待激励模块之用。
图4是节目信息管理模块工作流程图。节目的信息都存放在节目信息数据库中,用户请求到来以后,在节目信息数据库中检索到相应的节目。同时,可以对数据库中的节目记录进行添加、删除、修改、查找以及更新的操作。
图5是激励模块流程图。在激励模块中,根据用户的信誉值信息,为每个用户分发一定量的彩票,使用彩票调度算法进行调度。相应的,使得信誉值较高的用户获得较高的响应优先级。
图6是数据发送模块详细设计图。打开文件,将数据打成TS包,使用RTP协议发送数据包,此过程是循环进行的,直到音、视频文件发送完毕。
具体实施方式
一.体系结构
整个对等计算机顶盒系统的组成结构如图1所示。从图1可以看出,流媒体服务器在整个对等计算机顶盒系统中处于节目源的位置,通过详细的规划与设计,为对等计算机顶盒系统提供音、视频节目源。在该图中,EPGServer用于发布节目信息,为用户提供电子节目导航。Tracker用于在点播服务中向用户提供拥有其请求资源的节点信息。EPGServer、Tracker以及流媒体服务器直接与数字机顶盒进行交互,节目图像通过模拟电视显示出来。
具体来看,流媒体服务器系统各个模块的划分如图2所示。在图2中,我们可以看到流媒体服务器包括四个基本的模块:用户信息收集模块、节目信息管理模块、激励模块以及数据发送模块。P2P数字机顶盒发起RTSP请求以后,首先由用户信息收集模块收集到为用户提供服务所需的一切信息,然后通过节目信息管理模块找到相应的节目数据,同时调用激励模块对作业进行调度,排定响应优先级。最后,根据响应优先级,由数据发送模块对用户分别发送相应的音、视频节目。其中,在点播服务中需要启动用户信息收集模块、节目信息管理模块、激励模块和数据发送模块这四个模块;而在直播服务中则只需启动用户信息收集模块、节目信息管理模块以及数据发送模块这三个模块。
一、方法流程
该部分详细说明发明内容各个部分的设计与实现:
(1)GUI的设计与实现
通过对机顶盒功能的详细划分,我们将GUI设计分成四个部分,分别是“服务器的配置与管理”、“用户连接的显示与管理”、“负载状况实时监测”以及“节目信息管理”。在不同的部分实现不同的功能,“服务器的配置与管理”用于配置服务器的首选端口号,备选端口号,设置用于存放节目资源的存储设备的地址以及用于直播的资源、用于点播的资源和用于广播的资源的详细存储路径,服务器的配置应先于服务器的启动,否则采用默认值对服务器进行配置;“用户连接的显示与管理”用于显示实时连接的用户信息,信息包含用户的ip,请求节目的方式(直播/点播/音频广播),请求的节目名称,现在的播放状态以及该用户实时接收到的流量大小等等信息;流媒体服务器的管理员可以通过此部分终止对某个用户提供服务;“负载状况实时监测”用于实时监测网络上的流量信息和流媒体服务器的负载状况,可以使得流媒体服务器的管理员实时监测这两个信息,在服务器负载或是网络流量过大的时候可以终止掉一些实时流量较大的用户连接;“节目信息管理”用于对直播节目、点播节目和音频广播节目进行管理。对于这些分类的节目信息,可以进行添加、删除、修改、查找和更新的操作,其中对于直播节目还可以进行配置,用于选定当前的直播频道。
(2)用户信息收集模块
用户信息收集模块是流媒体服务器系统中直接与P2P网络交互的模块,它在流媒体服务器系统中的地位就相当于是连接服务器与机顶盒节点的纽带与桥梁。P2P网络中的数字机顶盒节点向流媒体服务器发送服务请求,内容包含数字机顶盒节点的ID,IP(Internet Protocol,互联网协议地址),端口号,请求收看的节目编号信息。流媒体服务器接收到一个请求以后,通过信息收集模块把数字机顶盒节点包含的信息存入数据库中,如果发现已有记录,就检查是否需要更新。
在交互过程中,网络中节点的表现会不时地更新,更新将通过如下的方式进行:如果节点P与其它节点进行了交互,它的表现情况需要更新,则所有与P相交互过的节点都将选票发往用户信息收集模块,这样用户信息收集模块就收集到了网络中节点P的表现值。投票的过程如下:网络中的每个与P交互过的节点s用一个三元组集Ψ来存储以往文件交互活动所有的历史记录信息,其中每张选票表示为Ψ=(servent_id,num_plus,num_minus)。servent_id在这里就是数字机顶盒节点P在P2P网络中的唯一标识,num_plus和num_minus分别表示与P交互活动中下载成功的次数与下载失败的次数。流媒体服务器的用户信息收集模块根据接收到的所有对节点P的选票中num_plus和num_minus的值进行计算,num_plus-num_minus≥0即视为可信票,反之视为不可信票。根据节点P的可信票的数量与不可信票的数量可以计算出P的可信度,我们称之为P的信誉值。类似的,计算出所有节点的信誉值,并存入数据库中。
存储在数据库中的节点信息是实时更新的,这些节点信息需要分两类进行处理。一类是节目编号信息,根据数字机顶盒节点请求的节目编号,在节目信息数据库中找到相应的记录,可以定位到存储设备中的具体音视频文件;另一类是请求节点的信誉值信息,信誉值信息从数据库中取出后直接发送给流媒体服务器的激励模块做相应处理。
另一方面,流媒体服务器根据用户信息收集模块收集到的信息,将一部分请求收看同一节目的机顶盒节点的信息返回给请求服务的节点,请求服务的机顶盒节点在收到流媒体服务器的信息反馈以后,就能获取其他下载者的信息,那么它就可以根据这些获取的信息与其他下载者建立连接,从它们那里下载文件片段。用户信息收集模块工作流程如图3所示。
(3)节目信息管理模块
在整个流媒体服务器系统中,音视频节目数据是流媒体服务器直接提供给终端的资源,流媒体服务器对它们的管理至关重要。因此节目信息管理模块必须能够提供高效率,全方位,安全性好的节目信息管理服务。
节目信息管理模块与用户界面直接关联,其主要分为直播频道管理,点播频道管理和广播频道管理三部分。用户通过界面模块将添加,修改,删除,查找,更新节目的命令发送给后台节目信息数据库,在数据库中,根据用户的命令进行相应的操作。以更新后的节目信息替代原有的节目信息,保存在数据库中。同时,节目信息管理模块根据用户信息收集模块发送过来的请求节目编号信息,从数据库中检索到相应的节目信息,发送给激励模块。节目信息管理模块工作流程如图4所示。
在图4中可以看出,节目信息数据库是整个节目信息管理模块的核心。有用户信息收集模块收集到的用户请求的节目信息需要到节目信息数据库中去匹配,从而将节目详细信息发送给激励模块。同时,用户也可以通过界面实现对节目信息数据库的更新工作,更新过的节目记录将返回给界面,重新显示出来。
(4)激励模块
有了用户信息收集模块综合计算出的请求节点的信誉值,以及节目信息管理模块给出的节目名称和存储路径,激励模块便可以对服务等级进行划分,从而在流媒体服务器中实现对P2P网络节点的激励作用。
在P2P数字机顶盒系统中,可用资源,即可以用来提供流媒体内容的资源,主要分为两部分:{S,C}。其中S是指流媒体服务器端的可用资源,C指机顶盒系统客户端贡献出的资源。因此,在系统中,可用资源总量T可以表示为T=S+C。其中,S可以看作是一个常量,而C是一个可变量,它是指网络中所有终端贡献资源量的总和,即
Figure G2009101849306D0000071
Ci是每一个单独的终端可以贡献的资源量。经过分析可知,一个节点在网络中的活动交互对象主要是流媒体服务器和其它节点,因此,节点贡献资源的多少就可能同以下几个因素有关系:节点自愿、其他节点对它的作用力、服务器对它的作用力。
作出假设:节点自愿性因子为ai,其他节点对其作用力因子为oi,服务器对其作用力因子为si,其中,ai+oi+si=1,(i=1,2,...,N)。那么可以得出以下公式:
C = Σ i = 1 N C i = Σ i = 1 N ( a i C i + o i C i + s i C i )
在上式中,ai是一个相对固定值。oi和si是可变量。现有的P2P网络中,主要是通过激励机制的引入,来增大oi的值。在带有激励机制的P2P数字机顶盒流媒体服务器设计过程中,主要是通过激励模块引入并增大si的值实现提高C的值。
在激励模块中,为了对节点区别服务,以实现激励的目标,本文将采用彩票调度算法对每个用户的数据发送线程进行调度,以保证那些信誉值较高的节点的数据能够更加及时地发送。激励模块具体的工作流程如下:
1.用户点播请求到达以后(假定用户是C1、C2、C3...),激励模块通过用户信息收集模块获得各个节点的信誉值RC1、RC2、RC3...;
2.为每个用户建立服务线程,线程初始状态都为等待态;
3.为每个用户线程分配一定的彩票额,彩票额的大小为N*RCi,其中N为一个固定的大数,RCi为用户的信誉值(经过归一化处理)。可以看出,
信誉值越大的用户所获得的彩票数就越大;
4.采用彩票调度算法对用户线程进行调度,就可以使信誉值较大的用户的数据更加及时地发送,以达到区分服务和激励的目标。
激励模块整体工作流程如图5所示,在上述的激励模块的作用下,可以看出,当服务器的处理能力充足,即用户数较小时,能够保证所有的用户都能得到及时的响应,既使它的彩票数较小;而当用户数量很大,服务器出现性能瓶颈时,就可以保证那些信誉值较高的用户能够得到优于其它节点的服务,从而达到激励的目标。
(5)数据发送模块
流媒体服务器通过数据发送模块完成各响应优先级队列中的相应任务。将音视频数据先后发送给P2P网络中相应的数字机顶盒节点。数据发送模块是实现流媒体服务器功能的核心模块,也是实现上难度最大的模块之一。我们在该模块的设计过程中,不但要在服务器端实现功能,还要与数字机顶盒端的接收过程实现匹配,图6是数据发送模块的详细设计图。
如图6所示,数据发送模块具体实现流程可划分为如下步骤:
1)发送数据之前,我们首先使用fopen()函数以“rb”(二进制只读)的方式打开TS格式的音视频文件;
2)使用OutPacketBuffer()函数分配缓冲区的大小,缺省的最大值设置为60000;
3)使用PackFrame()函数读取一帧数据放到缓冲区中。由于我们这里是就TS(Transport Stream)格式而言的,TS包的特点就是每一个包的大小都是188字节,并且每一个包内的音视频信息都是同步的,所以按帧选取数据放入缓冲区的过程中,PackFrame()函数读取188字节的整数倍,按照音视频数据码率的不同而读取不同的倍数。例如,可以读7倍,即读取188*7。
PackFrame()函数中是调用fread()函数来读取数据的。
4)判断缓冲区中是否有足够的空间,如果有的话就重复执行步骤(3)所述的读取过程,直到缓冲区的空余空间不足以存放下一帧数据,此刻我们将下一帧数据保存,等待缓冲区空闲的时候再进行填入;
5)使用SendPacket()函数发送数据包,发送的同时,将发送掉的数据从发送缓冲区中删除;
6)如果没有需要发送的数据帧,就关闭打开的文件;如果还有数据帧需要发送,则使用SendPacketIfNecessery()函数计算出下一个数据包的发送时间,等待计算出时间以后,再回过去执行步骤5)。
该实现方法的步骤包括:
步骤1).进行需求分析,对流媒体服务器系统需要完成的功能进行分析,并生成需求分析文档,
步骤2).按照步骤1)的分析文档设计模块,对各模块的功能进行详细分析,生成各个模块之间的逻辑关系和功能说明文档,
步骤3).按照步骤2)的文档,设计与实现缺省界面,在缺省界面中,显示:服务器的配置与管理、节目信息管理、服务器启动的三个按钮以及用户连接显示、负载状况实时监测两个窗口,
步骤4).按照步骤2)的文档,设计与实现服务器配置与管理功能,在弹出对话框中配置服务器的首选端口,备选端口以及直播、点播和音频广播的节目路径,
步骤5).按照步骤2)的文档,设计与实现“节目信息管理”功能,该功能是利用流媒体服务器的节目信息管理模块来实现的,该功能可实现对点播节目、直播节目以及音频广播节目的分类管理,其中点播节目又细分为电影、电视剧、动漫,在下拉框中选择任意一项,则下方列表框中显示相应的节目信息,包含节目的编号,名称,在存储设备中的具体路径,右侧提供了对节目信息的“添加”、“删除”、“修改”、“查找”、“更新”操作,在直播节目管理与音频广播节目管理中增加了选定当前直播/广播频道的按钮,
步骤6).按照步骤2)的文档,设计与实现“激励模块”,P2P网络里面每隔一段时间会在节点之间发起相互投票,该模块可以对收集到的选票进行数据处理,计算节点的信誉值;“激励模块”的引入使得流媒体服务器系统能够对P2P网络中数字机顶盒节点进行激励,
步骤7).按照步骤2)的文档,设计与实现“服务器启动”功能,该功能可使服务器的用户信息收集模块处于监听状态,一旦监听到来自用户的连接请求,则记录下连接用户的ip端口号和请求的节目编号;接着启动“节目信息管理模块”,根据节目编号在节目信息数据库中查找到响应的节目记录信息,根据信息中提供的节目存放路径,在存储设备中找到响应的音、视频文件;P2P网络里面每隔一段时间会在节点之间发起相互投票,选票信息同样通过用户信息收集模块收集,收集到选票以后传给“激励模块”进行数据处理,从而计算出节点的信誉值,根据信誉值分发给节点不同数量的彩票,使用彩票调度算法进行调度,信誉值较高的节点在点播中得到的响应优先级相应较高,
步骤8).按照步骤2)的文档,设计与实现“用户连接显示”窗口,该窗口可以显示出用户的ip,请求的节目名称,节目播放方式是直播、点播或音频广播,现在的播放状态以及用户实时接收到的流量信息,流媒体服务器管理员通过右键点选某条记录可以选择终止对相应用户的服务,
步骤9).按照步骤2)的文档,设计与实现“负载状况实时监测”窗口,该窗口分为“网卡流量检测”和“服务器CPU负载监测”两个部分,分别用来显示网络流量以及服务器CPU负载的实时数据信息。
“激励模块”的引入使得流媒体服务器系统能够对P2P网络中数字机顶盒节点进行激励的方法如下:
步骤21).假定用户C1、C2、C3...的点播请求到达以后,激励模块通过用户信息收集模块获得各个节点的信誉值RC1、RC2、RC3...,
步骤22).为每个用户建立服务线程,线程初始状态都为等待态,
步骤23).为每个用户线程分配一定的彩票额,彩票额的大小为N*RCi,其中N为一个固定的大数,RCi为用户经过归一化处理的信誉值。可以看出,信誉值越大的用户所获得的彩票数就越大,
步骤24).采用彩票调度算法对用户线程进行调度,就可以使信誉值较大的用户的数据更加及时地发送,以达到区分服务和激励的目标。
RTSP流媒体服务器经过编辑、编译和链接生成可执行文件后,我们就可以用这个可执行文件或者说是RTSP流媒体服务器来提供音、视频节目的点播和直播服务。我们按照RTSP流媒体服务器的设计流程来介绍,采用遍历整个GUI菜单的方式描述流媒体服务器系统各个部分在开发中所处的位置以及功能,这样便可以体现出我们对整个流媒体服务器系统的总体规划以及详细设计:
1 缺省界面的设计与实现
启动系统后,首先显示的是缺省显示界面,在缺省界面中,显示:“服务器的配置与管理”,“节目信息管理”,“服务器启动”三个按钮以及“用户连接显示”,“负载状况实时监测”两个窗口。其中,“用户连接显示”和“负载状况实时监测”两个窗口显示的信息是随着系统的运行而实时变化的。
2“服务器的配置与管理”的设计与实现
选定“服务器的配置与管理”按钮以后即可在界面中弹出一个“服务器配置与管理”对话框,在该对话框中根据提示对服务器的各项参数进行配置。其中我们可以配置服务器的首选端口号、备选端口号,用于直播的节目存放路径、用于点播的节目存放路径以及用于广播的节目存放路径。
3“节目信息管理”的设计与实现
选定“节目信息管理”按钮以后,界面显示部分切换到“节目信息管理”页面。该页面分为“点播节目管理”、“直播节目管理”与“音频广播节目管理”三个部分。在“点播节目管理”中,通过下拉列表对节目进行分类,如电影、电视剧、动漫等。而选择任意一项以后,在下面的列表框中便会显示出该项的所有节目信息,包含节目的编号、节目名称以及节目的实际存放路径。在右侧提供了一系列按钮,诸如“添加节目”,“删除节目”,“修改节目记录”,“查找节目”,“更新节目”等等。其中,“直播节目管理”与“音频广播节目管理”中又提供了选定当前直播/广播频道的按钮。
4“服务器启动”的设计与实现
点选“服务器启动”按钮以后,即可启动服务器。此时,“用户信息收集模块”处于监听状态,一旦监听到来自用户的连接请求,则记录下连接用户的ip,端口号和请求的节目编号;接着启动“节目信息管理模块”,根据节目编号在节目信息数据库中查找到响应的节目记录信息,根据信息中提供的节目存放路径,在存储设备中找到相应的音、视频文件;P2P网络里面每隔一段时间会在节点之间发起相互投票,选票信息同样通过用户信息收集模块收集,收集到选票以后传给“激励模块”进行数据处理,从而计算出节点的信誉值,根据信誉值分发给节点不同数量的彩票,使用彩票调度算法进行调度,信誉值较高的节点在点播中得到的响应优先级相应较高。
5“用户连接显示”的设计与实现
在“用户连接显示”窗口中显示的是连接服务器的用户信息。当一个用户连接请求到来以后,该窗口可以显示出用户的ip,请求的节目名称,节目播放方式(直播/点播/音频广播),现在的播放状态以及用户实时接收到的流量信息,流媒体服务器管理员通过右键点选某条记录可以选择终止对相应用户的服务。
6“负载状况实时监测”的设计与实现
“负载状况实时监测”窗口分为两个部分,分别是“网卡流量检测”和“服务器CPU负载监测”。这个部分的设计可以使得流媒体服务器的管理员实时监测这两个信息,在服务器负载或是网络流量过大的时候可以终止掉一些实时流量较大的用户连接。

Claims (2)

1.一种用于混合对等计算网网络电视流媒体服务器的实现方法,其特征在于该实现方法的步骤包括:
步骤1).进行需求分析,对流媒体服务器系统需要完成的功能进行分析,并生成需求分析文档,
步骤2).按照步骤1)的分析文档设计模块,对各模块的功能进行详细分析,生成各个模块之间的逻辑关系和功能说明文档,
步骤3).按照步骤2)的文档,设计与实现缺省界面,在缺省界面中,显示:服务器的配置与管理、节目信息管理、服务器启动的三个按钮以及用户连接显示、负载状况实时监测两个窗口,
步骤4).按照步骤2)的文档,设计与实现服务器配置与管理功能,在弹出对话框中配置服务器的首选端口,备选端口以及直播、点播和音频广播的节目路径,
步骤5).按照步骤2)的文档,设计与实现“节目信息管理”功能,该功能是利用流媒体服务器的节目信息管理模块来实现的,该功能可实现对点播节目、直播节目以及音频广播节目的分类管理,其中点播节目又细分为电影、电视剧、动漫,在下拉框中选择任意一项,则下方列表框中显示相应的节目信息,包含节目的编号,名称,在存储设备中的具体路径,右侧提供了对节目信息的“添加”、“删除”、“修改”、“查找”、“更新”操作,在直播节目管理与音频广播节目管理中增加了选定当前直播/广播频道的按钮,
步骤6).按照步骤2)的文档,设计与实现“激励模块”,P2P网络里面每隔一段时间会在节点之间发起相互投票,该模块可以对收集到的选票进行数据处理,计算节点的信誉值;“激励模块”的引入使得流媒体服务器系统能够对P2P网络中数字机顶盒节点进行激励,
步骤7).按照步骤2)的文档,设计与实现“服务器启动”功能,该功能可使服务器的用户信息收集模块处于监听状态,一旦监听到来自用户的连接请求,则记录下连接用户的ip端口号和请求的节目编号;接着启动“节目信息管理模块”,根据节目编号在节目信息数据库中查找到响应的节目记录信息,根据信息中提供的节目存放路径,在存储设备中找到响应的音、视频文件;P2P网络里面每隔一段时间会在节点之间发起相互投票,选票信息同样通过用户信息收集模块收集,收集到选票以后传给“激励模块”进行数据处理,从而计算出节点的信誉值,根据信誉值分发给节点不同数量的彩票,使用彩票调度算法进行调度,信誉值较高的节点在点播中得到的响应优先级相应较高,
步骤8).按照步骤2)的文档,设计与实现“用户连接显示”窗口,该窗口可以显示出用户的ip,请求的节目名称,节目播放方式是直播、点播或音频广播,现在的播放状态以及用户实时接收到的流量信息,流媒体服务器管理员通过右键点选某条记录可以选择终止对相应用户的服务,
步骤9).按照步骤2)的文档,设计与实现“负载状况实时监测”窗口,该窗口分为“网卡流量检测”和“服务器CPU负载监测”两个部分,分别用来显示网络流量以及服务器CPU负载的实时数据信息。
2.根据权利要求1所要求的用于混合对等计算网网络电视流媒体服务器的实现方法,其特征在于“激励模块”的引入使得流媒体服务器系统能够对P2P网络中数字机顶盒节点进行激励的方法如下:
步骤21).假定用户C1、C2、C3...的点播请求到达以后,激励模块通过用户信息收集模块获得各个节点的信誉值RC1、RC2、RC3...,
步骤22).为每个用户建立服务线程,线程初始状态都为等待态,
步骤23).为每个用户线程分配一定的彩票额,彩票额的大小为N*RCi,其中N为一个固定的大数,RCi为用户经过归一化处理的信誉值。可以看出,信誉值越大的用户所获得的彩票数就越大,
步骤24).采用彩票调度算法对用户线程进行调度,就可以使信誉值较大的用户的数据更加及时地发送,以达到区分服务和激励的目标。
CN200910184930A 2009-10-21 2009-10-21 用于混合对等计算网网络电视流媒体服务器的实现方法 Pending CN101699860A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910184930A CN101699860A (zh) 2009-10-21 2009-10-21 用于混合对等计算网网络电视流媒体服务器的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910184930A CN101699860A (zh) 2009-10-21 2009-10-21 用于混合对等计算网网络电视流媒体服务器的实现方法

Publications (1)

Publication Number Publication Date
CN101699860A true CN101699860A (zh) 2010-04-28

Family

ID=42148300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910184930A Pending CN101699860A (zh) 2009-10-21 2009-10-21 用于混合对等计算网网络电视流媒体服务器的实现方法

Country Status (1)

Country Link
CN (1) CN101699860A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827242A (zh) * 2010-05-10 2010-09-08 南京邮电大学 一种基于网络电视机顶盒的可视电话系统实现方法
CN102547417A (zh) * 2010-12-27 2012-07-04 康佳集团股份有限公司 一种网络电视根据软件模块进行带宽速度限制的方法
CN102647625A (zh) * 2012-05-03 2012-08-22 重庆邮电大学 基于端口号和ip地址的多视频转发方法
CN103164663A (zh) * 2011-12-12 2013-06-19 深圳市腾讯计算机系统有限公司 一种基于滑动窗口的服务器过载保护方法及装置
CN103338476A (zh) * 2013-06-20 2013-10-02 南京邮电大学 一种基于信誉机制的延迟容忍网络数据传输方法
CN108270845A (zh) * 2017-12-13 2018-07-10 武汉市烽视威科技有限公司 一种基于rtsp的p2p点播系统及方法
CN114040225A (zh) * 2021-11-17 2022-02-11 聚好看科技股份有限公司 一种服务器、显示设备及媒资映射方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827242A (zh) * 2010-05-10 2010-09-08 南京邮电大学 一种基于网络电视机顶盒的可视电话系统实现方法
CN101827242B (zh) * 2010-05-10 2013-01-02 南京邮电大学 一种基于网络电视机顶盒的可视电话系统实现方法
CN102547417A (zh) * 2010-12-27 2012-07-04 康佳集团股份有限公司 一种网络电视根据软件模块进行带宽速度限制的方法
CN103164663A (zh) * 2011-12-12 2013-06-19 深圳市腾讯计算机系统有限公司 一种基于滑动窗口的服务器过载保护方法及装置
CN103164663B (zh) * 2011-12-12 2016-06-29 深圳市腾讯计算机系统有限公司 一种基于滑动窗口的服务器过载保护方法及装置
CN102647625A (zh) * 2012-05-03 2012-08-22 重庆邮电大学 基于端口号和ip地址的多视频转发方法
CN102647625B (zh) * 2012-05-03 2014-02-26 重庆邮电大学 基于端口号和ip地址的多视频转发方法
CN103338476A (zh) * 2013-06-20 2013-10-02 南京邮电大学 一种基于信誉机制的延迟容忍网络数据传输方法
CN103338476B (zh) * 2013-06-20 2015-12-02 南京邮电大学 一种基于信誉机制的延迟容忍网络数据传输方法
CN108270845A (zh) * 2017-12-13 2018-07-10 武汉市烽视威科技有限公司 一种基于rtsp的p2p点播系统及方法
CN114040225A (zh) * 2021-11-17 2022-02-11 聚好看科技股份有限公司 一种服务器、显示设备及媒资映射方法
CN114040225B (zh) * 2021-11-17 2023-08-11 聚好看科技股份有限公司 一种服务器、显示设备及媒资映射方法

Similar Documents

Publication Publication Date Title
CN101699860A (zh) 用于混合对等计算网网络电视流媒体服务器的实现方法
CN103379362B (zh) 视频点播方法和系统
CN108885627B (zh) 向远程客户端提供查询结果数据的查询即服务系统
CN103548358B (zh) 接收设备、接收方法以及信息提供设备
CN104301436B (zh) 待显示内容推送、订阅、更新方法及其相应的装置
CN101247402B (zh) 多媒体文件的下载播放系统和方法
CN100418330C (zh) 一种基于预测搜索的网络文件传输方法
CN102497452B (zh) 一种基于嵌入式终端的在线流媒体服务方法
US20070214207A1 (en) Method and system for accurate issuance of data information
KR20030090707A (ko) 양방향성 미디어 응답 처리 시스템
CN102307315B (zh) Iptv系统中用户行为分析装置及实现分析应用的系统
US20120227064A1 (en) Predictive Content Placement on a Managed Services Systems
EP2201451A1 (en) Systems, methods and apparatus for content distribution
CN102439579A (zh) 可变速率媒体传送系统
CN102740159A (zh) 媒体文件存储格式和自适应传送系统
CN101681372A (zh) 将相关信息提供给本地网中的装置的用户的方法和系统
CN109451326A (zh) 一种主播信息的展示方法、装置、服务器和存储介质
CN103139649A (zh) 信息处理装置、信息处理方法及信息处理程序
CN103220305A (zh) 网络媒介信息的分享处理系统和处理方法
CN102647462A (zh) 应用获取、发送方法及装置
CN105812850A (zh) 一种视频文件播放方法及其系统
CN108781311A (zh) 用于媒体分发和管理平台的视频播放器框架
CN105915602A (zh) 基于社区检测算法p2p网络的调度方法及其系统
CN1374598A (zh) 互动式广告传播的方法与系统
CN102792295B (zh) 操作信息生成设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Open date: 20100428