直播開篇 直播場景和技術分析

2021-09-29 06:37:28 字數 2033 閱讀 4400

二、關於直播中問題和分析

參考鏈結

好吧,既然你們非要搞什麼直播,我就開始寫寫直播吧,怪不得webrtc是下一代關鍵技術,直播的一些業務頁必須要用webrtc來實現

3~5秒延時對於多數常見的直播形式一般問題不大, 基本上滿足之前遇到的直播形式,但在某些場景下,直播的體驗非常差,例如我們最常見的連麥,如果延時超過了1s,基本上整段垮掉

在答題直播場景下, 一般都要求在一段時間內使用者提交答案,如果有各別使用者延遲比較大,這樣對使用者是不公平的。雖然直播平台仍然使用flv的傳輸形式完成答題直播,但是基本都會採用sei插幀等方法來解決時間同步問題, 需要平台的端和直播cdn做一些配合來完成。

從對業務的支援層面來看, 僅僅有rtmp、flv這種3~5秒延時以上的直播形式已經不夠了, 需要對更低延遲的直播業務進行支援。從技術的角度來看,國內常用的flv、rtmp這種直播手段,本身是adobe自己的標準, 而且很快會停止對flash的維護, 另一方面webrtc技術的興起,chrome、safari等瀏覽器也都進行了支援,因此也需要對新的技術有一些調研和準備。

關於技術的選型,我們需要兼顧各種各樣的場景

關於之前的業務的相容

cdn實現直播的秒開,webrtc在移動端擁塞控制和重傳方面有一些處理,所以我們需要使用webrtc解決卡頓的問題

關於webrtc,這個技術有點複雜,採用一部分功能

已有的業務,無論是、大小檔案、點播、直播,這些都是在tcp通訊基礎上實現的,所以短延時直播在開展的時候我們就思考了tcp的可能性。

直播常見的問題包括

主播在不穩定的網路環境下如何穩定推流?

偏遠地區的觀眾如何高畫質流暢**直播?

直播卡頓時如何智慧型切換線路?

如何精確度量直播質量指標並實時調整?

美顏等濾鏡特效處理怎麼做?

對於國內大部分平台都是使用的h.264和aac,我們在這個基礎上進行秒開的優化

對於h.264編碼來說,我們會有三個不同的,所謂是什麼呢?就是你看到的每乙個影象。

對於h.264來講,我們常見的有i幀p幀,和b幀

p幀

p-frame也就是說**幀,它的**幀是怎麼回事呢?p幀就是保留變的部分,不變的部分你去上乙個或者幾個幀裡面找就行。

p幀的好處是什麼呢?因為它只存一些變化資訊,所以它大概的壓縮比是i幀的50%。

b幀

b-frame,前後雙向引用**。

idr幀

idr幀有時也有它不太學術的叫法:關鍵幀

idr 影象之後的影象永遠不會使用 idr 之前的影象的資料來解碼。

我們可能會看到ffmpeg的資料結構裡會標著pts和dts,那麼pts和dts是什麼呢?

pts和dts是什麼?

pts,presentation time stamp也就說這個幀什麼時候會放在顯示器上;

dts就是decode time stamp,就是說這個幀什麼時候被放在編碼器去解。

那麼如果全是i幀和p幀,pts和dts都是單調遞增的,那麼如果我們有b幀,會出現什麼情況?因為大家都知道,對於b幀來講,它會引用前面的幀和後面的幀。

為什麼直播會等待

關鍵幀緩衝如何工作

fec是靠冗餘傳輸,來提高容錯率。關鍵幀10%冗餘率, 非關鍵幀5%,根據丟包判斷出網路狀況,動態調整冗餘度。

IM 直播互動場景

但是對於直播互動場景來說,對於這個精準投遞應該如何進行優化呢?對於直播互動場景中的監控指標一般可以分為兩大類 業務效能指標 比如直播間人數,發訊息和信令的qps與耗時,訊息收發延遲等 機器效能指標 主要是通用化的機器效能指標,包括頻寬,pps,系統負載,iops 對於直播互動的訊息下推來說,長連線入...

iOS直播技術分析與實現

不經意間發現,兩個月沒寫部落格了 把最近的一些技術成果,總結成了文章,與大家分享。根據以上的了解要實現http live streaming直播,需要研究並實現以下技術關鍵點 2.對原始資料進行h264編碼和aac編碼 4.hls分段生成策略及m3u8索引檔案 4.http傳輸協議 1.分段策略 h...

個人直播背後的技術分析

文 胡小清 作者簡介 2000 年加入華為,一直從事軟體產品和解決方案的研發 系統設計 架構設計工作。個人直播 關鍵技術 1 rtmp real time messaging protocol 個人直播中大家了解到最多的技術是 rtmp,基於實時的 流傳送技術 但傳統 rtmp 基於 tcp,需要 ...