那今天呢?我們來看一下y8 rtc的媒體協商,那實際上在我們之前的課程中呢?我已經向你介紹過y8 rtc的媒體協商了。只不過呢,角度是不一樣的,在之前介紹外邊tc媒體協商的時候呢,我們是從應用的角度來看。那web rtc為什么要進行媒體協商?媒體協商在整個音視頻的傳輸過程中起到了什么作用?那么今天呢?我們換一個角度,從源碼的角度來看,
y8 rtc它是如何進行媒體協商的?具體它是怎么做到這個媒體協商這個作用的?那對于我們這節課來說呢,我們主要介紹一下我們這一章要介紹哪些知識點,那首先呢,我們要了解媒體協商的意義。
那在之前的課程中呢,我們已經介紹了雙方在進行音視頻通訊之前呢,要進行一些必要的媒體協商。那這些協商的內容是什么呢?
比如說雙方都支持哪些音視頻的編解碼器,比如說我用的是VP 8,結果呢?你只支持二六四。那這樣呢,雙方是沒法進行通訊的,那除了編解碼器之外
傳輸上的一些內容也需要進行協商。比如我們使用的配是多少?傳輸協議是udp還是TCP?那在udp之上,我們使用的rtp與rt CP是共用同一個傳輸通道還是分別的兩個通道?那這些呢,都是在整個媒體協商過程中需要完成的事情,所以總結出一句話就是什么事兒大家要商量著來。我要告訴你,我支持哪些編解碼器,支持什么樣的傳輸協議,那同時呢,你也告訴我,
你所支持的都有哪些?這樣呢,我們商量好之后就可以進行后續的工作了,那這是媒體協商意義,就是什么事兒都要商量著來。那在媒體進行協商的過程中,實際信令起著非常關鍵的作用。那我們在介紹信令的時候呢?我向你介紹過。
那其中呢,還有一個重要的消息就是message在整個媒體協商的過程中,我們的answer以及offer都是通過message這個消息進行進行交換的。實際我們在進行信令的時候呢,做過這塊兒的講解,我們要想進行媒體協商,
那信令在其中起著至關重要的作用,這點我們要知道。那在禁令進行交換的時候,那信令里邊使用的就是sdp協議,那對于外包來說,為什么要使用sdp協議?這個我們也要清楚。呢其實是一個非常古老的協議,是二零零六年就已經推出這個規范了,它采用的格式呢?是這種格式。那它相較于XML這種格式來說呢,它的格式更緊湊,也就是說同樣的信息,它占用的空間更小。
而XML呢,更適合大規模的,結構化的組織,所以它占用的這個空間呢,就會大很多。那我們在進行網絡傳輸的時候呢,實際是希望這個數據越小越好,越緊湊越合適,那如果你要傳一個更大的數據,它占的網絡帶寬就會越多。那這就導致失敗的可能性會越高,所以我們在進行傳輸的時候呢,都有一個潛規則,就是讓數據越小越好。那這是使用的一個最主要的原因,
那除此之外呢,采用的方式也更有利于我們的讀取與寫入。它就像我們以前使用的,非常老的配置文件點in I,這種配置文件那讀寫起來呢,都非常的方便。那這也是web rtc為什么會選擇stp的一個很重要的原因好,那以上呢?我就介紹了媒體協商,它的意義是什么?新令在其中起到作用,以及為什么選擇sdp好,那下面呢?我們就來看一下我們這一章主要介紹哪些內容?那無非呢,
就是我們之前介紹過幾個非常重要的點,那第一個呢就是sdp協議對吧?我們要知道sdp它的協議什么?在這個協議中,web rtc做了哪些修改?那這是我們必須要了解的,而且呢,可以說是我們理解web rtc的一個非常重要的內容。那只有你將里邊的每一個字段都了解清楚了,你才知道web rtc里頭的代碼為什么要那么寫才能讀懂它的代碼?這是第一個點,我們要介紹的是sdb協議。那
第二個呢?就是offer的創建,我們前面介紹過如何通過web rtc的API來創建offer,
但對于這個API內部,它的邏輯具體是怎么做的?怎么創建的這個offer我們就不知道了,那這些內容呢?就是我們這一章所要介紹的重點,除了offer之外呢?answer也是類似的。那實際上offer與answer除了類型不一樣之外,里邊的內容呢,都是一樣的,它里邊會包含你支持了哪些編輯碼器?使用的傳輸協議是什么?數據是否進行加密等等,這些內容呢?都是在offer跟a中進行描述的。
那當我們有了offer跟answer之后,剩下的就是協商,那對于外邊tc來說,它是如何進行媒體協商的呢?實際有兩個API,一個是side local description,那當我們調用這個API的時候,如果同時擁有了offer跟answer,在它內部呢,就會進行媒體協商。媒體協商的過程中呢,就會進行網絡傳輸的創建,編解碼器的創建等等,這些呢,都是在set local description中實現的。
那當只有某一項的時候,比如只有offer或者answer的時候,那他只做其中的一半工作,那剩下的一半工作呢,要交給下一個API,也就是set remote description來進行完成。只有這兩個API全部調用完成之后,那底層的媒體協商過程才真正結束掉。
所以對于我們本章來說呢,主要就是讓你了解如何創建offer answer,讓你知道web rtc是如何。通過調用side local description以及side remote description,最終實現媒體協商的對這就是我們這章所介紹內容。那下面呢,我們就開始我們這一章內容的講解。