流媒体服务器软件是干什么用的
辛辛苦苦找到的,够详细吧?
1 引言
随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、**播放到远程教学以及在线的新闻网站等都用到了流媒体技术。但现有公开文献所报道的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的研究。本文对流媒体服务器技术的研究重点在于如何建立一个服务器,并且在实现流媒体传输的两个基本协议RTP/RTCP的基础上构建一个基本的流媒体服务器。
2 流媒体技术简介
21 “流”的定义
现在网上传输视频、音频主要有下载(Download)和流式传输(Streaming)两种方式。流式传输是连续传送视/音频信号,当流媒体在客户机播放时其余部分在后台继续下载。流式传输有顺序流式传输(Progressive Streaming)和实时流式传输(Realtime Streaming)两种方式。实时流式传输是实时传送,特别适合现场事件,实时流式传输必须匹配连接带宽,这意味着图像质量会因网络速度降低而变差,以减少对传输带宽的需求。“实时”的概念是指在一个应用中数据的交付必须与数据的产生保持精确的时间关系。
在Internet中使用流式传输技术的连续时基媒体就称为流媒体,通常也将其视频与音频称为视频流和音频流。实现流式传输一般都需要专用服务器和播放器。
22 流媒体系统组件
流媒体是由各种不同软件构成的,这些软件在各个不同层面上互相通信,基本的流媒体系统包含以下3个组件:
播放器(Player),用来播放流媒体的软件。
服务器(Server),用来向用户发送流媒体的软件。
编码器(Encode),用来将原始的音频视频转化为流媒体格式的软件。
这些组件之间通过特定的协议互相通信,按照特定的格式互相交换文件数据。有些文件中包含了由特定编解码器解码的数据,这种编解码器通过特定算法压缩文件的数据量。
3 流媒体服务器的基本功能和服务方式
31 流媒体服务器的主要功能
(1)响应客户的请求,把媒体数据传送给客户。流媒体服务器在流媒体传送期间必须与客户的播放器保持双向通信(这种通信是必需的,因为客户可能随时暂停或快放一个文件)。
(2)响应广播的同时能够及时处理新接收的实时广播数据,并将其编码。
(3)可提供其他额外功能,如:数字权限管理(DRM),插播广告,分割或镜像其他服务器的流,还有组播。
32 流媒体服务器的服务方式
(1)单播。在客户端与媒体服务器之间建立一个单独的数据通道,从1台服务器送出的每个数据包只能传送给1个客户机。
(2)组播。在以组播技术构建的网络上,允许路由器一次将数据包复制到多个通道上。
(3)点播与广播。点播连接是客户端与服务器之间的主动的连接,在点播连接中,用户通过选择内容项目来初始化客户端连接,用户可以开始、停止、后退、快进或暂停流。广播指的是用户被动地接收流,在广播过程中,数据包的单独一个拷贝将发送给网络上的所有用户,客户端接收流,但不能控制流。
4 构建流媒体服务器
41 RTP/RTCP协议简介
实时传输协议RTP(Realtime Transport Protocol):是针对Internet上多媒体数据流的一个传输协议, 由IETF(Internet工程任务组)作为RFC1889发布。RTP被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。RTP的典型应用建立在UDP上,但也可以在TCP或ATM等其他协议之上工作。RTP本身只保证实时数据的传输,并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。
实时传输控制协议RTCP(Realtime Transport Control Protocol):负责管理传输质量在当前应用进程之间交换控制信息。在RTP会话期间,各参与者周期性地传送RTCP包,包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,故特别适合传送网上的实时数据。
RTCP主要有4个功能:
(1)用反馈信息的方法来提供分配数据的传送质量,这种反馈可以用来进行流量的拥塞控制,也可以用来监视网络和用来诊断网络中的问题;
(2)为RTP源提供一个永久性的CNAME(规范性名字)的传送层标志,因为在发现冲突或者程序更新重启时SSRC(同步源标识)会变,需要一个运作痕迹,在一组相关的会话中接收方也要用CNAME来从一个指定的与会者得到相联系的数据流(如音频和视频);
(3)根据与会者的数量来调整RTCP包的发送率;
(4)传送会话控制信息,如可在用户接口显示与会者的标识,这是可选功能。
42 RTP/RTCP工作过程
工作时,RTP协议从上层接收流媒体信息码流(如H263),装配成RTP数据包发送给下层,下层协议提供RTP和RTCP的分流。如在UDP中, RTP使用一个偶数号端口,则相应的RTCP使用其后的奇数号端口。RTP数据包没有长度限制,它的最大包长只受下层协议的限制。
43 服务器的算法
服务器软件模型主要有两种,即并发服务器和循环服务器。循环服务器(Iterative Server)是指在一个时刻只处理一个请求的服务器。并发服务器(Concurrent Server)是指在一个时刻可以处理多个请求的服务器。事实上,多数服务器没有用于同时处理多个请求的冗余设备,而是提供一种表面上的并发性,方法是依靠执行多个线程,每个线程处理一个请求,从客户的角度看,服务器就像在并发地与多个客户通信。
由于流媒体服务时间的不定性和数据交互实时性的请求,流媒体服务器一般采用并发服务器算法。本文构建了一个基本的流媒体服务器,能够同时响应多个用户的请求,把本地硬盘流媒体文件或实时数据流(H263格式)发送给用户。在应用中,把客户分为请求实时数据的实时客户和请求文件数据的文件客户两类。主要算法为:
(1)打开设备,分配资源。当设备准备好时,创建一个RTP实时服务线程和一个RTCP实时服务线程。
(2)创建一个UDP套接字并将其绑定到所提供服务的地址之上。
(3)反复调用接收模块,接收来自客户的RTCP报告,根据其类型做出响应。对新实时客户的请求,把客户地址添加到实时服务的客户列表中,对新文件客户的请求,则创建一个新RTP文件服务线程和一个新RTCP文件服务线程;对已经在服务中的客户则根据RTCP报告的内容调整服务。
RTP实时服务线程1:初始化客户列表和RTP首部。
RTP实时服务线程2:从设备读取媒体数据,把数据发送给实时服务列表中的客户。
RTP实时服务线程3:更新RTP首部和统计数据。
RTP实时服务线程4:计算延时,重复第二步。
RTCP实时服务线程1:初始化RTCP首部。
RTCP实时服务线程2:发送发送方报告给实时服务列表中的客户。
RTCP实时服务线程3:计算延时,重复第二步。
RTP文件服务线程1:初始化RTP首部。
RTP文件服务线程2:从文件读取媒体数据,把数据发送给客户。
RTP文件服务线程3:更新已发送数据的统计信息,为生成发送方报告做准备。
RTP文件服务线程4:计算延时,调整发送速度,正常情况下开始重复第二步。
RTCP文件服务线程1:初始化RTCP首部,发送一个源描述(SDES)报文给客户。
RTCP文件服务线程2:根据已发送数据的统计信息生成发送方报告,发送给客户。
RTCP文件服务线程3:计算延时,正常情况下开始重复第一步。
5 流媒体服务器实现中应注意的问题
51 会话和流的两级分用
一个RTP会话(Session)包括传给某个指定目的地对(Destination Pair)的所有通信量,发送方可能包括多个。而从同一个同步源发出的RTP分组序列称为流(Stream),一个RTP会话可能包含多个RTP流。一个 RTP分组在服务器端发送出去的时候总是要指定属于哪个会话和流,在接收时也需要进行两级分用,即会话分用和流分用。只有当RTP使用同步源标识 (SSRC)和分组类型(PTYPE)把同一个流中的分组组合起来,才能够使用序列号(Sequence Number)和时间戳(Timestamp)对分组进行排序和正确回放。
52 多线程的管理
并发服务器模式要求用多线程来提供服务,所以多线程的管理十分重要。在本文构建的服务器中,不同客户的请求和反馈都由服务器的主线程处理,由于实时数据的独有性,不同实时客户可以共用一个RTP实时服务线程和一个RTCP实时服务线程,这样可以大大减小服务器的负担,而每个文件客户由于请求的文件不同,相应地对速度和开始时间的要求都可能不同,所以需要有自己独有的RTP文件服务线程和RTCP文件服务线程。
RTP服务线程负责把实时数据流发送给客户, RTCP服务线程根据RTP线程的统计数据,产生发送方报告给客户。RTP线程和RTCP线程之间通过一段共享内存交互统计数据,对共享内存必须设置互斥体进行保护,防止出现错误读写。在这种方式下,服务器可以根据每个用户的不同请求和具体情况方便地提供不同的服务。
53 时间戳的处理
时间戳字段是RTP首部中说明数据包时间的同步信息,是数据能以正确的时间顺序恢复的关键。时间戳的值给出了分组中数据的第一个字节的采样时间 (Sampling Instant),要求发送方时间戳的时钟是连续、单调增长的,即使在没有数据输入或发送数据时也是如此。在静默时,发送方不必发送数据,保持时间戳的增长,在接收端,由于接收到的数据分组的序号没有丢失,就知道没有发生数据丢失,而且只要比较前后分组的时间戳的差异,就可以确定输出的时间间隔。
RTP规定一次会话的初始时间戳必须随机选择,但协议没有规定时间戳的单位,也没有规定该值的精确解释,而是由负载类型来确定时钟的颗粒,这样各种应用类型可以根据需要选择合适的输出计时精度。
在RTP传输音频数据时,一般选定逻辑时间戳速率与采样速率相同,但是在传输视频数据时,必须使时间戳速率大于每帧的一个滴答。如果数据是在同一时刻采样的,协议标准还允许多个分组具有相同的时间戳值。
54 媒体数据发送速度的控制
由于RTP协议没有规定RTP分组的长度和发送数据的速度,因而需要根据具体情况调整服务器端发送媒体数据的速度。对来自设备的实时数据可以采取等时间间隔访问设备缓冲区,在有新数据输入时发送数据的方式,时间戳的设置相对容易。对已经录制好的本地硬盘上的媒体文件,以H263格式的文件为例,由于文件本身不包含帧率信息,所以需要知道录制时的帧率或者设置一个初始值,在发送数据的时候找出发送数据中的帧数目,根据帧率和预置值来计算时延,以适当的速度发送数据并设置时间戳信息。
55 多种流同步
RTCP的一个关键作用就是能让接收方同步多个RTP流,例如:当音频与视频一起传输的时候,由于编码的不同,RTP使用两个流分别进行传输,这样两个流的时间戳以不同的速率运行,接收方必须同步两个流,以保证声音与影像的一致。为能进行流同步,RTCP要求发送方给每个传送一个唯一的标识数据源的规范名(Canonical Name),尽管由一个数据源发出的不同的流具有不同的同步源标识(SSRC),但具有相同的规范名,这样接收方就知道哪些流是有关联的。而发送方报告报文所包含的信息可被接收方用于协调两个流中的时间戳值。发送方报告中含有一个以网络时间协议NTP(Network Time Protocol)格式表示的绝对时间值,接着RTCP报告中给出一个RTP时间戳值,产生该值的时钟就是产生RTP分组中的TimeStamp字段的那个时钟。由于发送方发出的所有流和发送方报告都使用同一个绝对时钟,接收方就可以比较来自同一数据源的两个流的绝对时间,从而确定如何将一个流中的时间戳值映射为另一个流中的时间戳值。
6 结论
流媒体技术的应用日益广泛,对流媒体技术的研究具有很大的实际意义,本文通过对RTP/RTCP协议的研究,分析流媒体服务器的一般功能和结构,给出构建一个基本的流媒体服务器的实现方案,实验证明可以同时满足多个实时和文件客户的要求,并已经应用于一个远程监控系统中
“单播”“组播”和“多播”意思是:
单播:用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行,网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话。
多播也称为“组播”:将网络中同一业务类型主机进行了逻辑上的分组,进行数据收发的时候其数据仅仅在同一分组中进行,其他的主机没有加入此分组不能收发对应的数据。
扩展资料:
单播的缺点:
1 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器无法支持如此庞大的数据流。
2 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。
IP多播通信必须依赖于IP多播地址,在IPv4中它是一个D类IP地址,范围从224000到239255255255,并被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类。
其中,局部链接多播地址范围在224000~22400255这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包;
预留多播地址为224010~238255255255,可用于全球范围(如Internet)或网络协议;管理权限多播地址为239000~239255255255,可供组织内部使用,类似于私有IP地址,不能用于Internet,可限制多播范围。
参考资料:
- 单播
- 多播
1、交换机开启多播功能。
2、ghostsrv和客户端的ghost要求版本同一。
3、最好先用ghostsrv采集母盘,成功率比较高。
组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据,也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。
凌波多媒体教室软件 - 介绍如何使用的机房
凌波多媒体教室软件现有的计算机网络设备,教师机广播的学生机,显示器,如语音教学工作,协助学生完成学习和使用计算机软件。凌波多媒体教室软件适用于所有类型的学校和教育机构,培训机构在电脑室,计算机网络教室和电子阅览室。
凌波多媒体教室软件 - 主要特点的优良性能处于国内领先
级的屏幕广播速度,实时广播的多媒体课件,动画,凌波多媒体教室软件特别适合于教学的多媒体课件;支持DirectDraw,Direct3D中,OpenGL三维设计,动画制作软件,以及二维和三维游戏,如Pro / E(专业工程师),3D MAX( BR />屏幕广播教学功能的Autodesk 3ds Max),COOL 3D,雷神之锤III,魔兽争霸III,II RedAlert,CS等;
屏幕广播教学功能支持各种视频播放软件,视频播放,大窗口和全屏幕播放视频的媒体播放器软件,如:MS Media Player和Real播放器,赢DVD,电源DVD,超级解霸,等等,不会出现黑窗口;
音频混合技术,支持多人游戏和语音聊天相结合的任意分组功能,凌波多媒体教室软件,可以实现强大的语音教室;
支持各种格式的视频和音频材料跟读,复读功能,让用户尽享华丽的英语教学听证会。多媒体网络教室一专多能,成为一个多媒体语言实验室;
原来的缩略图显示凌波多媒体教室软件,可以把全班任何一个以上的学生端电脑屏幕上同时显示教师,教师一目了然全球的 BR />原来的运行同时设计,每个功能都可以任意组合,在任何地方,
原来的拨号电缆保护,以防止学生从拨号线;
电脑锁功能,您可以锁定CTRL + DEL + ALT;
凌波多媒体教室软件任意分组的所有学生,小组讨论,教师可以加入任何一组参与讨论,不同的信息,不同的组广播;
教师将能够保持被广播到所有学生或一组学生的屏幕显示和语音信息;
老师保持看和听的学生信息,并控制学生的鼠标键盘,“动手”式的指导,和学生之间的任意切换
窗口远程辅导,凌波多媒体教室软件的窗口智能滚动遥控教师的教学功能同时,教师多个学生的电脑进行远程操作;
老师允许学生另一名学生的鼠标,键盘,并采取相互学习的方法,提高学生的学习效率;
教师都可以(学生或一组)屏幕设置为“黑色”,并锁定学生的键盘控制,鼠标,并提醒学生注意听讲;
智能滚动:原来的智能滚动屏幕广播,远程操作自由轧制技术,没有屏幕缩放,学生可以收到老师在广播过程中,一边看操作;
鼠标捕获:支持软光标,动画鼠标光标,鼠标光标广播,可以体现在一个窗口模式,鼠标形式的实时变化;
动态切换:适应能力强,支持色彩和动态显示模式切换;
多点监控:凌波多媒体教室软件支持同步多个窗口同时观看监控窗口也可以被分布到多台机器,实时监控每个学生机的状态;
视听广播:凌波多媒体教室软件支持更多的音频和视频文件格式,支持VCD,MP3,AVI,WAV和其他文件在线播放;
自动登录:学生机开机时自动登录到教师;
电子手,老师的屏幕将能立即反映在“手”的的学生特定位置;
点名考勤,方便教师考勤管理;
无人值守,凌波多媒体教室软件可以自动记录在计算机屏幕上,所有学生都压缩成jpeg格式文件保存到指定的文件夹中,为教师后,检查学生的电脑使用;
凌波多媒体教室软件具有极强的系统稳定性,以确保顺利教学过程方面取得的进展;
功能齐全,界面美观,易于学习和使用,操作简单,直观,统一的操作模式;
纯软件实现,凌波多媒体教室软件不要求服务器,简单的安装,升级,维护方便;
硬件兼容性:凌波多媒体教室软件卡,声卡和显卡的性能反映良好,没有出现任何不稳定的现象;
所有的组播协议支持多个网段;
无用户数限制,方便学校以后添加更多的电脑,解除了学校的担心。
凌波多媒体教室软件 - 主要功能:
屏幕广播的老师或学生的电脑屏幕上实时发送到组或计算机屏幕上所有的学生和教师可以使用此功能的多媒体课件教学FrontPage软件操作,演示的话,也可以让学生示威的自由;
远程控制:老师或学生,其他学生在计算机操作系统就像操作自己的电脑,仅此功能,教师可以使用的学生交互式辅导教学;
屏幕显示器:教师或学生,实时监控的一组或一台电脑屏幕上所有的学生,教师可以不离开自己的座位,以了解学生的学习,学生在整个网络监控和管理;
屏幕日志:定时所有成员的电脑屏幕上,JPEG图像文件格式,保存到教师机指定的文件夹,方便无人看管或查看学生电脑使用后
声音广播:可以实时传送语音教师或学生,一组学生或所有学生;
双向的对讲:指定两名学生或教师与学生之间的语音通信;
多人会话:指定的学生人数(包括教师)之间的语音通信,
声音监控:让老师或学生,一组学生或所有学生听;
网络重复使用现有的音频和视频文件一本教科书,学生网络复读,跟读训练;
音频广播:一组学生或所有学生的老师或学生的音频和视频文件播放;
屏幕录音:录音类的内容,以产生课件或教材;
屏幕播放:网络播放画面记录;
在线聊天:指定数量的学生,包括教师书面沟通;
电子图板:计算机屏幕作为黑板,在屏幕上书写,一般采用屏幕广播的同时,
执行命令:电脑让学生同时运行一个程序;
在线配置:可以限制学生使用电脑特权,其中包括只允许运行某些程序来隐藏硬盘驱动器,禁止使用注册表,禁止使用控制面板,等数以百计的权限设置;
的电脑:您可以查看学生计算机系统中,内存,驱动器,处理信息,你可以强制结束学生电脑上运行的进程;
黑色屏幕安静:安静的黑色屏幕上显示该学生的计算机屏幕。教师也可以自己定义屏幕上的内容,以及是否显示文字,文字大小,颜色,位置,具体可以在系统设置,黑色安静的环境;
锁定电脑:禁止学生安静下来使用键盘和鼠标操作电脑,让学生专心听课;
新闻发布:在任何时间发送短信给所有学生的教师,学生对教师的反馈信息;
发布文件:教师发送文件到学生的电脑
负责文件:学生计算机中的文件可以转移到教师的计算机
递交:学生可以将文件发送到教师的计算机
关机重新启动:一组学生或所有学生关闭或重新启动计算机;
远程启动:启动学生计算机(需要电脑硬件的支持);
音量设置:凌波多媒体网络软件教学,教师可以结束了,一套统一的学生电脑录音,播放音量;
名字的牌子:教师可以通过让学生签署学生的考勤记录;
团队管理:一个非常强大的类,团队,学生和计算机的管理机制,没有配置就可以开始教学任务,并介绍之类的概念,学生可以让你进行多类配置管理,学生座位安排,分组和教学示范,你可以监控学生电脑的当前状态,等等,都非常方便。
MLD(multicast listener discover)组播侦听者发现协议,主要是ipv6路由器在其直连网段上发现组播侦听者。
路由器使用 IPv6单播链路本地地址作为源地址 发送MLD报文。MLD使用ICMPv6(Internet Control Message Protocol for IPv6,针对IPv6的互联网控制报文协议)报文类型。和IGMP协议一样,所有的MLD报文被限制在本地链路上,跳数为1。解释一下:单播链路本地地址前缀为FE80::/64,这个概念类似于ipv4中,当DHCP分配失败时自动生成的169254XXXXXX这样的地址,凡是源地址或目的地址中含有link-local address的报文,路由器都不应当转发它。这样的报文只能在一个LAN中互通。
简单介绍一下MLD两个版本:MLDv1和MLDv2,详见百度。
MLDv1协议是从IGMPv2协议中派生出来的,其运行机制和IGMPv2协议相同,专门用于IPv6组播群组的管理,其主要是应用于ASM(Any Specific Multicast)模式组播路由协议的组管理工作。主要功能有查询路由器的选举、查询报文、响应抑制、报告报文、离开报文、特定组查询报文、快速离开。
MLDv2从IGMPv3中发展过来,和MLDv1相比,增加了源过滤功能,不仅能够支持ASM模式组播路由协议,而且还能够支持基于IPv6的SSM(Source Specific Multieast)模式组播路由协议。
重点介绍一下如何测试MLD Snooping?针对我们自研的RTK switch
MLDv1测试环境搭建——采用vlc
vlc的一些版本支持ipv6组播服务器的搭建与点播,步骤和ipv4组播服务器的搭建一样,只需要将ipv4的组播地址改成ipv6组播地址,在客户端上输入的网络url格式为rtp://@[ff1e::1]:5004这样的即可。
这里涉及到ipv6的组播地址,要想了解ipv6组播地址更多内容请参见文章《IPv6的组播地址(掌握IPv6通信原理的关键知识点)》http://blog51ctocom/7658423/1337745
上图这套环境看着像我们的RTK switch是个proxy,实际不然。因为我们的RTK switch现在不支持MLD Query,所以只好借助于H3C带有MLD Query功能的交换机来搭vlc的环境,让RTK Switch可以转发query报文。并且我们的RTK Switch也不支持proxy功能。
MLDv1测试环境搭建——采用TSC
1、MLD Querier device建立
2、MLD客户端device建立
3、在MLD Querier device端口上建立一条绑定流
4、开启device,开始发流吧
0条评论