FMUSER更輕鬆地傳輸視頻和音頻!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷蘭語
sq.fmuser.org ->阿爾巴尼亞人
ar.fmuser.org ->阿拉伯語
hy.fmuser.org - >亞美尼亞
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄羅斯語
bg.fmuser.org - >保加利亞
ca.fmuser.org ->加泰羅尼亞語
zh-CN.fmuser.org ->中文(簡體)
zh-TW.fmuser.org - >中國(繁體)
hr.fmuser.org ->克羅地亞語
cs.fmuser.org ->捷克
da.fmuser.org ->丹麥語
nl.fmuser.org - >荷蘭
et.fmuser.org ->愛沙尼亞語
tl.fmuser.org ->菲律賓
fi.fmuser.org ->芬蘭語
fr.fmuser.org - >法國
gl.fmuser.org ->加利西亞語
ka.fmuser.org ->喬治亞
de.fmuser.org ->德語
el.fmuser.org - >希臘
ht.fmuser.org ->海地克里奧爾語
iw.fmuser.org ->希伯來語
hi.fmuser.org ->印地語
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰島語
id.fmuser.org ->印尼語
ga.fmuser.org ->愛爾蘭
it.fmuser.org - >意大利
ja.fmuser.org ->日語
ko.fmuser.org ->韓文
lv.fmuser.org ->拉脫維亞
lt.fmuser.org - >立陶宛
mk.fmuser.org ->馬其頓語
ms.fmuser.org ->馬來語
mt.fmuser.org ->馬耳他語
no.fmuser.org - >挪威
fa.fmuser.org ->波斯語
pl.fmuser.org ->波蘭語
pt.fmuser.org ->葡萄牙語
ro.fmuser.org - >羅馬尼亞
ru.fmuser.org ->俄語
sr.fmuser.org ->塞爾維亞語
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亞
es.fmuser.org ->西班牙語
sw.fmuser.org ->斯瓦希里語
sv.fmuser.org ->瑞典語
th.fmuser.org - >泰國
tr.fmuser.org ->土耳其語
uk.fmuser.org ->烏克蘭語
ur.fmuser.org ->烏爾都語
vi.fmuser.org - >越南
cy.fmuser.org ->威爾士語
yi.fmuser.org - >意第緒語
1.現狀
在全國直播的時代,任何人都可以拿起手中的設備進行直播。 實時廣播為一群人帶來了工作,並為主要的實時廣播平台帶來了巨大的收益。 面對巨大的市場,它必須具有高質量。 只有低成本的直播技術才能在競爭中脫穎而出,成為直播行業的領導者。 實時視頻流的五個關鍵過程:1.記錄2.編碼3.網絡傳輸4.解碼5.回放。 這些鏈接中的每一個都會影響實時廣播的質量和延遲時間。 下面我們將主要討論優化延遲的第三點。
當前的實時廣播技術通常使用諸如RTMP,HLS,HDL(HTTP-FLV)和RTP之類的協議。 這些協議中最常見的協議是rtmp協議。 現在,中國的許多直播平台仍在使用中,並且還有HLS。 這也是很多協議。 對上述協議進行一些簡要介紹。
2。 協議
(1)RTMP協議
這是Adobe的專利協議,大多數外國CDN均不支持。 在該國的人氣很高。 有以下幾個原因:
1)開源軟件和開源庫的支持是穩定而完整的。 例如,Douyu錨通常使用的OBS軟件,開源librtmp庫和服務器端的nginx-rtmp插件。
2)播放器的安裝率很高。 只要瀏覽器支持FlashPlayer,就可以非常輕鬆地播放RTMP直播,並且Google可以理解詳細的協議。 與其他協議相比,當RTMP協議首次建立連接時(最底層是基於TCP,這是RTMP協議本身的交互),握手過程太複雜了,具體取決於不同的網絡條件。首次開啟帶來超過100ms的延遲。 基於RTMP的實時廣播通常會有2到5秒的延遲。
(2)HTTP-FLV協議
也就是說,使用HTTP協議流媒體內容。 與RTMP相比,HTTP更簡單和眾所周知,並且不必擔心被Adobe的專利所綁架。 由於HTTP本身沒有復雜的狀態交互,因此內容延遲也可以達到2到5秒,並且打開速度更快。 因此,從延遲角度來看,HTTP-FLV優於RTMP。
(3)HLS協議
HLS代表Http Live Streaming,它是Apple提出的基於HTTP的流媒體傳輸協議。 HLS具有很大的優勢:HTML5可以直接打開和播放; 這意味著可以通過微信等轉發和共享實時鏈接,而無需安裝任何獨立的APP,而只需安裝瀏覽器即可,因此非常受歡迎。 社交直播APP,可以說只是需要HLS,讓我們分析一下它的原理。 至
HLS的基本原理是,當收集和推送端將視頻流推送到流媒體服務器時,服務器將在每次緩存一段時間後將接收到的流信息緩存到新的ts文件中,並且服務器將創建一個m3u8索引文件以維護最新ts片段的索引。 當播放器獲得實時廣播時,它將從m3u8索引文件中獲取最新的ts視頻文件片段以進行播放,從而確保用戶每次連接時都能看到更新的內容,從而實現類似的實時廣播體驗。 與常見的實時流協議(例如RTMP和RTSP)相比,HLS的最大區別在於,實時廣播客戶端獲得的不是完整的數據流,而是連續的,持續時間較短的媒體文件。 下載並播放這些小文件。 此方法的理論上最小延遲是一個ts文件的持續時間,通常是2-3 ts文件的持續時間。 基本上建議將HLS的細分策略設為10秒的細分
(4)RTP協議
RTP是實時傳輸協議,一種用於Internet上的多媒體數據流傳輸的傳輸層協議。 在實際的應用場景中,經常需要將RTCP(RTP控制協議)一起使用。 可以簡單地理解為RTCP傳輸交互式控制信令,而RTP傳輸實際的媒體數據。 至
RTP在視頻監視,視頻會議和IP電話中具有廣泛的應用,這是因為在視頻會議和IP電話中的重要經驗:實時內容。
與上述三種或實際上兩種協議相比,RTP與它們之間有一個重要的區別,它們的默認值是使用UDP協議傳輸數據,而RTMP和HTTP基於TCP協議傳輸。 UDP為什麼能實現這樣的實時效果? 我搜索了很多有關TCP和UDP之間差異分析的文章。 我將不在這裡重複它們,而是簡要總結一下:
1)UDP:單個數據報,無需建立連接,簡單,不可靠,丟包,亂序;
2)TCP:流式傳輸,需要建立連接,複雜,可靠,有序。 至
實時音頻和視頻流的場景並不需要得到可靠的保證,因此不需要重傳機制。 實時查看圖像和聲音,當網絡抖動,屏幕模糊和屏幕模糊時丟失一些內容是完全不重要的。 TCP將導致延遲和重新同步的不同步。 如果某個內容被重新傳輸並且將在1秒鐘後到達,則整個對話將被延遲1秒鐘。 由於網絡抖動,延遲將增加到2秒或3秒,如果不處理客戶端的播放,將嚴重影響現場直播的體驗。 至
總結一下:在直播協議的選擇中,如果選擇RTMP或HTTP-FLV,則意味著存在2〜5秒的內容延遲,但是當打開延遲時,HTTP-FLV比RTMP更好。 HLS的內容延遲為5到7秒。 選擇實時廣播的RTP可以在1秒內實現實時廣播延遲。 但是據我所知,主要的CDN製造商不支持基於RTP的實時廣播,因此當前的國內主流仍然是RTMP或HTTP-FLV,並且還出現了新興的HLS。
(5)HLS和RTMP的比較
1)HLS
①HLS的缺點:
通常,HLS直播延遲將達到20-30s,對於需要實時交互體驗的直播來說,高延遲是不可接受的。
HLS基於短連接HTTP,HTTP基於TCP,這意味著HLS需要與服務器持續建立連接。 每次建立連接時TCP三向握手,緩慢的啟動過程以及斷開連接時四次握手會導致消耗。
②HLS的優點:
數據通過HTTP協議傳輸,因此在使用HLS時無需考慮防火牆或代理問題。
使用短片段文件進行回放,客戶端可以平滑地切換比特率,以適應不同帶寬條件下的回放。
HLS是蘋果公司推出的流媒體協議。 iOS平台自然可以支持它。 可以使用系統提供的AVPlayer直接播放它,而不必自己開發播放器。
2)RTMP
與HLS相比,採用RTMP協議時,它是從收集和推送端到流媒體服務器再到回放端的數據流,因此服務器上將沒有著陸文件。 這樣,RTMP相對具有以下優點:
①延遲很小,通常為1-3s。
②基於TCP長連接,無需多次建立連接。
因此,業內大多數直播服務將選擇RTMP作為流媒體協議。 通常,數據流被封裝到FLV中並通過HTTP提供。 但是,有一些問題需要解決:
①iOS平台不提供本機支持RTMP或HTTP-FLV的播放器,這需要開發支持相關協議的播放器。
3.HLS延遲優化
hls的延遲主要由以下三個部分組成:
(1)服務器端編碼器和流分離器生成TS文件的時間
(2)客戶端下載TS文件的時間,通常需要下載兩個TS媒體文件
(3)客戶端解碼和播放時間
|
輸入電子郵件以獲取驚喜
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷蘭語
sq.fmuser.org ->阿爾巴尼亞人
ar.fmuser.org ->阿拉伯語
hy.fmuser.org - >亞美尼亞
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄羅斯語
bg.fmuser.org - >保加利亞
ca.fmuser.org ->加泰羅尼亞語
zh-CN.fmuser.org ->中文(簡體)
zh-TW.fmuser.org - >中國(繁體)
hr.fmuser.org ->克羅地亞語
cs.fmuser.org ->捷克
da.fmuser.org ->丹麥語
nl.fmuser.org - >荷蘭
et.fmuser.org ->愛沙尼亞語
tl.fmuser.org ->菲律賓
fi.fmuser.org ->芬蘭語
fr.fmuser.org - >法國
gl.fmuser.org ->加利西亞語
ka.fmuser.org ->喬治亞
de.fmuser.org ->德語
el.fmuser.org - >希臘
ht.fmuser.org ->海地克里奧爾語
iw.fmuser.org ->希伯來語
hi.fmuser.org ->印地語
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰島語
id.fmuser.org ->印尼語
ga.fmuser.org ->愛爾蘭
it.fmuser.org - >意大利
ja.fmuser.org ->日語
ko.fmuser.org ->韓文
lv.fmuser.org ->拉脫維亞
lt.fmuser.org - >立陶宛
mk.fmuser.org ->馬其頓語
ms.fmuser.org ->馬來語
mt.fmuser.org ->馬耳他語
no.fmuser.org - >挪威
fa.fmuser.org ->波斯語
pl.fmuser.org ->波蘭語
pt.fmuser.org ->葡萄牙語
ro.fmuser.org - >羅馬尼亞
ru.fmuser.org ->俄語
sr.fmuser.org ->塞爾維亞語
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亞
es.fmuser.org ->西班牙語
sw.fmuser.org ->斯瓦希里語
sv.fmuser.org ->瑞典語
th.fmuser.org - >泰國
tr.fmuser.org ->土耳其語
uk.fmuser.org ->烏克蘭語
ur.fmuser.org ->烏爾都語
vi.fmuser.org - >越南
cy.fmuser.org ->威爾士語
yi.fmuser.org - >意第緒語
FMUSER更輕鬆地傳輸視頻和音頻!
聯絡我們
分類
電子通訊