1. 程式人生 > >DZ先生怪談國標之28181之聯網系統實時流協議(MANSRTSP) 命令集

DZ先生怪談國標之28181之聯網系統實時流協議(MANSRTSP) 命令集

1. 自述

今日DZ君主講的課題是:聯網系統實時流協議(MANSRTSP) 命令集

2. 背景

在這之前,我沒想到我會在寫一篇關於實時流協議命令的文章,因為上一篇有一個讀者不滿,因為輕描淡寫了他,在這裡我要重新來描述下我的這位周某某,壯如阿里郎,帥過花果王,據說如果他賣醋的話,現在應該是世界醋王了。具體含義自行領會哈。下面不多說,我們進入正題。

3.命令的名稱和說明

媒體回放控制命令由客戶端到伺服器的請求訊息和由伺服器到客戶端的應答訊息完成, 請求和應答引用 RTSP(IETF RFC2326) 協議中的部分請求和應答訊息格式。
訊息包括一起始行, 一個或多個訊息頭(message header) 、 一個表示標題頭結束的空行(即 CRLF前沒有內容的行) 和一個訊息體(可選) 。 示例如下:
message=start-line
message header
CRLF
[message body]
訊息有請求和應答兩種, 在每對請求—應答訊息中, 應包含相同的 CSeq 頭域, 具體描述如下:
a) 請求


請求訊息的起始行格式為 Method SP RTSP-Version CRLF。
其中 Method: 請求命令; SP : 空白符;RTSP-Version: 協議版本號; CR: 回車; LF: 換行。
請求命令包括: PLAY,PAUSE,TEARDOWN。------記住這裡,只有三種 播放---暫停---停止
b) 應答
應答訊息的起始行格式為 Status-Line = RTSP-Version SP Status-Code SP Reason-PhraseCRLF。其中 RTSP-Version: 協議版本號;Status-Code :3 位狀態碼, 用於迴應請求時表示主機狀態;Reason-Phrase: 是與狀態碼對應的文字解釋。

4. 命令定義

客戶端傳送 PLAY 請求訊息, 請求伺服器傳送媒體。 應支援 Range 頭, 在 Range 頭中給出播放時間範圍, 播放指定時間段的媒體,見IETF RFC 2326—1998 的12.29; 時間範圍應支援npt、smpte 相對時間戳範圍。 伺服器的響應訊息中給出 RTP-Info 頭資訊, IETF RFC2326—1998 的12.33。
Range 頭取值為“ntp=now-”, 不攜帶Scale 頭, 表示從暫停位置以原倍速恢復播放。
示例:
PLAY RTSP/1.0
CSeq: 2
Range: npt=now

暫停播放命令
客戶端傳送 PAUSE 請求訊息, 請求伺服器暫停傳送媒體, 但不釋放資源。 見IETF RFC 2326—1998 的10.6。
PauseTime 取值固定為“now”, 表示視訊停止在當前位置。
示例:
PAUSE

RTSP/1.0
CSeq: 1
PauseTime: now

快進/慢進命令
在客戶端傳送的PLAY 請求訊息中, 應使用Scale 頭來控制播放的快慢, 見IETF RFC2326—1998 的12.34。 Scale 為1, 正常播放;不等於1, 為正常播放速率的倍數; 負數為倒放。快進/ 慢進命令應只攜帶Scale 頭, 表示從當前位置開始以指定的倍速播放, 不攜帶 Range 頭。
示例:
PLAY RTSP/1.0
CSeq: 3
Scale: 2.0

隨機拖放命令
在客戶端傳送的PLAY 請求訊息中, 應支援 Range 頭域, 使用smpte 相對時間戳範圍, 實現隨機拖放播放, 表示按當前播放速度跳轉到 Range 頭指定的時間點, 不攜帶Scale 頭。
示例:
PLAY RTSP/1.0
CSeq: 4
Range: npt=100-

停止命令
客戶端傳送 TEARDOWN 請求訊息, 停止傳送指定流, 結束會話, 並釋放資源。

應答命令
客戶端、 伺服器端應支援應答命令的狀態碼200、4xx 以及5xx。 見IETF RFC2326。

Scale 和 Range 頭域取值範圍
Scale 頭應支援的基本取值為0.25、0.5、1、2、4。
Range 頭的值為播放錄影起點的相對值, 取值範圍為0 到播放錄影的終點時間, 引數以s 為單位,不能為負值如 Range 頭的值為0, 則表示從起點開始播放,Range 頭的值為100, 則表示從錄影起點後的100 s 處開始播放,Range 頭的取值為now 表示從當前位置開始播放。

 

【文獻來源】
公共安全視訊監控聯網系統資訊傳輸、交換、控制技術要求(GB/T 28181-2016)

***關注DZ君,讓監控變得更簡單***