6.3.WebRTC中的SDP類的結構

在上節課中呢,我向你介紹了sdp協議,
在這里插入圖片描述
那這節課呢,我們再來看看web rtc中。是如何存儲sdp的?也就是sdp的類結構,那在此之前呢?我們先對sdp的內容啊,做一下分類。因為在上節課中呢,雖然我們介紹了它的協議,但是具體對于stp中它到底包含了哪些內容?
在這里插入圖片描述

實際我們并沒有做詳細的介紹,對吧?那所以呢,我們今天先把這塊內容給大家做一個介紹,之后呢,我們再來看看web rtc是如何存儲它的。好,那這張圖呢?就是對stp內容的一個分類。那從大的方面來看呢?sdp它包括了會話層和媒體層,對吧?那會話層呢?包含的信息比較少。包括了vost這些呢,

我們在上節課中都向你做了介紹,那重點呢是媒體層。那我們對媒體層呢,又做了劃分,分成了四大塊,第一個呢是媒體信息。第二個呢,是網絡描述,第三個呢,是安全描述,最后一個是服務質量。對于媒體信息來說,最關鍵的是m行對吧?等于后邊一堆內容,包括了傳輸協議。

那這些呢?我們在上節課都做過介紹,那除此之外呢?與媒體信息相關的還有很多的屬性。比如說ssrc
rtp map,也就是對pilot type做進一步說明的。還有呢FM tp也就是format parameter,它是對媒體信息一些參數的進一步說明。
在這里插入圖片描述

好,那對于網絡描述涉及的內容就比較多了,那首先呢是c。它代表的是connection對吧?但是對于外部rtc來說呢,它不使用stp標準中的這個c行。所以對于這一行呢,

我們不必過多的了解,那除了之外呢,跟網絡相關的,還有candidate group。rt cp mu x等等等,這一堆都屬于與網絡相關的內容好,那第三個呢?是安全描述。那我們都知道,對于外部rtc來說呢,它對安全是比較看重的,所以在傳輸數據的時候呢,它會對rtp包的內容進行加密。那在加密時,它使用的一些信息啊,
在這里插入圖片描述

都是從安全描述這部分內容中提取出來的,比如說用戶在連接的時候。他要發送ice uf rag以及ice password。對這個用戶呢進行驗證,是否是有效的用戶?那除此之外呢,還有fingerprint進行指紋的驗證,這些呢,都是與安全相關的,那后邊兒呢,我們會做詳細介紹。

好,最后一個是服務質量相關的,它通過一系列的rt CP feedback來對外部rtc的服務質量進行控制。那這就是y八二七csdp中媒體相關的內容,

那通過這樣一個分類呢,我們就很容易知道y八二七c的sdp中。包括了哪些內容好?
在這里插入圖片描述

那下面呢?我們再來看看對于web rtc的stp分類,那我們前面介紹的這些內容呢?是從它的功能上做分類的,那對于外包tc代碼對stp進行分類的時候呢?是有一些區別的,那么來看一下啊,那從大的方面來說,web rtc對stp還是分為繪畫描述和內容描述,這個內容描述呢,實際就是媒體描述。那對于內容描述,

它又分成了內容信息傳輸,信息和內容組這三項。那這就與我們剛才介紹的不太一樣了,對吧?剛才我們介紹的分類呢,是從功能上分成了媒體描述。安全描述,網絡描述,服務質量描述對吧?那對于外部rtc來說呢?它是按照這個內容傳輸和內容組這樣一個分類來進行數據的組織的。那對于這些內容,具體web rtc是如何做的呢?我們來看這張圖就比較清晰了,那這張圖呢?
在這里插入圖片描述

就是web rtc的sdp類關系圖。那我們可以看到總的點呢,是在這里就是session description,它代表一個sdp,那在這個類中呢?是包括了三大項,那第一項呢?就是content information第二項呢?是transport information。那第三樣呢,是content group對吧?那緊接著是content information類,那在這個類中呢,包括了content的名字。媒體的類型兒協商是否被拒絕?
在這里插入圖片描述

bandle only代表的是是否共用同一個傳輸通道?那最后一個呢,是媒體的描述,也就是說媒體信息中它包括了哪些內容是在這里做了描述?那對于這個類來說呢,就是對應的stp中的m行,其中的audio呢,表示的就是content information中的media protocol type這個字段。那對于這個媒體中的更詳細的信息呢,是記錄在media content description這個類結構中。那我們來看一下這個類中包含了哪些內容?那比如說包含了rt cp mu xr TCP,reduced size protocol,rtp hydro extension。等等等,

一系列的這個字段,實際這些字段呢,是與sdp中每個媒體流的相關屬性,是一一對應的。比如說在視頻的這個媒體中呢,它包含了rt cp mu x這個屬性,如果有這個屬性,那么對應的。在media content description中呢,它的rt cp mu x這個字段就為true對吧?再比如說rtc pre size。對應的就是media content description中的rtc t reduced size這個字段,那從中呢,我們就可以看到。這個media content description就是sdp中每個媒體的主性定義,

對吧?那我們接著再往下看啊,那在這個類中呢,有一個send stream這個字段。那這個字段呢,是stream parameters victor是這個類型,那對應的呢,就是stream parameter。它里邊包括了谷歌pids src。s ssc group.那這些信息呢,也是與stp中的內容一一對應的,我們來看一下啊,那它就是與媒體層中的。s slc相關屬性一一對應的,

比如說s slc group就在這里呢,有對應的值。呢在這里也有對應的值,對吧?那在stream parameter這個類中呢?又包括了rids。那它呢,是rid description這個類結構。在這個類結構中,包括了rid direction payload types這些字段,那這里的payload types就代表的是。媒體層的payload type,那對于每一個payload type的解釋是,通過媒體層的這個屬性,rtp map來進行進一步說明的。

對吧,那這些信息呢,都會被web rtc進行解析,把它們保存到red description這個結構中。好這樣呢,我們就將中的content這個結構給大家講解清楚了,那之后呢,我們再來看看transport information。那對于transport information來說呢,它包括了content name,還有description,那description呢,又是transport description。這個類定義的,那在這個類中呢?

它包括了IC EU flag ice password ice mode,那這些信息呢?也是在媒體層定義的,那在每個媒體層下邊都會有ice option si ceu frag ice password。fingerprint setup對吧?那這里的每一項呢?其實就是與transport description中的每一項相對應的,那這樣呢,就可以做一個直接的翻譯,如果在這個媒體層包含這一項,那其中對應的值呢?就會置位或者是取其中的值,那如果沒有的話呢,這里邊就是鈉。OK,

這是傳輸層,那對于content group來說呢?它是與sdp中的a group相對應的,那么在group中呢?有bandle。就是對音頻和視頻做一次綁定,其中的零呢代表的是音頻,一呢代表的是視頻。所以在content group中的semantics就是b。那content name呢?就是零或者是一,那如果你仔細看這張圖啊,其實有一個非常有意思的地兒,就是content name。那這個content name呢?

就是group中的零或者是一,那除了content group有content name之外呢中?也有content name在content information中呢?也有name,那實際上這三個name啊,是串在一起的。比如說對于一個音頻來說,那它的內幕呢?是零那中的content name也是零。content group中的內幕也是零,那這樣就將它們三個串在一起,所以如果我們是通過這個結構去生成一個stp信息的話。那web rtc就會根據它們的content name來一項一項的把它們碼列在一起,那這樣輸出之后我們看到的。就是在每一個媒體層中都包含了它所對應的一些屬性,

那這樣在構造每個媒體信息的時候呢?在stp中,它的所有的屬性信息都會列在每一個媒體層的下邊兒。那通過這種方式,外部rtc就很容易進行兩者的交換,也就是說。內存中的類交換成sdp文本,或者是拿到一個sdp文本,可以很容易的在內存中呢,構造出這樣一個類關系圖。那以上呢,就是我們這節課所要向你介紹的內容,那在這節課中呢,我們將sdp做了兩種類型的分類,那第一種類型呢,

是按功能分。我們可以知道sdp中包含了媒體信息,網絡信息,安全信息以及服務質量相關的信息,對吧?而對應到wtc源碼來說呢,它是按組織結構對sdp進行分類的,它將sdp分成了三大類,第一個呢是content information,第二個是transport information。第三個呢,是content group,那通過這個結構的分類,它可以很容易的將一個sdp文檔轉換成類關系圖,也可以將類關系圖。

非常方便的轉換成stp文檔,對吧?那至于哪種分類好,你要站在不同的角度,如果從更容易理解的角度上來說。想知道sdp中包含了哪些內容,我們就應該從功能的角度去分類,那從類型的轉換來說。就是從文本轉換成內存,從內存轉換成文本,再把rtc的這種分類呢?更有優勢是吧?好,那我們本節課的重點呢?當然就是這個類關系圖了,

因為我們只有掌握了這個類關系圖之后,我們后邊去看外邊提示源碼的時候。才能理解它是怎么做的,所以這張圖呢,大家一定要多看一看,把它記在心里好,那我們今天的課呢,就到這里,謝謝。

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

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

相關文章

Python+jieba+wordcloud實現文本分詞、詞頻統計、條形圖繪制及不同主題的詞云圖繪制

目錄 序言:第三方庫及所需材料函數模塊介紹分詞詞頻統計條形圖繪制詞云繪制主函數 效果預覽全部代碼 序言:第三方庫及所需材料 編程語言:Python3.9。 編程環境:Anaconda3,Spyder5。 使用到的主要第三方庫:…

python之pyqt專欄1-環境搭建

#python pyqt# python:3.11.6 pycharm:PyCharm Community Edition 2023.2.5 pyqt6 python安裝 官網下載:Python Releases for Windows | Python.org pycharm社區版安裝 官網地址:Download PyCharm: Python IDE for Professional…

golang學習筆記——創建項目

創建項目 從Go 1.8開始,將GOPATH設置為環境變量不是必需的。如果我們沒有設置一個,Go使用默認的GOPATH為$HOME/go。可以使用go env查看環境變量信息。 創建項目 # 創建項目目錄 mkdir helloLog cd helloLog # 使用go mod初始化項目,生成go.mod文件 go…

TikTok shop印尼重啟電商征程:與當地平臺合作開啟新篇章!——站斧瀏覽器

經歷了一個半月的間隔,TikTok Shop成功重返印度尼西亞市場。據國際媒體報道,TikTok計劃通過與印尼本地電子商務平臺的合作,重啟其在該國的電商業務。 Temmy Satya Permana,印尼合作社和中小企業部的官員,證實了這一重…

【廣州華銳互動】VR線上課件制作軟件滿足數字化教學需求

隨著科技的不斷發展,虛擬現實(VR)技術在教學領域的應用逐漸成為趨勢。其中,廣州華銳互動開發的VR線上課件制作軟件更是備受關注。這種工具為教師提供了便捷的制作VR課件的手段,使得VR教學成為可能,極大地豐…

thinkphp6 不支持:redis錯誤

起因: 使用 redis 時候,thinkphp 報錯。 解決方法: 打開 php.ini 文件,增加 extensionphp_redis.dll 即可

Java架構師發展方向和歷程

目錄 1 導論2 架構師的三觀培養3 架構師的遇到的困難4 架構師職責5 架構師之路6 架構師的發展方向7 應用領域架構師8 業務架構師9 系統架構師和企業架構師10 技術路線和演進規劃11 一線大廠的技術生態拓張案例12 如何推進項目落地想學習架構師構建流程請跳轉:Java架構師系統架…

CUDA與GPU編程

文章目錄 CUDA與GPU編程1. 并行處理與GPU體系架構1.1 并行處理簡介1.1.1 串行處理與并行處理的區別1.1.2 并行處理的概念1.1.3 常見的并行處理 1.2 GPU并行處理1.2.1 GPU與CPU并行處理的異同1.2.2 CPU的優化方式1.2.3 GPU的特點 1.3 環境搭建 CUDA與GPU編程 1. 并行處理與GPU體…

城市管理實景三維:打造智慧城市的新引擎

城市管理實景三維:打造智慧城市的新引擎 在城市管理領域,實景三維技術正逐漸成為推動城市發展的新引擎。通過以精準的數字模型呈現城市真實場景,實景三維技術為城市決策提供了全新的思路和工具。從規劃設計到交通管理,從環境保護到…

嵌入式系統在工業自動化中的應用

嵌入式系統在工業自動化中的應用非常廣泛,它們通過集成控制和實時響應能力,實現了生產線的自動化、智能化和高效化。以下將詳細介紹嵌入式系統在工業自動化中的幾個重要應用領域,并提供一些示例代碼。 1. PLC(可編程邏輯控制器&a…

【開源】基于Vue和SpringBoot的學校熱點新聞推送系統

項目編號: S 047 ,文末獲取源碼。 \color{red}{項目編號:S047,文末獲取源碼。} 項目編號:S047,文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 新聞類型模塊2.2 新聞檔案模塊2.3 新…

Python模塊之yaml:簡化配置與數據解析

更多Python學習內容:ipengtao.com YAML(YAML Aint Markup Language)是一種人類可讀的數據序列化格式,常用于配置文件和數據傳輸。在Python中,可以使用PyYAML模塊來處理YAML格式的數據。本文將深入介紹PyYAML的基礎用法…

力扣H指數——簡約做法

Problem: 274. H 指數 文章目錄 思路解題方法復雜度Code 思路 最后的結果一定不會超過下標個數。應為文章也要大于這個h,h超過了文章總數,就永遠不會存在這么多的文章滿足條件,所以只需要循環下標,那么最后的結果呢? 解…

AI質差小區優化效果評估

1. 下行流量/PRB利用率和貶損用戶的關系 通過分析長期貶損質差小區:下行PRB利用率/流量和小區平均每小時質差用戶數成正比例關系,即小區的貶損用戶會隨PRB利用率/流量的增長而增長。 2. 貶損用戶和流量走勢 年前平均每天流量平穩的情況下,通…

關于JS stack trace解決辦法

問題描述 npm run serve啟動前端項目時&#xff0c;控制臺輸出下圖一堆的文字&#xff0c;JS stack trace , 問題現象&#xff1a; JS stack trace Security context: 0000017B93ACFB61 <JS Object>1: init_scope_vars [0000017B93A04381 <undefined>:~3382] [p…

LightPicture - 企業/團隊圖床系統安裝搭建教程說明文檔

LightPicture - 企業/團隊圖床系統安裝搭建教程說明文檔 使用thinkphpvue開發&#xff0c;前后端分離&#xff1b;根據安裝教程安裝即可使用&#xff1b; 程序功能 ?支持第三方云儲存&#xff0c;本地、阿里云OSS、騰訊云COS、七牛云KODO、又拍云USS、華為云OBS等等 ?支持多…

60V/80V/90V降12V降5V 3A4A電流DCDC同步降壓芯片

60V/80V/90V降12V降5V 3A4A電流DCDC同步降壓芯片WD5105 一、概述 WD5105是一種高性能的DCDC同步降壓芯片&#xff0c;適用于將60V/80V/90V的電壓降至12V和5V&#xff0c;并可提供高達3A4A的電流。這款芯片具有高效率、低噪聲、高穩定性等優點&#xff0c;適用于各種需要高電壓…

如何在3dMax中實現創建對象時自動指定材質?

如何在3dMax中實現創建對象時自動指定材質&#xff1f; 我們在某些情況下是否希望為創建的對象指定默認材質呢&#xff1f;如果有這樣的需求請不用擔心&#xff0c;解決方案就在這里啦。它并不有多么復雜&#xff0c;但展示了如何使用NodeEventCallback在使用此回調系統的節點上…

北京數字孿生賦能工業制造,加速推進制造業數字化轉型

隨著新一代信息技術與實體經濟深度融合進程的加快&#xff0c;企業數字化轉型需求的提升&#xff0c;政策的持續支持&#xff0c;數字孿生將為工業制造、未來生活帶來無限的可能。在制造業數字化大變革時代&#xff0c;以5G、大數據、物聯網、人工智能等為代表的工業4.0&#x…

vue2-axios

下載axios 開發版本&#xff1a;axios.js 生產版本&#xff1a;axios.min.js 搭建服務器&#xff1a;json-server npm i -g json-serverjson-server --watch db.json&#xff08;啟動服務并讀取文件&#xff0c;db.json文件目錄下啟動&#xff09; json-server --watch db.j…