⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dotjox的专栏.htm

📁 rtsp的一些说明文档,包含中文rfc格式以及其他的一些格式说明
💻 HTM
📖 第 1 页 / 共 2 页
字号:
    <TD style="TEXT-ALIGN: center"><FONT size=3>SETUP</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>就绪态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>TEARDOWN</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>初始态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>就绪态</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>PLAY</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>播放态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>RECORD</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>记录态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>TEARDOWN</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>初始态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>SETUP</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>就绪态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>播放态</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>PAUSE</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>就绪态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>TEARDOWN</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>初始态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>PLAY</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>播放态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>SETUP</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>播放态(改变传输)</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>记录态</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>PAUSE</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>就绪态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>TEARDOWN</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>初始态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>RECORD</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>记录态</FONT></TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center"><FONT size=3>&nbsp;</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT size=3>SETUP</FONT></TD>
    <TD style="TEXT-ALIGN: center"><FONT 
size=3>记录态(改变传输)</FONT></TD></TR></TBODY></TABLE><BR><BR>A.2 
服务器端状态机<BR><BR>&nbsp;&nbsp;&nbsp; 服务器端呈现以下状态:<BR>&nbsp;&nbsp;&nbsp; 
初始态(Init):最初的状态,未收到有效的SETUP请求<BR>&nbsp;&nbsp;&nbsp; 
就绪态(Ready):成功接收上一个SETUP请求,回复发出,或者从播放态迁移而来,成功接收上一个PAUSE请求,向客户端发回回复<BR>&nbsp;&nbsp;&nbsp; 
播放态(Playing):成功接收上一个PLAY请求,对其回复发出。数据正在发送<BR>&nbsp;&nbsp;&nbsp; 
记录态(Recording):服务器正在记录媒体数据<BR><BR>&nbsp;&nbsp;&nbsp; 
通常来说,服务器端在收到对请求后立即改变状态。在单播模式下,如果服务器在一个定义的时间间隔内(默认是1分钟)没有从客户端收到"满意的(wellness)"的信息,那么它将从播放态或记录态回复到初始态,并且关闭(tear 
down)RTSP会话。服务器在会话响应头(Session response header)中声明另一个超时值(timeout 
value)。<BR><BR>&nbsp;&nbsp;&nbsp; 
如果处在就绪态的服务器在超过1分钟的时间间隔内没有收到一个RTSP请求,它将回复到初始态。注意某些请求(比如PAUSE)可能会在将来某个时间或某个位置生效,服务器状态会在恰当的时间改变(而不是在收到请求后立即改变)。到达客户端请求范围的结尾时,服务器状态从播放态或记录态回复到就绪态。<BR><BR>&nbsp;&nbsp;&nbsp; 
除非REDIRECT消息有Range首部域指出重定向生效的时间,否则它在发出后立即生效。在有Range的情况下,服务器状态也会在恰当的时间改变。<BR><BR>&nbsp;&nbsp;&nbsp; 
如果对象不需要显式的SETUP请求,那它将以就绪态开始,并且只有就绪和播放两个状态。<BR><BR>&nbsp;&nbsp;&nbsp; 
"下一状态"列表示发出一个成功响应(2xx)后的状态。如果某个请求引起状态码3xx,则状态变成初始态。4xx的状态码不会引起状态改变。<BR><BR>
<TABLE style="WIDTH: 373px; HEIGHT: 363px" cellSpacing=1 cellPadding=1 
summary="" border=1>
  <TBODY>
  <TR>
    <TD style="TEXT-ALIGN: center">状态</TD>
    <TD style="TEXT-ALIGN: center">收到的消息</TD>
    <TD style="TEXT-ALIGN: center">下一状态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">初始态</TD>
    <TD style="TEXT-ALIGN: center">SETUP</TD>
    <TD style="TEXT-ALIGN: center">就绪态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">TEARDOWN</TD>
    <TD style="TEXT-ALIGN: center">初始态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">就绪态</TD>
    <TD style="TEXT-ALIGN: center">PLAY</TD>
    <TD style="TEXT-ALIGN: center">播放态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">SETUP</TD>
    <TD style="TEXT-ALIGN: center">就绪态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">TEARDOWN</TD>
    <TD style="TEXT-ALIGN: center">初始态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">RECORD</TD>
    <TD style="TEXT-ALIGN: center">记录态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">播放态</TD>
    <TD style="TEXT-ALIGN: center">PLAY</TD>
    <TD style="TEXT-ALIGN: center">播放态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">PAUSE</TD>
    <TD style="TEXT-ALIGN: center">就绪态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">TEARDOWN</TD>
    <TD style="TEXT-ALIGN: center">初始态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">SETUP</TD>
    <TD style="TEXT-ALIGN: center">播放态</TD></TR>
  <TR>
    <TD style="TEXT-ALIGN: center">记录态</TD>
    <TD style="TEXT-ALIGN: center">RECORD</TD>
    <TD style="TEXT-ALIGN: center">记录态</TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">PAUSE</TD>
    <TD style="TEXT-ALIGN: center">就绪态</TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">&nbsp;TEARDOWN</TD>
    <TD style="TEXT-ALIGN: center">初始态</TD></TR>
  <TR>
    <TD>&nbsp;</TD>
    <TD style="TEXT-ALIGN: center">SETUP</TD>
    <TD 
style="TEXT-ALIGN: center">记录态</TD></TR></TBODY></TABLE><BR>附:RTSP状态<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
RTSP用以控制媒体流(stream),该媒体流可能通过一个单独的协议,与控制通道(control 
channel)无关的方式被发送的。比如,RTSP控制可能出现在TCP连接,而数据却通过UDP传送。因此,媒体服务器即使没有收到RTSP请求,数据传递也会继续。同样地,在单个媒体流的生命周期里,它可能顺序地被不同TCP连接发出的RTSP请求所控制。所以服务器需要维护“会话状态(session 
state)”,能够将RTSP请求和某个媒体流关联起来。状态迁移如上文所述。<BR><BR>&nbsp;&nbsp;&nbsp; 
RTSP中许多方法对状态无影响。但是,下面几个方法在定义服务器上媒体流资源的分配和使用时,有重要作用:SETUP, PLAY, RECORD, PAUSE, 
和TEARDOWN。<BR><BR>
<DIV style="MARGIN-LEFT: 40px">SETUP:使服务器为媒体流和启动一个RTSP会话分配资源。<BR></DIV>
<DIV style="MARGIN-LEFT: 40px">PLAY和RECORD:开始在媒体流(通过SETUP分配)上传送数据<BR></DIV>
<DIV style="MARGIN-LEFT: 40px">PAUSE:暂时中断某个媒体流,但没有释放服务器资源<BR></DIV>
<DIV 
style="MARGIN-LEFT: 40px">TEARDOWN:释放与媒体流相关的资源。RTSP会话终止,在服务器退出。<BR></DIV><BR>&nbsp;&nbsp;&nbsp; 
影响RTSP状态的方法使用会话首部域(Session header 
field)来标识状态正在被操作的会话。服务器在响应SETUP请求时,产生会话标志符。<BR><BR>
<P class=MsoNormal style="TEXT-INDENT: 21pt"><SPAN style="FONT-FAMILY: 宋体"><FONT 
size=2><SPAN lang=EN-US><O:P></O:P></SPAN></SPAN></P><BR><BR>
<P id=TBPingURL>Trackback: 
http://tb.blog.csdn.net/TrackBack.aspx?PostId=722320</P></DIV>
<DIV class=postFoot>
<SCRIPT src=""></SCRIPT>
[<A href="javascript:StorePage()">点击此处收藏本文</A>]&nbsp;&nbsp; DotJox发表于 
2006年05月10日 17:31:00 </DIV></DIV><LINK 
href="http://blog.csdn.net/DotJox/Services/Pingback.aspx" rel=pingback><!--
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
<rdf:Description
rdf:about="http://blog.csdn.net/DotJox/archive/2006/05/10/722320.aspx"
dc:identifier="http://blog.csdn.net/DotJox/archive/2006/05/10/722320.aspx"
dc:title="RTSP协议状态机"
trackback:ping="http://tb.blog.csdn.net/TrackBack.aspx?PostId=722320" />
</rdf:RDF>
-->
<SCRIPT>function hide(){showComment();}</SCRIPT>
<BR>
<SCRIPT type=text/javascript>document.write("<img src=http://counter.csdn.net/pv.aspx?id=24 border=0 width=0 height=0>");</SCRIPT>
没有评论。 
<DIV class=CommentForm id=commentform>
<H3>发表评论</H3>
<TABLE class=CommentForm>
  <TBODY>
  <TR>
    <TD width=69 height=0></TD>
    <TD></TD></TR>
  <TR>
    <TD width=70>大名:</TD>
    <TD align=left><INPUT id=PostComment.ascx_tbName style="WIDTH: 300px" 
      size=40 name=PostComment.ascx$tbName> <SPAN 
      id=PostComment.ascx_RequiredFieldValidator2 
      style="DISPLAY: none; COLOR: red"><BR>请输入尊姓大名</SPAN> </TD></TR>
  <TR>
    <TD width=70>网址:</TD>
    <TD align=left><INPUT id=PostComment.ascx_tbUrl style="WIDTH: 300px" 
      size=40 name=PostComment.ascx$tbUrl> </TD></TR>
  <TR>
    <TD colSpan=3>评论&nbsp; <SPAN id=PostComment.ascx_RequiredFieldValidator3 
      style="DISPLAY: none; COLOR: red"><BR>请输入评论</SPAN> <BR><TEXTAREA id=PostComment.ascx_tbComment style="WIDTH: 381px; HEIGHT: 193px" name=PostComment.ascx$tbComment rows=10 cols=50></TEXTAREA> 
    </TD></TR>
  <TR style="DISPLAY: none">
    <TD height=24>验证码</TD>
    <TD><INPUT id=PostComment.ascx_ValidationKey style="WIDTH: 150px" 
      name=PostComment.ascx$ValidationKey> <INPUT id=VCImageSrc type=hidden 
      value=/VerifyCode.aspx?url=http%3a%2f%2fblog.csdn.net%2fDotJox%2farchive%2f2006%2f05%2f10%2f722320.aspx&amp;datetime=7%2f26%2f2006+6%3a30%3a42+PM&amp;ip=58.100.84.155> 
      <SPAN id=VCImageSpan></SPAN>
      <SCRIPT src="DotJox的专栏.files/deferShowVerifyImage.js" 
      type=text/javascript></SCRIPT>
    </TD></TR>
  <TR>
    <TD colSpan=3><INPUT class=Button id=PostComment.ascx_btnSubmit onclick='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("PostComment.ascx$btnSubmit", "", true, "", "", false, false))' type=submit value=提交 name=PostComment.ascx$btnSubmit>&nbsp;&nbsp;&nbsp; 
      <INPUT id=PostComment.ascx_chkRemember type=checkbox 
      name=PostComment.ascx$chkRemember><LABEL 
      for=PostComment.ascx_chkRemember>记住我?</LABEL></TD></TR>
  <TR>
    <TD colSpan=3><SPAN id=PostComment.ascx_Message 
    style="COLOR: red"></SPAN></TD></TR></TBODY></TABLE></DIV></DIV>
<P id=footer>Powered by: <BR><A id=Footer1_Hyperlink2 
href="http://scottwater.com/blog" name=Hyperlink1><IMG 
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" 
src="DotJox的专栏.files/100x30_Logo.gif"></A> <A id=Footer1_Hyperlink3 
href="http://asp.net/" name=Hyperlink1><IMG 
style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" 
src="DotJox的专栏.files/PoweredByAsp.Net.gif"></A> <BR>Copyright © DotJox </P>
<SCRIPT src="DotJox的专栏.files/counter.js"></SCRIPT>

<SCRIPT type=text/javascript>
<!--
var Page_Validators =  new Array(document.getElementById("PostComment.ascx_RequiredFieldValidator2"), document.getElementById("PostComment.ascx_RequiredFieldValidator3"));
// -->
</SCRIPT>

<SCRIPT type=text/javascript>
<!--
var PostComment.ascx_RequiredFieldValidator2 = document.all ? document.all["PostComment.ascx_RequiredFieldValidator2"] : document.getElementById("PostComment.ascx_RequiredFieldValidator2");
PostComment.ascx_RequiredFieldValidator2.controltovalidate = "PostComment.ascx_tbName";
PostComment.ascx_RequiredFieldValidator2.errormessage = "<br>请输入尊姓大名";
PostComment.ascx_RequiredFieldValidator2.display = "Dynamic";
PostComment.ascx_RequiredFieldValidator2.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
PostComment.ascx_RequiredFieldValidator2.initialvalue = "";
var PostComment.ascx_RequiredFieldValidator3 = document.all ? document.all["PostComment.ascx_RequiredFieldValidator3"] : document.getElementById("PostComment.ascx_RequiredFieldValidator3");
PostComment.ascx_RequiredFieldValidator3.controltovalidate = "PostComment.ascx_tbComment";
PostComment.ascx_RequiredFieldValidator3.errormessage = "<br>请输入评论";
PostComment.ascx_RequiredFieldValidator3.display = "Dynamic";
PostComment.ascx_RequiredFieldValidator3.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
PostComment.ascx_RequiredFieldValidator3.initialvalue = "";
// -->
</SCRIPT>

<DIV><INPUT id=__EVENTVALIDATION type=hidden 
value=/wEWBwL+raDpAgKYsei0AwKKr+LbDALQg87YCQKmqJOtCwLQ562RCALZosDQBC7jybkyrpOPCqA3xt6ksia1jdJK 
name=__EVENTVALIDATION> </DIV>
<SCRIPT type=text/javascript>
<!--
var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
// -->
</SCRIPT>
</FORM>
<SCRIPT language=javascript type=text/javascript>
	<!--
	try{
		hide();
		}
		catch(e){
		}
	//-->
    </SCRIPT>
</FONT></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -