1. 程式人生 > >【GBT28181開發:SIP協議實踐】之實況直播

【GBT28181開發:SIP協議實踐】之實況直播

實況直播(標準中的叫法是 實時點播,但是以前在HW,SE的設計文件裡面是實況,叫習慣了,其實只是個叫法而已 )是整個視訊監控系統中比較核心的一個業務,GBT28181標準中對其也做了詳細的設計。相對於裝置資訊、狀態查詢等業務,其稍微複雜點。 首先訊息型別採用的是INVITE,然後訊息體的描述採用SDP協議。SDP協議的之前已經學習過了,還算簡單:http://blog.csdn.net/longlong530/article/details/9004707 下面介紹下學習的是實況直播的流程,主要通過模擬SPVMN系統向源裝置傳送實況直播請求,在GBT28181標準文件中對應的是實況流程中SIP伺服器和媒體流傳送者互動的子過程。記錄下互動的訊息,詳細研究了下:
轉載請註明出處: http://blog.csdn.net/longlong530 一.環境搭建: 環境準備: http://blog.csdn.net/longlong530/article/details/9176989 UAC(模擬IPC): IP:192.168.10.177(同事人不在~,直接用自己的機子模擬了下) Port:5061 UAS(模擬SIP伺服器): IP:192.168.10.177 Port:5060 SPVMN操作過程: 1.先選擇調測裝置型別 2.開啟UAC.exe完成註冊( http://blog.csdn.net/longlong530/article/details/9179513
 ) 3.點選實時點播啟動,會在左邊的文字框中 v=0 //Version 協議版本o=34020000002020000001 0 0 IN IP4 192.168.43.178 //Origin 所有者/建立者和會話識別符號s=Play //Subject 會話名稱c=IN IP4 192.168.43.178 //Connection Data 連線資訊t=0 0 //Time 會話生命週期m=video 6000 RTP/AVP 96 98 97 //Media(Type、Port、RTP/AVP Profile)a=recvonly //擴充套件屬性定義 a=rtpmap:96 PS/90000 //擴充套件屬性定義a=rtpmap:98 H264/90000 //擴充套件屬性定義a=rtpmap:97 MPEG4/90000 //擴充套件屬性定義y=0100000001 //網上木有查到y的意思,最後在28181標準文件中查到:描述SSRC值f= //網上木有查到y的意思,最後在28181標準文件中查到:描述媒體引數
4.點擊發送訊息,右邊對話方塊即可顯示訊息互動的過程。(圖就不截了~) 二.業務時序圖: 三.訊息詳解: 第一步,UAS-->UAC SPVMN每次實況前,會發送一個BYE訊息,但是該操作在GBT28181標準中並沒有規定。 BYE sip:[email protected]:5061 SIP/2.0CSeq: 2 BYEFrom: <sip:[email protected]>;tag=67051446_53173353_7e47bbc7-c29c-4299-803b-71f7367975bbTo: <sip:[email protected]>;tag=946196600Call-ID: [email protected]: 70Via: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK7e47bbc7-c29c-4299-803b-71f7367975bb_53173353_20235498592802Content-Length: 0SIP/2.0 200 OKVia: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK7e47bbc7-c29c-4299-803b-71f7367975bb_53173353_20235498592802From: <sip:[email protected]>;tag=67051446_53173353_7e47bbc7-c29c-4299-803b-71f7367975bbTo: <sip:[email protected]>;tag=946196600Call-ID: [email protected]: 2 BYEUser-Agent: eXosip/3.6.0Content-Length: 0 第二步,UAS-->UAC 傳送INVITE訊息,請求實況,訊息體用SDP協議描述,其中每個欄位的意義在上面已經介紹了 INVITE sip:[email protected] SIP/2.0Call-ID: [email protected]: 1 INVITEFrom: <sip:[email protected]>;tag=97895568_53173353_401bffa2-3ee4-4d32-81b1-3881df7957d3To: <sip:[email protected]>Max-Forwards: 70Contact: "34020000002000000001" <sip:192.168.10.177:5060>Content-Type: application/sdpRoute: <sip:[email protected]:5061;line=9a1ca01668b5778;lr>Via: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK401bffa2-3ee4-4d32-81b1-3881df7957d3_53173353_24913197787603Content-Length: 227v=0o=34020000002020000001 0 0 IN IP4 192.168.43.178s=Playc=IN IP4 192.168.43.178t=0 0m=video 6000 RTP/AVP 96 98 97a=recvonlya=rtpmap:96 PS/90000a=rtpmap:98 H264/90000a=rtpmap:97 MPEG4/90000y=0100000001f= 第三步,UAC-->UAS 伺服器響應101訊息,表示會話正在正常建立,GBT28181標誌沒有提及該訊息,但是1**的訊息都屬於Informational級別的通知訊息,表示會話正在正常建立。比如網上有的例子還會有180 ring訊息響應等。 SIP/2.0 101 Dialog EstablishementVia: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK4b6c31ac-b631-4c5c-8576-0a82f27a8fbc_53173353_20235503434986From: <sip:[email protected]>;tag=03164492_53173353_4b6c31ac-b631-4c5c-8576-0a82f27a8fbcTo: <sip:[email protected]>;tag=3823092636Call-ID: [email protected]: 1 INVITEContact: <sip:[email protected]:5061>User-Agent: eXosip/3.6.0Content-Length: 0 第四步,UAC-->UAS 伺服器響應200 ok訊息,表示會話建立成功 SIP/2.0 200 OKVia: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK4b6c31ac-b631-4c5c-8576-0a82f27a8fbc_53173353_20235503434986From: <sip:[email protected]>;tag=03164492_53173353_4b6c31ac-b631-4c5c-8576-0a82f27a8fbcTo: <sip:[email protected]>;tag=3823092636Call-ID: [email protected]: 1 INVITEContact: <sip:[email protected]:5061>Content-Type: application/sdpUser-Agent: eXosip/3.6.0Content-Length: 235v=0o=34020000001320000001 0 0 IN IP4 192.168.10.177s=Embedded IPCc=IN IP4 192.168.10.177t=0 0m=video 6000 RTP/AVP 96a=sendonlya=rtpmap:96 H264/90000a=username:34020000001320000001a=password:12345678y=100000001f= 第五步,UAS-->UAC 伺服器返回ACK訊息,最終確認訊息,標誌會話正式建立完成 ACK sip:[email protected]:5061 SIP/2.0Call-ID: [email protected]: 1 ACKFrom: <sip:[email protected]>;tag=03164492_53173353_4b6c31ac-b631-4c5c-8576-0a82f27a8fbcTo: <sip:[email protected]>;tag=3823092636Max-Forwards: 70Via: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK4b6c31ac-b631-4c5c-8576-0a82f27a8fbc_53173353_20235513789448Content-Length: 0 然後媒體流傳送者(UAC)就開始向服務端指定的目的地( o=34020000002020000001 0 0 IN IP4 192.168.43.178 )傳送流媒體,UAC.EXE的截圖:

相關推薦

GBT28181開發SIP協議實踐實況直播

實況直播(標準中的叫法是 實時點播,但是以前在HW,SE的設計文件裡面是實況,叫習慣了,其實只是個叫法而已 )是整個視訊監控系統中比較核心的一個業務,GBT28181標準中對其也做了詳細的設計。相對於裝置資訊、狀態查詢等業務,其稍微複雜點。 首先訊息型別採用的是INVIT

基於GBT28181SIP協議元件開發-----------第一篇環境搭建

SIP協議在安防視訊系統的國標中,有重要應用。從本文開始,講解並開發一套SIP協議元件。現在一般在開發這類系統時,採用的exosip2和osip2庫,這是個開源的SIP協議棧庫。實際遵從國標開發時並不能滿足實際的需要。所以本文依照GBT28181開發的一套SIP元件。該元件支援代理伺服器UAS和代理客戶

基於GBT28181SIP協議元件開發-----------第三篇SIP註冊流程分析實現

原創文章,引用請保證原文完整性,尊重作者勞動,原文地址http://www.cnblogs.com/qq1269122125/p/3941172.html,qq:1269122125。 上兩章節簡要的講解了SIP元件開發介面和開發環境的搭建。在本節將實現Linux 3

Android開發—智能家居系列(二)用手機對WIFI模塊進行配置

名稱 ash 端口 clas 方式 mac class 二階 target 【Android開發—智能家居系列】(二):用手機對WIFI模塊進行配置 http://blog.csdn.net/u010924834/article/details/4949672

JMeter4.0學習(三)SoapUI創建WebService接口模擬服務端以及JMeter測試SOAP協議性能測試腳本開發

test 點擊 下一步 download enc text div 接口模擬 wid 目錄: 創建WebService接口模擬服務端 下載SoapUI 新建MathUtil.wsdl文件 創建一個SOAP項目 接口模擬服務端配置以及啟動 【闡

SpringCloud實踐斷路器Hystrix

一、服務雪崩效應 基礎服務的故障導致級聯故障,進而造成了整個分散式系統的不可用,這種現象被稱為服務雪崩效應。服務雪崩效應描述的是一種因服務提供者的不可用導致服務消費者的不可用,並將不可用逐漸放大的過程。 服務雪崩效應形成的原因 1、服務提供者不可用 硬體故障

學習筆記CG基礎2 Convex Hull

判斷 第一條 尋找 ref 時間復雜度 答案 之前 gin polygon Ahead 10.6.2018 開始第二個算法了 篇章1 前面就不多寫了第一篇裏面的有些代碼後面還用到不重寫了 Beginning 算法2 (EE) 概念 極邊(Extremity Edge): 也

嵌入式軟體工程師面經第二部分-指標

指標簡單型別分析: int p; //這是一個普通的整型變數 int *p; //首先從P 處開始,先與*結合,所以說明P 是一個指標,然後再與int 結合,說明指標所指向的內容的型別為int 型.所以P 是一個返回整型資料的指標 int p[3]; //首先從P 處開始,先與[]結

FileInputStream類讀取數組

NPU email 取數據 new int 字節 void imp col package test; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE

FileInputStream類位元組輸入流

package test; import java.io.FileInputStream; import java.io.IOException; /** * @author shusheng * @description * @Email [email protected] *

開發工具Java開發工具 iedaiu-2017.3環境搭建

1 準備工作 下載地址: 連結: https://pan.baidu.com/s/1fPHvO1vL6PDvWCjSE9NI6w 提取碼: qtsc 參考文件: IntelliJ IDEA 使用教程(2017圖文版) -- 從入門到上癮 2 安裝 2.1 按照正常軟體安裝流程

頭髮篇工作日誌2018.10.9

Shader "Unlit/NewUnlitShader" { Properties { _Color("Color Tint", Color) = (1,1,1,1) _MainTex("MainTex", 2D) = "White" {} _Cu

AIOps下的探索與實踐神州靈雲和Rancher共同舉辦Container Open Talk 沙龍活動

10月13日,由神州靈雲和Rancher Labs共同舉辦的Container Open Talk技術沙龍在北京舉行。現場吸引了近100名技術專家、學者及IT從業者參加。大家與行業大咖一起體驗創新,探討學習交流,共享技術盛宴。來自Rancher Labs、神州

configure如何用automake、autoconf指令生成configure並建立自己的linux tar.gz安裝包初級篇簡單建立-測試

$ tree 2048-c/ 2048-c/ ├── 2048.c ├── 2048.h └── main.c 0 directories, 3 files 然後進入資料夾,執行autoscan生成configure.scan檔案 $ cd 2048-c/ $ ls

U3D效能優化教程——CPU篇靜態批處理&靜態批處理

這篇文章由唐三胖ヾ(•ω•`)o網路整理總結,針對DrawCall概念的系列優化教程。 通過這篇文章,你可以知道 1)動態/靜態批處理的概念 2)什麼時候會動態批

開發工具Java開發工具 iedaiu-2017.3安裝和配置

1 準備工作 下載地址: 連結: https://pan.baidu.com/s/1fPHvO1vL6PDvWCjSE9NI6w 提取碼: qtsc 相關文件: https://blog.csdn.net/flysun3344/article/details/79927

開發工具Java開發工具 iedaiu-2017.3安裝記錄

1 準備工作 下載地址: 連結: https://pan.baidu.com/s/1fPHvO1vL6PDvWCjSE9NI6w 提取碼: qtsc 相關文件: https://blog.csdn.net/flysun3344/article/details/79927

Codeforces Round #248 (Div. 2) B題 資料結構樹狀陣列

題目大意:給n(1 ≤ n ≤ 105)個數據(1 ≤ vi ≤ 109),其中有m(1 ≤ m ≤ 105)個問題,分兩種,第一種:給出l,r,讓你求出v[l],v[r]之間的所有資料和;第二種:

Java 安全技術探索路系列J2SE安全架構安全管理器

一 安全管理器的功能 安全管理器是一個允許程式實現安全策略的類,它會在執行階段檢查需要保護的資源的訪問許可權及其它規定的操作許可權,保護系統免受惡意操作攻擊,以達到系統的安全策略。 安全管理器負責檢查的操作主要包括以下幾個: 建立一個新的類載入器

Android開發 藍芽連線狀態Android實時檢測藍芽連線狀態

http://blog.csdn.net/dengpeng0419/article/details/53178730 本程式能實時監聽並檢測Android藍芽的連線狀態,無論是通過介面上的switch按鈕開啟/關閉手機藍芽,還是手動開啟/關閉手機藍芽,程式都能監聽當前的狀態