本文梳理了RTMP協議的基本概念
訪問 個人博客瞭解更多
直播行業的興起,帶動了音視頻相關技術的發展,本文介紹 RTMP 協議,讓人快速理解它。看下面一張視頻直播的大致架構圖,找找 RTMP 的位置,明白 RTMP 扮演的角色與重要性html
在上面,RTMP 在視頻直播場景的架構中,擔任了重要的"血管"般的角色java
RTMP(Real Time Messaging Protocol)實時消息傳送協議是Adobe Systems公司爲Flash播放器和服務器之間音頻、視頻和數據傳輸開發的私有協議。nginx
RTMP是一個應用層協議,有多路複用的特色,傳輸內容有視頻、音頻、控制命令git
RTMP 在音視頻相關的協議中,它的突出特色是:鏈接可靠、低延時github
RTMP 是基於TCP的二進制協議,(順便一提,http爲普遍應用的明文協議之一)shell
RTMP 默認端口 1935後端
基於 TCP 的好處緩存
若是網絡條件差時,因爲TCP存在重傳的機制,因此致使RTMP存在累計延時。當網絡狀態差時,服務器會將包緩存起來,致使累積的延遲,待網絡情況好了,就一塊兒發給客戶端。安全
解決 RTMP 累計延時的弊端的方法:服務器
rtmp 有三個變種:
穿越防火牆的意思是,可能出於安全考慮,互聯網中某一些網絡(好比小區、校園網)的防火牆限制了http/https之外的協議訪問,只容許訪問外網ip的 80 端口與 443 端口,或者還容許其餘協議,而明文協議的 rtmp 默認端口 1935 不在防火牆開放訪問的端口中,沒法創建鏈接。出於現實考慮,使用 http/https 封裝 rtmp 協議,加強兼容性。
如下開源項目: