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)第二次移動直播技術優化經驗(含ppt)
2)內容元素
3)圖像
4)音頻
5)元信息
6)編解碼器
視頻:H.264,H.265,…
音頻:AAC,HE-AAC…
7)容器
MP4,MOV,FLV,RM,RMVB,AVI,...
從結構上講,任何視頻文件都是這樣一種組合方式:
1)最基本的內容元素由圖像和音頻組成;
2)圖像經過視頻編碼和壓縮格式(通常為H.264)處理;
3)音頻經過音頻編碼壓縮格式(如AAC)處理;
4)指明對應的元信息(metadata);
最後,完成容器包裝(例如MP4)以形成完整的視頻文件。
如果您覺得很難理解,請想像一瓶番茄醬。 外層瓶子就像容器,瓶子上指示的原材料和加工廠信息就像元數據。 打開瓶蓋(打開包裝)後,番茄醬本身就像經過壓縮處理後的編碼內容一樣。 番茄和調味料加工成番茄醬的過程就像編碼一樣,而原材料番茄和調味料最相似是最原始的內容元素。
2. 視頻實時傳輸
簡而言之,理性的認知視頻結構有助於我們理解視頻廣播。 如果視頻是一種結構化數據,那麼視頻廣播無疑是實時傳輸此“結構化數據”(視頻)的方式。
因此,顯而易見的問題是:如何實時傳輸此結構化數據?
這是一個悖論:容器包裝的視頻必須是不可變的視頻文件,不可變的視頻文件已經是生產結果,根據“相對論”,並且該生產結果不能精確到實時水平,它已經成為內存的時間和空間。
因此,視頻廣播必須是“生產,傳輸和消費”的過程。 這意味著我們需要仔細研究視頻從原始內容元素(圖像和音頻)到成品(視頻文件)的中間過程(編碼)。
3.視頻編碼壓縮
讓我們看一下視頻編碼和壓縮技術。
為了便於視頻內容的存儲和傳輸,通常需要減少視頻內容的數量,即需要對原始內容元素(圖像和音頻)進行壓縮,該壓縮算法也稱為編碼格式。 例如,視頻中的原始圖像數據將以H.264編碼格式壓縮,音頻採樣數據將以AAC編碼格式壓縮。
經過編碼和壓縮後,視頻內容確實有利於存儲和傳輸。 然而,在觀看和播放時,還需要相應的解碼過程。 因此,顯然在編碼和解碼之間既需要編碼器也需要解碼器來理解一種約定。 在視頻圖像編碼和解碼方面,此公約很簡單:
編碼器對多個圖像進行編碼,並在一個片段中產生一個GOP(圖片組)。 播放時,解碼器讀取一部分GOP進行解碼,然後讀取圖片,然後渲染顯示。
優化移動直播技術(包括ppt)的第二次經驗
GOP(圖片組)是一系列連續的圖片,由一個I幀和幾個B / P幀組成。 它是視頻圖像編碼器和解碼器訪問的基本單元。 將重複其排列順序,直到圖像結束。
優化移動直播技術(包括ppt)的第二次經驗
I幀是內部編碼幀(也稱為關鍵幀),P幀是前向預測幀(前向參考幀),而幀B是雙向插值幀(雙向參考幀)。 簡而言之,第I幀是完整的圖片,而P和B記錄相對於I幀的變化。
如果沒有I幀,則無法解碼P和B幀。
優化移動直播技術(包括ppt)的第二次經驗
總之,視頻的圖像部分數據是一組GOP,而單個GOP是一組I / P / B幀圖像。
在這種幾何關係中,視頻就像一個“對象”,GOP就像“分子”,而I / P / B幀的圖像就像“原子”。
想像一下,如果我們將物體的透射率改變為原子,並且以光速改變最小的粒子,並用人的肉眼感知,那將會是什麼經歷?
4. 什麼是視頻直播?
打開腦洞並不難,現場直播就是這樣一種體驗。 視頻直播技術是最小的粒子(I / P / B幀),是一種基於時間序列以光速傳輸的技術。
簡而言之,實時廣播是流數據(視頻/音頻/數據幀)和時間戳的過程。 發送器連續收集音頻和視頻數據,然後通過編碼,數據包,推送流進行傳播,然後通過中繼分發網絡進行傳播。 回放端根據時間順序連續下載數據並解碼和播放。 這樣,實現了“生產,傳輸和消費”的現場直播過程。
在了解了有關視頻和直播的上述兩個基本概念之後,我們可以看到直播的業務邏輯。
直播的業務邏輯
這是簡化的一對多實時服務模型以及不同級別之間的協議。
優化移動直播技術(包括ppt)的第二次經驗
協議之間的差異如下
優化移動直播技術(包括ppt)的第二次經驗
優化移動直播技術(包括ppt)的第二次經驗
以上是有關直播技術的一些基本概念。 接下來,我們進一步了解影響人們視覺體驗的實時性能指標。
影響視覺體驗的現場直播性能指標
實時廣播的第一個性能指標是延遲,這是將數據從信息源發送到目的地所需的時間。
優化移動直播技術(包括ppt)的第二次經驗
根據愛因斯坦狹義相對論,光速是所有能量,物質和信息都能達到的最高速度。 該結論為傳輸速度設置了限制。 因此,即使我們用肉眼感覺到實時性,實際上也存在一定的延遲。
優化移動直播技術(包括ppt)的第二次經驗
由於rtmp / hls基於TCP上的應用層協議,因此TCP握手三次,四次握手,並且在慢啟動過程中的每次往返都將添加往返時間(RTT),這將增加延遲。
優化移動直播技術(包括ppt)的第二次經驗
其次,根據TCP丟包重傳的特點,網絡抖動可能會導致丟包重傳,並間接導致時延的增加。
優化移動直播技術(包括ppt)的第二次經驗
完整的實時廣播過程包括但不限於以下鏈接:收集,處理,編碼,數據包,流傳輸,傳輸,代碼轉換,分發,流傳輸,解碼和回放。 從流傳輸到播放,再通過中間轉發鏈接,延遲越短,用戶體驗就越好。
實時廣播的第二個性能指標是視頻回放過程中的顯示幀滯後,這使人們感到“卡”。 單位時間內播放的命中次數的統計信息稱為運送率。
導致Caton的因素可能是流式傳輸端的數據中斷,公共網絡傳輸的擁塞或異常的網絡抖動或終端設備的解碼性能不佳。 卡頓頻率越少或沒有,用戶體驗就越好。
第三個實時性能指示器的第一個屏幕很耗時,它是指屏幕在第一次單擊並播放後等待肉眼看到的時間。 從技術上講,它是指播放器解碼渲染顯示的第一幀所花費的時間。 一般來說,“第二個開”是指單擊播放後一秒鐘內可以看到的屏幕。 第一個屏幕打開的速度越快,用戶體驗就越好。
以上三個實時廣播性能指標對應於低延遲,高清流暢,第二快的用戶體驗要求。 了解這三個性能指標對於優化移動實時應用程序的用戶體驗非常重要。
那麼,移動直播中的共同點是什麼?
根據實踐總結的經驗,在移動平台上進行視頻直播的陷阱可以概括為兩個方面:網絡環境中這些場景帶來的設備差異和技術測試。
移動直播現場的坑洼及迴避措施
不同芯片平台上的編碼差異
優化移動直播技術(包括ppt)的第二次經驗
無論是在IOS平台上進行硬編碼還是軟編碼,由於它是Apple的工廠,因此由於芯片平台不同,幾乎沒有編碼差異。
但是,在Android平台上,Android框架SDK提供的媒體編解碼器在不同的芯片平台上有很大的差異。 不同的製造商使用不同的芯片,而Android Mediacodec在不同的芯片平台上的性能略有不同,並且實現整個平台兼容性的成本並不低。
另外,Android媒體編解碼器硬編碼層的H.264編碼質量參數是固定的,因此繪畫質量通常也很一般。 因此,在Android平台下,推薦使用軟編輯,其優點是可以調節繪畫質量並且兼容性更好。
如何收集和編碼高性能的低端設備?
優化移動直播技術(包括ppt)的第二次經驗
例如,相機可能就是圖片。 圖片的容量不小。 如果獲取頻率很高並且編碼的幀速率很高,則每個圖片都通過編碼器,編碼器可能會再次過載。
這時,我們可以考慮在編碼之前,在不影響圖像質量的前提下(我們已經談到了幀速率的微觀意義),我們可以選擇性地丟失幀,從而降低編碼鏈路的功耗。
如何在弱網絡下保證高清流暢的流
優化移動直播技術(包括ppt)的第二次經驗
在移動網絡中,一方面很容易遇到網絡不穩定,連接重置,斷線重新連接,一方面,頻繁的重新連接,建立連接需要開銷。 另一方面,帶寬瓶頸可能會出現,尤其是在發生GPRS / 2G / 3G / 4G切換時。 當帶寬不足時,難以發送具有高幀速率/高比特率的內容,因此需要可變比特率支持。
即,在推送端,可以檢測到網絡狀態和簡單的速度測量,並且可以動態地切換碼率,以確保在網絡切換期間推送的順暢進行。
其次,編碼,分組和推送流的邏輯也可以進行微調。 您可以嘗試有選擇地丟失幀,例如首先丟失視頻參考幀(I幀和音頻幀),這也可以減少要傳輸的數據內容,但同時可以達到不影響傳輸的目的。畫質和流暢的視聽版本。
直播的狀態和業務狀態需要區分
直播是媒體流與應用程序的交互,是API信號流,兩者的狀態不能混淆。 特別地,不能基於APP交互的API狀態來判斷實時流的狀態。
優化移動直播技術(包括ppt)的第二次經驗
以上是現場移動場景中的幾個常見陷阱和避免措施。
移動現場直播場景的其他優化措施
1,如何優化打開速度以達到傳說中的“秒開”?
您可能會看到市場上一些移動電話實時應用的運行非常快,而且還持續增長。 和某些手機實時應用程序,請在播放幾秒鐘後單擊播放。 是什麼原因造成這種差異?
大多數播放器在獲得完整的GOP後都可以解碼和播放。 基於Ffmpeg的播放器只能在需要音頻和繪畫的時間戳同步後才能播放(如果直播中沒有音頻,則在等待音頻超時後只有視頻可以播放人臉)。
可以從以下幾個方面考慮第二點:
1.重寫播放器邏輯以在播放器獲得第一個關鍵幀後顯示播放器。
GOP的第一幀通常是關鍵幀,由於加載的數據較少,它可以達到“第一幀第二秒打開”。
如果實時服務器支持GOP緩存,則意味著播放器可以在與服務器建立連接後立即獲取數據,從而節省了跨區域和跨運營商的反向源傳輸時間。
GOP反映關鍵幀的周期,即兩個關鍵幀之間的距離,即幀組中的最大幀數。 假設視頻的恆定幀率為24fps(即1秒為24幀),關鍵幀週期為2S,則GOP為48張圖像。 通常,視頻的每一秒至少需要一個關鍵幀。
增加關鍵幀數可以提高畫面質量(GOP 通常是 FPS 的倍數),但同時增加了帶寬和網絡負載。 這意味著客戶端播放器下載 GOP。
|
輸入電子郵件以獲取驚喜
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更輕鬆地傳輸視頻和音頻!
聯絡我們
分類
電子通訊