收藏 分销(赏)

RTSP技术讨论.ppt

上传人:仙人****88 文档编号:14014185 上传时间:2026-05-27 格式:PPT 页数:36 大小:778.50KB 下载积分:10 金币
下载 相关 举报
RTSP技术讨论.ppt_第1页
第1页 / 共36页
RTSP技术讨论.ppt_第2页
第2页 / 共36页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,RTSP,流媒体技术讨论,周鉴刚,2009-04-17,摘要,流媒体概述,RTSP,协议,RTP,协议,H264 payload,格式,Mpeg4 payload,格式,相关的程序和库,流媒体协议概述,起源:流式播放,vs,下载,协议:,RTP,、,RTSP,,强调实时性,应用:,微软的,MMS,,以及,RTSP,的变种,Real,的,RM,,以及,RTSP,的变种,Adobe,(收购自,MicroMedia,)的,flv,,,rtmp,规范化:,ISMA,协会,整合现有协议,强调互操作性,流媒体播放框架,应用层获取,RTSP URL,RTSP,协议进行播放控制,SDP,协议进行描述,RTP/RTCP,协议数据传输,Payload,层封装数据格式,RTSP,协议:概述,一般基于,TCP,传输,使用类似,HTTP,的协议结构,请求,first-line,:新增,DESCRIBE,、,SETUP,等,应答,first-line,:例如,RTSP/1.0 200 OK,Header,字段:“,key:value,rn,”,格式,以空行“,rn,”,结束,Body,内容:格式不限,通过,Content-Length,确定大小,允许双向发送命令,RTSP,协议:例子,SET_PARAMETER rtsp:/192.168.182.8:8888/sample.mp4 RTSP/1.0,CSeq,:5,x-transport-options:late-tolerance=1.400000,Session:5154404056653789650,User-Agent:QuickTime/7.5.5(,qtver,=7.5.5;os=Windows NT),RTSP/1.0 200 OK,Server:DSS/6.0.3(Build/526.3;Platform/Linux;Release/Darwin Streaming Server;State/Development;),Cseq,:5,Session:5154404056653789650,RTSP,协议:常用,header,字段,常用,Header,字段:,CSeq,:顺序号,每次递增,User-Agent,:客户程序信息,Server,:服务程序信息,Session,:标记一次点播过程,某些命令特有的,Header,字段:,Transport,:,SETUP,时协商通道信息,Range,:,PLAY,时标记播放位置,应用自定义字段(,x-,开头):,x-retransmit,:,Darwin,的,RUDP,重传协商标记,RTSP,协议:常用命令,DESCRIBE,询问媒体信息,,SETUP,创建传输通道,PLAY,开始播放,PAUSE,暂停播放,TEARDOWN,结束播放,OPTIONS,询问能力,ANNOUNCE,主动发布媒体,GET_PARAMETER,查询参数,SET_PARAMETER,设置参数,RTSP,协议:,DESCRIBE,命令,获取媒体的描述信息:有哪些,track,,各个,track,的格式,控制方式等,DESCRIBE rtsp:/192.168.182.8:8888/sample.mp4 RTSP/1.0,CSeq,:1,Accept:application/,sdp,Bandwidth:384000,Accept-Language:hr-HR,User-Agent:QuickTime/7.5.5(,qtver,=7.5.5;os=Windows NT 5.2Service Pack 2),RTSP,协议:,DESCRIBE,命令应答,Content-Base,用于后续,SETUP,命令构建,URL,BODY,信息中是,SDP,描述,RTSP/1.0 200 OK,Server:DSS/6.0.3,Cseq,:1,Content-length:753,Content-Type:application/,sdp,Content-Base:rtsp:/192.168.182.8:8888/sample.mp4/,v=0,SDP,协议(,1,),一份全局信息,多份媒体信息,v=0,o=,StreamingServer,3440750359 1231761553000 IN IP4 192.168.182.8,s=/home/drangon/sample_h264_100kbit.mp4,u=,e=admin,c=IN IP4 0.0.0.0,b=AS:2097172,t=0 0,a=control:*,a=isma-compliance:2,2.0,2,a=,range:npt,=0-70.00000,SDP,协议(,2,),rtpmap,:,RTP,包说明,封装格式(,h264,),,timestamp,单位,control,:,track,的控制信息,fmtp,:媒体格式相关的参数,封装、解码相关,m=video 0 RTP/AVP,96,a=3GPP-Adaptation-Support:1,a=,rtpmap,:96,H264,/90000,a=,control:trackID,=3,a=framesize:96 192-242,a=,fmtp,:96,packetization,-mode=1;profile-level-id=4D400C;sprop-parameter-sets=J01ADKkYYELxCA=,KM4JiA=,a=mpeg4-esid:201,RTSP,协议:,SETUP,命令,URL,的计算,如何指定,track,?,DESCRIBE,应答中:,Content-Base:,rtsp:/192.168.182.8:8888/sample.mp4/,SDP,中:,a=,control:,trackID,=3,Transport,,,UDP,传输方式,,unicast,,,client_port,SETUP,rtsp:/192.168.182.8:8888/sample.mp4/trackID=3,RTSP/1.0,CSeq,:3,Transport:,RTP/,AVP;unicast;client_port,=6972-6973,x-retransmit:our-retransmit,x-dynamic-rate:1,x-transport-options:late-tolerance=1.400000,Session:5154404056653789650,User-Agent:QuickTime/7.5.5,RTSP,协议:,SETUP,命令的应答,Transport,,传输方式的协商结果,确认,client_port,,增加,server_port,RTSP/1.0 200 OK,Server:DSS/6.0.3,Cseq,:3,Session:5154404056653789650,Transport:,RTP/,AVP;unicast;source,=192.168.182.8;client_port=6972-6973;server_port=6970-6971;ssrc=18512542,x-Transport-Options:late-tolerance=1.400000,x-Retransmit:our-retransmit,x-Dynamic-Rate:1,RTSP,协议:,SETUP,的,TCP,传输,SETUP,命令协商使用,TCP,方式,Transport:,RTP/AVP/,TCP;interleaved,=2-3,RTSP,连接中,内嵌二进制数据,四字节头,首字节,“,$”,(,0 x24,),用来区分正常,RTSP,请求还是内嵌二进制数据,第二字节是,channel,值,(,interleaved,时协商),第三、四字节是,长度,,,network order,后面是二进制数据(,RTP,、,RTCP,包),RTSP,协议:,PLAY,命令,Range,,指定播放位置,实现,SEEK,操作,实时监视不支持,Speed,,指定播放速度,实现快放慢放,连续多个,PLAY,的语义,播放列表,PLAY rtsp:/192.168.182.8:8888/sample.mp4 RTSP/1.0,CSeq,:4,Range:,npt,=5.000000-70.000000,x-prebuffer,:,maxtime,=2.000000,x-transport-options:late-tolerance=10,Session:5154404056653789650,User-Agent:QuickTime/7.5.5,RTSP,协议:其他命令,PAUSE,命令:暂停(直播不支持),OPTIONS,命令:查询支持能力,返回支持的命令清单。有时会用来做,TCP,保活,SET_PARAMETER,和,GET_PARAMETER,:参数读写,一般用于应用层,ANNOUNCE,命令,一般用于录制,类似,DESCRIBE,,但方向不同,请求者直接提供,SDP,信息,RTP,协议,UDP,传输(或者内嵌于,RTSP,连接中),强调实时性,没有重传(应用层可自定义),不同类型的,payload,有各自封装格式,四部分组成,,extension,和,padding,可选,RTP,Header,Extension,(可选),Payload,(根据类型封装),Padding,(可选),RTP,协议:,Header,V,:版本号,,2,P,:,padding,位,附在最后,末字节表示长度,X,:,extension,位,扩展内容,紧跟,header,,,2,字节,profile,,,2,字节,length,,然后是扩展内容,RTP,协议,CC,:,CSRC,数量,可选,一般为,0,M,:,mark,位,一般一帧数据最后一包为,1,PT,:,payload,类型,自定义从,96,开始,Seqence,Num,:顺序号,连续计数,Timestamp,:时间戳,根据,SDP,单位递增,SSRC,:同步源(略),CSRC,:贡献源(略),RTCP,协议,在另外一个,UDP,(,channel,)中双向传输,一个,UDP,包内可以有多个,RTCP,包,SR,、,RR,用来报告发送和接收统计,并且可以用来计算,round-trip,,没几个正确实现,BYE,包报告源结束,RTP,载荷:,MPEG4,帧格式,一些基本概念:,YUV,输入、编码输出、,I,帧、,P,帧,I,帧的码流:,000001,b0,03,000001,b5,08,000001,00,000001,20,00c888ffffe11150b042414183,000001,b6,10000c23202.,P,帧的码流,000001,b6,5088ac0cb,B6,后一字节高两位:,00=I,帧,,01=P,,,10=B,RTP,载荷:,MPEG4,的,SDP,描述,Mpeg4,视频一般使用,RFC3016,(音频,RFC3640,),SDP,描述:,MP4V-ES,是封装类型,有对应的,RFC,描述,90000,是,timestamp,单位,,25,帧时每帧递增,90000/25=3600,Profile-level-id,,,config,是解码参数,m=video 0 RTP/AVP 96,a=rtpmap:96,MP4V-ES,/,90000,a=,control:trackID,=0,a=mpeg4-esid:1,a=fmtp:96,profile-level-id,=1;,config,=000001b003000001b508000001000000012000c888ffffe11150b042414183;,RTP,载荷:,MPEG4,的,payload,封装,Mpeg4,视频的,RTP payload,封装,通常只考虑两种情况(没必要使用复杂的组合拆分),(,1,)如果一个帧小于,RTP,最大,payload,大小,则直接把整个帧作为,RTP,的,payload,发送。,(,2,)如果一个帧大于,RTP,最大,payload,大小,可以拆分成多个分片(,fragment,),每个分片大小不超过,RTP,最大,payload,的大小。这些所有的,RTP,包,,timestamp,都一样,,mark,位除最后一个包为,1,,前面所有包均为,0,RTP,载荷:,H264,帧格式,NAL,的基本概念,一个帧可以有多个,NAL,NAL header,格式(一个字节):,Forbidden_zero_bit,:一个,bit,,必须为,0,Nal_ref_idc,:两个,bit,,,I,帧非,0,Type,:五个,bit,,帧类型,常见,NAL,类型:,1,:,non-IDR picture,,非,I,帧,5,:,IDR picture,,,I,帧,6,:,SEI,7,:,SPS,,,sequence,参数,8,:,PPS,,,picture,参数,RTP,载荷:,H264,帧格式(,2,),Byte stream format,解决连续码流的帧分界问题,但如果有其他分界方式,可以不采用这种方式,具体实现,简单来说,在每个,NAL,头部添加,000001,前缀,,NAL,内部已经避免出现这个前缀,RTP payload,本身已经能够做帧分界,规范要求不能有,000001,前缀,RTP,载荷:,h264,的帧格式(,3,),I,帧的码流:,000001,67,42e00d56a2c4c4,000001,68,68e3c8,000001,06,e0010080,000001,65,b6000038754fc6e224452d,P,帧的码流,000001,61,d88377fe4e3e07,RTP,载荷:,h264,的,SDP,描述,h264,视频使用,RFC 3984,SDP,描述:,H264,是封装类型,有对应的,RFC,描述,90000,是,timestamp,单位,必须为,90000,Packetization,-mode,是可使用的打包格式,Profile-level-id,、,sprop,-parameter-sets,是解码参数(,SPS,、,PPS,),m=video 0 RTP/AVP 96,a=3GPP-Adaptation-Support:1,a=rtpmap:96,H264,/,90000,a=,control:trackID,=3,a=fmtp:96,packetization,-mode,=1;,profile-level-id,=4D400C;,sprop-parameter-sets,=J01ADKkYYELxCA=,KM4JiA=,RTP,载荷:,h264,的,payload,封装,Packetization,-mode,一般取值,1,,,Non-Interleaved mode,packet,格式,,NAL unit,、,FU-A,RTP,载荷:,h264,的,payload,封装(,2,),NAL unit,格式,,NAL,大小小于一个,RTP,最大,payload,大小,直接将,NAL,作为,RTP,的,payload,STAP-A,格式,将多个,NAL,放入一个,RTP,包中,总长度不超过一个,RTP,最大,payload,大小,RTP,载荷:,h264,的,payload,封装(,2,),FU-A,格式,一个,NAL,拆分成多个,RTP,包,RTP,载荷:,h264,的,payload,封装(,3,),假设一个,NAL,大小是,5000,字节,开头的,NAL header,字节为,0 x65,,,RTP payload,大小为,1400,字节。那么这个,NAL,将分拆成,4,个,RTP,包的,payload,中。,char nal_data5000;/,nal,的数据,unsigned char,nal_header,=nal_data0;,第一个,RTP,的,payload,(共,1400,字节):,payload0,的值:,(0 x1C|(,nal_header,&0 x60),payload1,的值:,(,0 x80,|(,nal_header,&0 x1F),payload2,到,payload1399,的值:,nal_data1,到,nal_data1398,第二个,RTP,的,payload,(共,1400,字节):,payload0,的值:,(0 x1C|(,nal_header,&0 x60),payload1,的值:,(,nal_header,&0 x1F),payload2,到,payload1399,的值:,nal_data1399,到,nal_data2796,第三个,RTP,的,payload,(共,1400,字节):,payload0,的值:,(0 x1C|(,nal_header,&0 x60),payload1,的值:,(,nal_header,&0 x1F),payload2,到,payload1399,的值:,nal_data2797,到,nal_data4194,第四个,RTP,的,payload,(共,807,字节):,payload0,的值:,(0 x1C|(,nal_header,&0 x60),payload1,的值:,(,0 x40,|(,nal_header,&0 x1F),payload2,到,payload806,的值:,nal_data4195,到,nal_data4999,相关的程序和库,DarwinStreamingServer,和,Quicktime,Mov,格式成为,ISO,标准,Hint track,优化,RTP,封包,支持标准,RTSP/RTP,协议,使用标准的扩展协商方式,RUDP,的确认重传机制(,RTCP APP,包),其他一些应用层设置,快速启动等,相关的程序和库(,2,),Mpeg4ip,(思科),开源客户端播放器(服务器用,darwin,),整合了很多编解码和网络协议库,L,(前身是,),Rtsp/rtp,库,网络框架,被很多其他项目所使用,VLC,(以前还有个,VLS,,已经合并到,VLC,),开源播放器,支持各种输入输出方式,Ffmpeg,、,mplayer,编解码强,支持,RTP,封包,,server,功能弱,参考文献,RTSP,规范:,RFC 2326,SDP,规范:,RFC 2327,RTP/RTCP,规范:,RFC1890,Mpeg4,封装格式:,RFC 3016,H264,封装格式:,RFC 3984,谢谢大家!,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服