流媒体协议与Darwin服务器课件

上传人:嘀**** 文档编号:252877096 上传时间:2024-11-21 格式:PPT 页数:35 大小:376.50KB
收藏 版权申诉 举报 下载
流媒体协议与Darwin服务器课件_第1页
第1页 / 共35页
流媒体协议与Darwin服务器课件_第2页
第2页 / 共35页
流媒体协议与Darwin服务器课件_第3页
第3页 / 共35页
资源描述:

《流媒体协议与Darwin服务器课件》由会员分享,可在线阅读,更多相关《流媒体协议与Darwin服务器课件(35页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,流媒体协议与DARWIN媒体服务器,1 流媒体协议介绍1.1Rtp(,RTP:Real Time Transport Protocol,),实时传输协议 RTP 为数据提供了具有实时特征的终端对终端传送服务,如在组播或单播网络服务下的交互式式视频音频或仿真数据。,RTP 由两个相近链接部分组成:,RTP:传送具有实时属性的数据;,RTP 控制协议 RTCP:监控服务质量并传送正在进行的会话参与者的相关信息。,协议结构,PT 识别 RTP 有效载荷的格式,并通过应用程序决定其解释。,序列号 每发送一个 RTP

2、 数据包,序列号增加1。接收方可以依次检测数据包的丢失并恢复数据包序列。,Timestamp 反映 RTP 数据包中的第一个八位组的采样时间。,SSRC 同步源。该标识符随机选择,旨在确保在同一个 RTP 会话中不存在两个同步源具有相同的 SSRC 标识符。,RTCP协议,当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。在RTP的会话之间周期的发放一些RTCP包以用来传监听服务质量和交换会话用户信息等功能。RTCP包中含有已发送的数据包的数量、丢失的数据包的

3、数量等统计资料。因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。根据用户间的数据传输反馈信息,可以制定流量控制的策略,而会话用户信息的交互,可以制定会话控制的策略。,(Real Time Streaming Protocol),RTSP协议定义了如何有效地通过IP网络传送多媒体数据,是一种客户端到服务器端的多媒体描述协议。RTSP是一个流媒体标示控制协议,用于控制具有实时特性的传输服务,它本身并不传输数据,而是利用低层传输协议提供的传输服务如RTP来传输数据。它提供对

4、媒体流的控制功能,例如播放,暂停,快进等。RTSP定义控制中所用的消息、操作方法、状态码以及头域等,另外还描述与RTP的交互操作。RTSP制定时参考了HTTP/1.1,在语法及操作上均与HTTP/1.1相似,并使HTTP的扩展机制在大多数情况下,可以加到RTSP上。,C-S:,DESCRIBE rtsp:/127.0.0.1/sample_100kbit.mp4 RTSP/1.0rn,CSeq:1rn,Accept:application/sdprn,Bandwidth:384000rn,rn,S-C:,RTSP/1.0 200 OKrn,Server:DSS/5.5.1(Build/489.

5、8;Platform/Win32;Release/Darwin;)rn,Cseq:1rn,Content-length:1203rn,Content-Type:application/sdprn,x-Accept-Retransmit:our-retransmitrn,x-Accept-Dynamic-Rate:1rn,Content-Base:rtsp:/127.0.0.1/sample_100kbit.mp4/rn,rn,v=0rn,o=StreamingServer,s=sample_100kbit.mp4rn,u=http:/rn,e=adminrn,c=IN IP4 0.0.0.0r

6、n,b=AS:96rn,t=0 0rn,a=control:*rn,a=mpeg4-iod:data:application/mpeg4-iod;base64,AoJrAE/w/z/wOBdgABQNhkYXRhOmFwcGxpY2F0aW9uL21wZWc0LW9kLWF1O2Jhc2U2NCxBWUVDQVV3Rkh3TklBTWtnQUdVRUx5QVJBRzNkQUFFaytBQUJKUGdGSUFBQUFiRHpBQUFCdFE3Z1FNRFBBQUFCQUFBQUFTQUFoRUQ2S0RBZzhxSWZCaEFBUkFBQUFsZ0FBQUFBSUFBQUFBQURBVElDbn

7、dNdUFHVUFCSUNBZ0JSQUZRQVlBQUFBVGlBQUFFNGdCWUNBZ0FJVmtBWVFBRVFBQUI5QUFBQWZRQ0FnQUFBQUF3PT0EDQEFAADIAAAAAAAAAAAGCQEAAAAAAAAAAANpAAJARmRhdGE6YXBwbGljYXRpb24vbXBlZzQtYmlmcy1hdTtiYXNlNjQsd0JBU2daTUNvRmNtRUVIOEFBQUIvQUFBQkVLQ0tDbjQEEgINAABkAAAAAAAAAAAFAwAAYAYJAQAAAAAAAAAArn,a=isma-compliance:1,1.0,1rn,a=r

8、ange:npt=0-70.00000rn,m=video 0 RTP/AVP 96rn,b=AS:76rn,a=rtpmap:96 MP4V-ES/90000rn,a=control:trackID=3rn,a=cliprect:0,0,242,192rn,a=framesize:96 192-242rn,a=mpeg4-esid:201rn,m=audio 0 RTP/AVP 97rn,b=AS:20rn,a=rtpmap:97 mpeg4-generic/8000/2rn,a=control:trackID=4rn,a=fmtp:97 profile-level-id=15;mode=A

9、AC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1590rn,a=mpeg4-esid:101rn,1.3sdp(SDP:Session Description Protocol),会话描述协议(SDP)为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述。会话目录用于协助多媒体会议的通告,并为会话参与者传送相关设置信息。SDP 即用于将这种信息传输到接收端,SDP 文本信息包括:,会话名称和意图;,会话持续时间;,构成会话的媒体;,有关接收媒体的信息(地址等)。,协议结构,SDP 信息是文本信息,

10、采用 UTF-8 编 码中的 ISO 10646 字符集。SDP 会话描述如下:,v=(协议版本),o=(所有者/创建者和会话标识符),s=(会话名称),一个或更多时间描述(如下所示):,0个或多个媒体描述(如下所示),时间描述,t=(会话活动时间),媒体描述,m=(媒体名称和传输地址),例子,其中,DESCRIBE,SETUP,PLAY命令是遵循rtsp协议的,而会话描述是遵循sdp协议的,媒体数据的传输是采用rtp协议的。,2.Darwin 流媒体服务器介绍,2.1各个流媒体解决方案比较,流媒体商业解决方案比较,目前市面上有real networks公司的real system,micro

11、soft公司的windows media系统,苹果公司的quicktime流媒体系统及philips公司的webcine,后者在目前市场上的占有率微乎其微,而另外三大主流流媒体解决方案则占据了90以上的市场。,微软的流媒体系统以其方便性、先进性、集成性、低费用等特点而渐渐被人们注意,它的缺点是仅支持windows操作系统,采用的是私有协议MMS而不是RTSP/RTP协议。提供SDK进行二次开发.,Realnetwork公司的流媒体系统是目前最流行的流媒体解决方案,支持几乎所有主流的个人计算机平台,提供SDK进行二次开发。,苹果公司的流媒体系统支持几乎所有主流的个人计算机平台,提供媒体服务器da

12、rwin stream server(DSS)的开源代码,播放器quicktime提供SDK进行二次开发.,2.1.2 开源流媒体服务器比较,开源方面,因为目前编解码器及流媒体的标准未定,开源资源比较紊乱,下面对开源领域较多人使用的程序做一比较,2.2DSS架构,DSS处理流媒体的过程如图所示,客户端经由DSS中的RTP session及RTSP session建立RTP/UDP/IP数据连接以及RTSP/TCP/IP控制连接,接着流媒体数据由RTP链路传送到客户RTSP链路控制RTP流的播放。,服务器架构,服务器自己拥有的主线程(Main Thread)。这个线程负责检查服务器是否需要关闭,

13、记录状态信息,或者打印统计信息。,空闲任务线程(Idle Task Thread)。空闲任务线程管理一个周期性的任务队列。,事件线程(Event Thread)。事件线程负责侦听套接口事件,比如收到RTSP请求和RTP数据包,然后把事件传递给任务线程。,一个或者多个任务(Task)线程。任务线程从事件线程中接收RTSP和RTP请求,然后把请求传递到恰当的服务器模块进行处理,把数据包发送给客户端。缺省情况下,核心服务器为每一个处理器创建一个任务线程。,任务线程,DSS中RTSP监听对象、RTSP会话对象、RTP会话对象均为“任务”对象,可被任务线程调度完成RTSP请求监听、RTSP请求处理、RT

14、P数据包发送等工作。每个任务对象都有两个主要的方法:Signal和Run,用于实现任务对象的通知和运行。任务对象的概念图如图3所示:,Signal方法,若想要通知任务对象完成某一任务,只需调用其Signal方法,并传递事件,即通知任务对象某一事件。例如在RTP会话任务对象的Play()中想要启动RTP任务对象开始发送RTP数据包,则通知RTP会话对象一个“启动事件(StartEvent)。任务对象Signal方法所作的工作仅仅是设置任务对象的事件标记值并将任务对象自身作为一个队列元素加入到任务线程的任务对象队列中去,然后任务线程会调度到该任务并完成特定任务。,Run方法,在任务线程调度到某一任

15、务对象后,会调用其Run方法来完成特定的工作。在任务对象的Run方法中,首先根据其事件标记值判断被通知的事件,然后根据该事件完成特定的任务。,任务对象的运行,任务线程调度任务对象并调用任务对象的Run方法完成任务后,根据返回值对任务对象有进一步的处理:若返回值为负,则删除该任务对象,一般任务对象在收到“kill事件”后,其Run方法返回负值使得任务对象在任务线程上被删除;若返回值为零,则不进行进一部处理,使得在任务对象只有在收到新的事件通知后才能够再次被调度运行:若返回值为正,则标明该任务对象在返回值时间间隔后需再次被调度运行,则设置其事件标记为空闲,并以当前时刻和返回值之和作为其运行时刻,然

16、后将其插入到任务队列中,使得在任务对象的运行时刻到来后会被任务线程调度得以运行。,事件线程,事件线程在启动时构造有一个消息窗口用于接收消息。套接字若想通过该消息窗口产生消息,需调用WSAAsyncSelectQ函数请求“当套接字上有网络事件时,产生消息到该消息窗口”。,事件线程启动后,它一直循环阻塞等待消息,若接收到消息(即有套接字收到数据),根据消息中参数找到对应的套接字并撤销该套接字的“网络事件通知消息”功能,最后调用该套接字处理消息,并循环等待消息。,在套接字处理事件时将该事件通知给与之联系在一起的任务对象,即调用该任务对象的Signal方法,所传递事件为读取数据事件。这样可以将套接字与任务对象联系起来,当套接字上收到数据后可在事件线程上通知对应的任务对象,任务对象在任务线程上得到运行以处理来自套接字的数据。例如:RTSP监听任务对象和其监听套接字联系起来,RTSP会话任务对象和其会话连接套接字联系起来,而RTCP任务对象和所有RTP会话接收RTCP数据包的套接字联系起来。因此,通过任务/事件机制,使得在单个线程上处理所有的流会话成为可能,空闲线程,在服务器启动时创建、启动有空闲

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!