生活随笔
收集整理的這篇文章主要介紹了
web直播
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前段時間接觸了一些音視頻、web直播相關的東西,加上Flash的即將終結、WebRTCd的興起、小程序的流行,這里總結了一點個人學習收獲和大家分享。
?
直播知識小科普
?
現有方案比較 RTMP協議
?
?
RTP協議
?
?
HLS 協議
?
?
一個典型的直播流程:錄制->編碼->網絡傳輸(推流->服務器處理->CDN分發)->解碼->播放IPB:一種常用的視頻壓縮方案,用I幀表示關鍵幀,B幀表示前向差別幀,P幀表示雙向差別幀GOP (Group of Pictures):GOP 越長(I幀之間的間隔越大),B 幀所占比例越高,編碼的率失真性能越高。雖然B幀壓縮率高,但解碼時CPU壓力會更大。音視頻直播質量好壞的主要指標:內容延時、卡頓(流暢度)、首幀時長音視頻直播需要克服的主要問題:網絡環境、多人連麥、主輔路、瀏覽器兼容性、CDN支持等MSE(Media Source Extensions):W3C 標準API,解決 HTML5 的流問題(HTML5 原生僅支持播放 mp4/webm 非流格式,不支持 FLV),允許Java動態構建 <video> 和 <audio> 的媒體流。可以用MediaSource.isTypeSupported() 判斷是否支持某種MINE類型。在ios Saf文件格式/封裝格式/容器格式:一種承載視頻的格式,比如flv、avi、mpg、vob、mov、mp4等。而視頻是用什么方式進行編解碼的,則與Codec相關。舉個栗子,MP4格式根據編解碼的不同,又分為nMP4、fMP4。nMP4是由嵌套的Boxes 組成,fMP4格式則是由一系列的片段組成,因此只有后者不需要加載整個文件進行播放。Codec:多媒體數字信號編碼解碼器,能夠對音視頻進行壓縮(CO)與解壓縮( DEC ) 。CODEC技術能有效減少數字存儲占用的空間,在計算機系統中,使用硬件完成CODEC可以節省CPU的資源,提高系統的運行效率。常用視頻編碼:MPEG、H264、RealVideo、WMV、QuickTime。。。常用音頻編碼:PCM、WAV、OGG、APE、AAC、MP3、Vorbis、Opus。。。基于TCPadobe壟斷,國內支持度高瀏覽器端依賴Flash進行播放2~5秒的延遲Real-time Transport Protocol,IETF于1996提出的一個標準基于UDP實時性強用于視頻監控、視頻會議、IP電話CDN廠商、瀏覽器不支持Http Live Streaming,蘋果提出的基于HTTP的流媒體傳輸協議HTML5直接支持(video),適合APP直播,PC斷只有Safari、Edge支持必須是H264+AAC編碼因為傳輸的是切割后的音視頻片段,導致內容延時較大
4、支持Web上行能力
5、編碼為H264+OPUS
6、提供NAT穿透技術(ICE)
實際情況下,當用戶數量很大時,對推流設備的性能要求很高,復雜的權限管理也難以實現,采用P2P的架構基本不可行。對于個別用戶提供上行流、海量用戶只進行拉流的場景,騰訊課堂實現了一種P2S的解決方案。
基于RTMP,官方說底層使用HTTP/2的一種內部傳輸機制,但又說是基于UDP的,這就搞不懂了。。。live-pusher 和 live-player 沒有限制第三方云服務可直接使用騰訊云視頻直播能力,只需配置好推流url、播放url即可
flv.js
?
Bilibli開源,解析flv數據,通過MSE封裝成fMP4喂給video標簽編碼為H264+AAC使用HTTP的流式IO(fetch或stream)或WebSocket協議流式的傳輸媒體內容2~5秒的延遲,首幀比RTMP更快ari中不支持。 1、Google力推,已成為W3C標準
2、現代瀏覽器支持趨勢,X5也支持(微信、QQ)
總結
以上是生活随笔為你收集整理的web直播的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。