【學習筆記】RTSP-Ovnif-GB28181

【學習筆記】RTSP-Ovnif-GB28181

一、RTSP_RTP_RTCP

RTSP(Real Time Streaming Protocol),RFC2326,實時流傳輸協議,是TCP/IP協議體系中的一個應用層協議。

RTP協議詳細說明了在互聯網上傳遞音頻和視頻的標準數據包格式。它是創建在UDP協議上的。

RTCP是實時傳輸協議(RTP)的一個姐妹協議。RTP 使用一個 偶數 UDP port ;而RTCP 則使用 RTP 的下一個 port,也就是一個奇數 port。(RTCP 中的 SR (Sender Report發送端報告)控制分組包含NTP(網絡時間)時間戳和RTP時間戳可用于同步音視頻媒體流。)

簡單理解:

RTP:視頻數據傳輸

RTCP:視頻質量控制

RTSP:視頻控制(開始、暫停、快進等)

一次基本的RTSP交互過程如下,C表示客戶端,S表示服務端。

img

? 1、 首先客戶端連接到流媒體服務器并發送一個RTSP描述請求(DESCRIBE request)

? 2、 服務器通過一個SDP(Session DescriptionProtocol)描述來進行反饋(DESCRIBEresponse),反饋信息包括流數量、媒體類型等信息。

? 3、 客戶端分析該SDP描述,并為會話中的每一個流發送一個RTSP連接建立請求

(SETUPrequest),該命令會告訴服務器用于接收媒體數據的端口

? 4、 服務器響應該請求(SETUP response)并建立連接之后,就開始傳送媒體流(RTP包)到客戶端。

? 5、 在播放過程中客戶端還可以向服務器發送請求來控制快進、快退和暫停等。最后,客戶端可發送一個終止請求(TEARDOWN request)來結束流媒體會話

img

拓展:編碼、封裝

編碼格式:支持H.265、H.264、MPEG4、MJPEG等多種編碼格式;

封裝格式:支持HLS(直播)、RTP、TS(廣播電視)、FLV(監控系統)等主流的封裝格式;

一個常見的視頻流程如下:

攝像機——>網絡——>計算機(顯示器)

?

從功能上來講,是下面的流程(為了更直觀加了封裝流程):

采集——>編碼——>封裝——>傳輸——>解封——>解碼——>顯示

YUV->H.264->RTP->UDP->RTP->H.264->YUV

二、Ovnif

ONVIF(Open Network Video Interface Forum)是一個全球性的開放性標準,旨在促進網絡視頻設備之間的互操作性。

視頻監控中:IPC攝像頭就是一個服務端,它對外提供接口服務(Web Services),并使用RTSP協議傳輸流媒體;客戶端通過ONVIF協議規定的Web Services接口可以獲取攝像頭的RTSP地址,并通過RTSP地址拉取視頻流觀看視頻監控、還可以根據ONVIF協議規范的Web Services接口管理攝像頭。

Web Services就是對外提供接口的一個http服務,客戶端通過調用Web Services提供的接口滿足自己的需求,使用的協議都是基于http的。

ONVIF就是把各個功能定義出來,并且把功能對應的Web Services接口固定下來,包括數據格式,參數等,這樣就形成了一套規范,各個廠商都遵循這套規范就可以互通了。

舉例:海康威視攝像頭與大華 NVR 通過 ONVIF 對接時,無需關注底層協議差異,直接按標準接口交互,而純 RTSP 對接可能因 SDP(SDP 本質上是一種文本格式的元數據描述,用于告知接收端 “流的類型、編碼方式、傳輸參數” 等信息,類似 “流的身份證”) 描述格式不同導致媒體協商失敗。

三、GB28181

參考文獻:史上最全的GB/T 28181介紹(國標28181資料大全) - 知乎

國家標準。采用了基于SIP(Session Initiation Protocol)的網絡視頻傳輸協議,規范了視頻監控設備之間的通信方式。這使得來自不同廠商的設備可以實現統一的通信協議,并在同一平臺上實現集成和管理。

GB28181協議會話通道實際上使用的是SIP協議,并且在SIP協議的基礎之上做了些私有化處理。

SIP中一個比較重要的概念是用戶代理(User Agent),指的是一個SIP邏輯網絡端點,用于創建、發送、接收SIP消息并管理一個SIP會話。SIP用戶代理又可分為用戶代理客戶端UAC(User Agent Client)和用戶代理服務端UAS(User Agent Server)。UAC創建并發送SIP請求,UAS接收處理SIP請求,發送SIP響應。SIP協議會與許多其它的協議協同工作,如SIP報文內容發送會話描述協議(Session Description Protocol,SDP),SDP協議描述了會話所使用流媒體細節,如:使用哪個IP端口,采用哪種編解碼器等等。

SIP的一個典型用途是:SIP會話傳輸一些簡單的經過報文的實時傳輸協議流,RTP本身才是語音或視頻的載體。

在GB28181協議中,聯網系統在進行視音頻傳輸及控制時應建立兩個傳輸通道: 會話通道和媒體流通道。會話通道用于在設備之間建立會話并傳輸系統控制命令; 媒體流通道用于傳輸視音頻數據, 經過壓縮編碼的視音頻流采用流媒體協議RTP/RTCP傳輸。GB28181協議中具體通信協議結構圖如下圖1所示:

img

會話通道中,注冊、實時視音頻點播、歷史視音頻的回放等應用的會話控制采用SIP協議IETF RFC3261中規定的REGISTER、INVITE等請求和響應方法實現, 歷史視音頻回放控制采用SIP擴展協議IETF RFC29765規定的INFO方法實現,前端設備控制、信息查詢、報警事件通知和分發等應用的會話控制采用SIP擴展協議IETF RFC34287規定的MESSAGE方法實現。

四、備注

GB28181:雖然 GB28181 標準本身定義了一套基于 SIP 的信令交互和媒體傳輸機制,用于實現設備之間的互聯互通,但在實際應用中,一些 GB28181 平臺或設備可能會借助 RTSP 來拉取視頻流。比如,當 GB28181 平臺需要與只支持 RTSP 輸出的設備進行對接時,就需要通過 RTSP 協議從這些設備拉取視頻流,然后再將其轉換為符合 GB28181 標準的格式進行處理和分發。

ONVIF:ONVIF 協議在設備發現、能力查詢等過程中,會獲取設備的相關信息,其中就包括設備支持的視頻流地址,而這個地址很多時候就是 RTSP 地址。通過獲取到的 RTSP 地址,ONVIF 客戶端可以使用 RTSP 協議來拉取設備的視頻流,以實現視頻監控、錄像回放等功能。例如,ONVIF 設備(如攝像機)會暴露一個 RTSP 端點(URL),客戶端通過 ONVIF 信令獲取該端點后,再使用 RTSP 協議(如發送SETUP、PLAY、TEARDOWN等請求)控制媒體流的傳輸。可以理解為Ovnif就是RTSP的一層高級封裝吧。

五、總結

維度RTSPGB28181ONVIF
協議性質流媒體傳輸協議(IETF 國際標準)中國安防行業應用層標準(國家標準)國際設備互操作應用層標準(開放性行業標準協議)
層級應用層(RFC 2326)應用層(基于SIP網絡視頻傳輸協議擴展)應用層(基于 Web Services)
信令機制信令層(Signaling Layer)負責建立、控制和釋放媒體會話(如會話初始化、參數協商)文本格式命令信令命令:PLAY(開始播放)、PAUSE(暫停)、TEARDOWN(斷開連接)
舉例:獲取媒體描述(DESCRIBE);返回關鍵字段:m=video(媒體類型)、a=rtpmap(編碼格式 H.264)、a=control(流控制標識)

典型流程:OPTIONS查詢能力 → DESCRIBE獲取 SDP → SETUP建立傳輸通道 → PLAY啟動流 → TEARDOWN斷開連接。
SIP+XML(兼容 SIP 協議框架)
舉例:平臺向設備請求(INVITE)實時流,設備返回 200 OK,并在 SDP 中告知媒體端口(如 RTP 端口 5004),平臺通過 RTP 接收流。
SOAP/XML(Web 服務接口)
信令通過 SOAP 協議封裝為 XML 格式,用于設備發現、能力查詢、流控制等。
舉例:獲取媒體流地址(GetStreamUri)客戶端向設備服務接口發送 SOAP 請求;服務器響應(包含 RTSP URL)
媒體傳輸媒體層則在會話建立后實際傳輸和處理媒體數據。支持 RTP/UDP 或 RTCP(需配合使用)RTP/RTCP(PS 封裝或裸流)RTSP/RTCP(可調用 RTSP 接口拉流)
應用場景通用流媒體(如視頻會議、直播)國內安防監控系統互聯跨廠商安防設備互操作

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/83412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/83412.shtml
英文地址,請注明出處:http://en.pswp.cn/web/83412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

stm32-c8t6實現語音識別(LD3320)

目錄 LD3320介紹: 功能引腳 主要特色功能 通信協議 端口信息 開發流程 stm32c8t6代碼 LD3320驅動代碼: LD3320介紹: 內置單聲道mono 16-bit A/D 模數轉換內置雙聲道stereo 16-bit D/A 數模轉換內置 20mW 雙聲道耳機放大器輸出內置 5…

RAG技術全解析:從概念到實踐,構建高效語義檢索系統——嵌入模型與向量數據庫搭建指南

一、RAG技術概述:為什么需要RAG? 1.1 什么是RAG? RAG(Retrieval-Augmented Generation)是一種結合檢索與生成能力的AI架構。其核心思想是通過外部知識庫動態增強大語言模型(LLM)的生成能力&…

【資源分享】手機玩轉經典游戲!小雞模擬器1.9.0:PSP/NDS/GBA完美運行!

阿燦今天給大家推薦一款小雞模擬器,這是一個老款PC和掌上游戲機模擬器。完美模擬街機(fbamamemameplus).PS、PSP、FC(NES)SFC(SNES)、GBA、GBC、MD、NDS、DC、NGP、WS (WSC) PCE、ONS 等18款經典掌機游戲機。小雞模擬器同時也提供海量熱門的漢化版游戲免…

matlab脈沖信號并繪制波形2025.6.11

以下是一個使用MATLAB生成5V、10MHz脈沖信號并繪制波形的示例代碼: % 5V 10MHz脈沖信號仿真 clc; clear; close all; % 參數設置 voltage = 5; % 信號幅度(V) frequency = 10e6; % 脈沖頻率(10MHz) duty_cycle =

ElasticJob初探

依賴版本 JDK版本是&#xff1a;jdk17 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.4</version></parent>zookeeper elasticjo…

【Vue3】(三)vue3中的pinia狀態管理、組件通信方式及總結、插槽

目錄 一、vue3的pinia 1、什么是pinia&#xff1f; 2、為什么Vue3選擇pinia&#xff1f; 3、使用pinia的好處 4、安裝pinia 2、項目配置 3、存儲/讀取pinia中的數據 4、修改pinia中的數據 5、storeToRefs&#xff08;保持store中數據的響應式&#xff09; 6、getters 7、…

WEB3全棧開發——面試專業技能點P1Node.js / Web3.js / Ethers.js

一、Node.js 事件循環 Node.js 的事件循環&#xff08;Event Loop&#xff09;是其異步編程的核心機制&#xff0c;它使得 Node.js 可以在單線程中實現非阻塞 I/O 操作。 &#x1f501; 簡要原理 Node.js 是基于 libuv 實現的&#xff0c;它使用事件循環來處理非阻塞操作。事件…

大數據學習棧記——Neo4j的安裝與使用

本文介紹圖數據庫Neofj的安裝與使用&#xff0c;操作系統&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安裝 Neofj可以進行官網安裝&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我這里安裝是添加軟件源的方法 最新版…

web架構4------(nginx常用變量,nginx中英文自動匹配,lnmp網站架構,正向代理,反向代理,負載均衡)

一.前言 本期來介紹nginx最后幾個知識點&#xff0c;看著要說的內容很多&#xff0c;其實一點也不多&#xff0c;都是所見即所得的東西。 二.nginx常用變量 2.1 常用變量 $args 請求中的參數&#xff0c;也叫查詢參數&#xff0c;如www.123.com/1.php?a1&b2的$args就是…

openeuler系統(CentOs)圖形化桌面黑屏/丟失(開啟VNC服務沖突)

1. VNC服務開啟如下&#xff1a; https://zhuanlan.zhihu.com/p/5049263261 在centos8系統上使用tigervnc-server搭建VNC_centos8 tigervnc-server-CSDN博客 2. 上述操作完成后&#xff0c;連接VNC仍會出現黑屏&#xff0c;則需要編輯/root/.vnc/xstartup&#xff1a; [運維…

MySQL:Prepared Statement 預處理語句

預處理語句&#xff08;Prepared Statements&#xff09;是 MySQL 中一種用于執行 SQL 查詢的高效、安全的方法。通過使用預處理語句&#xff0c;可以顯著提升查詢性能&#xff0c;并防止 SQL 注入攻擊。本文將詳細介紹 MySQL 預處理語句的概念、使用方法及其優勢。 一、預處理…

EPPLUS——CAD c#讀寫EXCEL的第三方庫

EPPLUS(可支持NET35) 在 CAD 的 C# 二次開發中&#xff0c;使用 EPPLUS 庫處理 Excel 文件具有以下顯著優點&#xff0c;尤其在兼容性、便捷性和性能等方面契合 CAD 項目的需求&#xff1a; 1. 跨.NET 版本兼容性強&#xff0c;適配 CAD 多環境部署 多框架支持&#xff1a;EP…

Linux知識回顧總結----進程狀態

本章將會介紹進程的一些概念&#xff1a;馮諾伊曼體系結構、進程是什么&#xff0c;怎么用、怎么表現得、進程空間地址、物理地址、虛擬地址、為什么存在進程空間地址、如何感性得去理解進程空間地址、環境變量是如何使用的。 目錄 1. 馮諾伊曼體系結構 1.1 是什么 1.2 結論 …

微信小程序之bind和catch

這兩個呢&#xff0c;都是綁定事件用的&#xff0c;具體使用有些小區別。 官方文檔&#xff1a; 事件冒泡處理不同 bind&#xff1a;綁定的事件會向上冒泡&#xff0c;即觸發當前組件的事件后&#xff0c;還會繼續觸發父組件的相同事件。例如&#xff0c;有一個子視圖綁定了b…

Android Test3 獲取的ANDROID_ID值不同

Android Test3 獲取的ANDROID_ID值不同 這篇文章來說明上一篇文章中說到的一個現象&#xff1a;在同一個項目中&#xff0c;創建不同的 app module&#xff0c;運行同一段測試代碼&#xff0c;獲取到的 ANDROID_ID 的值不同。 我也是第一次認真研究這個現象&#xff0c;這個還…

JSON 和 LabVIEW Data Types 互相轉換

使用JSONtext C:\Program Files (x86)\National Instruments\LabVIEW 2021\examples\JDP Science\JSONtext JSONtext LabVIEW Data Types.vi

docker和docker-compose的版本對應關系怎么看?

docker和docker-compose的版本對應關系怎么看&#xff1f;最近在安裝這兩個工具&#xff0c;像知道他們的版本對應關系&#xff0c;查了不少資料才找到。 雖然 Docker 和 Docker Compose 的版本并不嚴格綁定&#xff0c;但是在某些情況下&#xff0c;新版本的 Docker Compose …

郵科ODM攝像頭:多維度護航高鐵安全系統方案解析

?高鐵作為現代交通的重要支柱&#xff0c;其安全穩定運行依賴于高效的監控體系。攝像頭系統作為高鐵安全管理的“視覺感知中樞”&#xff0c;憑借多場景覆蓋、智能分析以及環境適應性設計&#xff0c;在行車安全、設備維護、乘客服務等方面發揮著不可或缺的作用。本文將從技術…

盒模型小全

CSS盒子模型詳解 1. 定義 CSS盒子模型是用于描述HTML元素在頁面中布局和表現的核心概念之一。在CSS中&#xff0c;所有HTML元素都被視為一個矩形的盒子&#xff0c;這些盒子封裝了周圍的HTML元素&#xff0c;并允許在其他元素和周圍元素邊框之間的空間放置內容。 2. 組成部分…

自定義鼠標效果 - 瀏覽器擴展使用教程

自定義鼠標效果 - 瀏覽器擴展使用教程 這里寫目錄標題 自定義鼠標效果 - 瀏覽器擴展使用教程功能特點安裝方法Chrome/Edge瀏覽器 使用指南1. 更改鼠標光標樣式2. 啟用鼠標軌跡效果3. 自定義軌跡效果點狀/彩虹/漸隱軌跡&#xff1a;表情軌跡&#xff1a; 管理自定義光標支持的文…