webrtc和rtp 一
pion的datachannel示例
zoom公司大家其實都知道,會議的體驗很好,因為他們善用了datachannel,有興趣大家可以仔細研究,推敲,到了今天,技術和核心技術得不到大家的理解,很多人依然認為技術可以獲取,缺的是錢,事實上,兩個都缺。sctp協議可以適用tcp,也可以使用udp,zoom公司在乙個版本中使用datachannel傳輸rtp資料,原因是什麼?為了體驗和效率。
>
>
>
realtime communication with webrtctitle
>
rel=
"stylesheet"
href
="css/main.css"
/>
head
>
>
>
realtime communication with webrtch1
>
"datachannelsend"
disabled
placeholder
="press start, enter some text, then press send."
>
textarea
>
"datachannelreceive"
disabled
>
textarea
>
"buttons"
>
"startbutton"
>
startbutton
>
"sendbutton"
>
sendbutton
>
"closebutton"
>
stopbutton
>
div>
src=
"">
script
>
src=
"js/main.js"
>
script
>
body
>
html
>
'use strict'
;var localconnection;
var remoteconnection;
var sendchannel;
var receivechannel;
var pcconstraint;
var dataconstraint;
var datachannelsend = document.
queryselector
('textarea#datachannelsend');
var datachannelreceive = document.
queryselector
('textarea#datachannelreceive');
var startbutton = document.
queryselector
('button#startbutton');
var sendbutton = document.
queryselector
('button#sendbutton');
var closebutton = document.
queryselector
('button#closebutton');
startbutton.onclick = createconnection;
sendbutton.onclick = senddata;
closebutton.onclick = closedatachannels;
function
enablestartbutton()
function
disablesendbutton()
function
createconnection()
function
oncreatesessiondescriptionerror
(error)
function
senddata()
function
closedatachannels()
function
gotdescription1
(desc)
function
gotdescription2
(desc)
function
icecallback1
(event)
}function
icecallback2
(event)
}function
onaddicecandidatesuccess()
function
onaddicecandidateerror
(error)
function
receivechannelcallback
(event)
function
onreceivemessagecallback
(event)
function
onsendchannelstatechange()
else
}function
onreceivechannelstatechange()
function
trace
(text)
if(window.performance)
else
}
上面一段**是可以執行的,不過大意義沒有,他無法產品化,接下去的第三課,我們會大刀去修改他,讓他真正實用起來,讀者可以先研究以下這一段示例**。
後面我們會使用rtp協議和信令服務繼續改寫,讓他實用並且產品化。
網路協議之rtp h264的rtp網路協議實現
一方面,如果每個ip分組都填滿1500位元組,那麼協議頭的開銷為2 7 如果rtp載荷的長度為730位元組,協議頭的開銷仍達到5 3 而假設 rtp載荷的長度不到40位元組,那麼將有50 的開銷用於頭部,這將對網路造成嚴重資源浪費。另一方面,如果將要封裝進rtp載荷的資料大於1460字 節,並且我們...
傳輸檔案 檔案傳輸協議FTP SFTP和SCP
應用層 通訊層 網路層 參考資料 ftp file transfer protocol 是tcp ip網路上兩台計算機傳送檔案的協 檔案,建立或改變伺服器上的目錄。相比於http,ftp協議要複雜得多。複雜的原因,是因為ftp協議要用到兩個tcp連線,乙個是命令鏈路,用來在 pasv埠範圍 的tcp...
WebRTC編譯系統之gn和ninja
webrtc現在使用 gn 來生成構建指令碼,使用 ninja 來構建。gn 比 gyp 快多了,太多,你還沒眨個眼,就結束了。我們來大概介紹下編譯 webrtc 會用到的 gn 和 ninja 相關的知識。想看編譯指南的,看這裡 ubuntu 14.04下編譯webrtc。gn 的介紹在這裡 這個...