国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

WebRTC | 音視頻直播客戶端框架

這篇具有很好參考價(jià)值的文章主要介紹了WebRTC | 音視頻直播客戶端框架。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

????????端到端通信互動技術(shù)可分解為以下幾個(gè)技術(shù)難點(diǎn):客戶端技術(shù)、服務(wù)器技術(shù)、全球設(shè)備網(wǎng)絡(luò)適配技術(shù)和通信互動質(zhì)量監(jiān)控與展示技術(shù)。

一、音視頻直播

????????音視頻直播可分成兩條技術(shù)路線:一條是以音視頻會議為代表的實(shí)時(shí)互動直播;另一條是以娛樂直播為代表的流媒體分發(fā)。

????????互動直播主要解決人們遠(yuǎn)程音視頻交流的問題,所以其優(yōu)點(diǎn)是實(shí)時(shí)性強(qiáng),時(shí)延一般低于500ms;而娛樂直播則主要解決音視頻的大規(guī)模分發(fā)問題,因此其在大規(guī)模分發(fā)上更具優(yōu)勢,但實(shí)時(shí)性比較差,通常時(shí)延在3s以上。

1.常見的直播技術(shù)

WebRTC | 音視頻直播客戶端框架,# WebRtc音視頻實(shí)時(shí)互動,webrtc
常見的直播技術(shù)

? ? ? ? 上表中,只有WebRTC技術(shù)用于實(shí)時(shí)互動直播,而其他幾種技術(shù)都用于娛樂直播。

????????HLS是基于HTTP的,它首先對媒體流(文件)進(jìn)行切片,然后通過HTTP傳輸,接收端則需要將接收到的切片進(jìn)行緩沖,之后才能將媒體流平穩(wěn)地播放出來。(實(shí)際上,最初娛樂直播也只有RTMP這一種方案可選,但后來由于蘋果宣布不再支持RTMP,并推出了自己的解決方案HLS,最終導(dǎo)致RTMP走向了消亡。

????????將RTMP換成HLS需要付出高昂的成本,于是有人提出了HTTP-FLV方案,即傳輸?shù)膬?nèi)容仍然使用RTMP格式,但底層傳輸協(xié)議換成HTTP,這種方案既可以保障其實(shí)時(shí)性比HLS好,又可以節(jié)約升級的成本,因此也受到各方的歡迎。不過HTTP-FLV的擴(kuò)展性比較差,因此它只是一種臨時(shí)方案。

????????HLS方案雖然不錯(cuò)(有大量的用戶使用),但其他公司也有類似的方案,這使得各直播廠商不得不寫多套代碼,費(fèi)時(shí)費(fèi)力。于是,F(xiàn)FMPEG推出了DASH方案,該方案與HLS類似,也是以切片的方式傳輸數(shù)據(jù),最終該方案成為國際標(biāo)準(zhǔn),從而使直播廠商只要寫一套代碼就可以實(shí)現(xiàn)切片傳輸了。

2.音視頻直播的現(xiàn)狀

????????WebRTC的愿景是讓瀏覽器間可以快速、方便地實(shí)現(xiàn)端到端的實(shí)時(shí)音視頻互動。實(shí)時(shí)互動直播與娛樂直播技術(shù)相結(jié)合成為現(xiàn)在直播服務(wù)器的主流技術(shù)方案。

????????音視頻直播技術(shù)有兩個(gè)重要趨勢:一是實(shí)時(shí)互動直播技術(shù)與娛樂直播技術(shù)合二為一;二是WebRTC已經(jīng)是直播技術(shù)的標(biāo)準(zhǔn),大家都在積極地?fù)肀ebRTC。

二、自研直播客戶端架構(gòu)

WebRTC | 音視頻直播客戶端框架,# WebRtc音視頻實(shí)時(shí)互動,webrtc

1.基本的五大模塊

????????一個(gè)最簡單的直播客戶端至少應(yīng)該包括:音視頻采集模塊、音視頻編碼模塊、網(wǎng)絡(luò)傳輸模塊、音視頻解碼模塊和音視頻渲染模塊五大部分。

? ? ? ? 細(xì)化一下,音頻的采集模塊與視頻的采集模塊是分開的,而音頻編解碼模塊與視頻的編解碼模塊也是分開的。也就是說,音頻采用了一條處理流程,視頻則采用了另外一條處理流程,它們之間并不相交。在音視頻處理中,我們一般稱每一路音頻或每一路視頻為一條軌。

2.支持跨平臺

????????除上述籠統(tǒng)的五大模塊之外,還需考慮跨平臺問題。只有在各個(gè)平臺上都能實(shí)現(xiàn)音視頻的互聯(lián)互通,才能稱得上是一個(gè)合格的音視頻直播客戶端。以音頻采集為例,在不同的平臺上,采集音頻數(shù)據(jù)時(shí)使用的系統(tǒng)API是不一樣的。PC端使用的是CoreAudio;Mac端使用的系統(tǒng)API也稱為CoreAudio,不過具體的函數(shù)名是不同的;Android端使用的是AudioRecord;iOS端使用的是AudioUnit;Linux端使用的是PulseAudio。

3.編解碼的插件化管理

????????對于音視頻直播客戶端來說,我們不但希望它可以處理音頻數(shù)據(jù)、視頻數(shù)據(jù),而且還希望它可以分享屏幕、播放多媒體文件、共享白板……即使是處理音視頻,我們也希望它可以支持多種編解碼格式:

  • 音頻除了可以支持Opus、AAC外,還可以支持G.711/G.722、iLBC、Speex等;
  • 視頻除了可以支持H264外,還可以支持H265、VP8、VP9、AVI等。

????????G.711/G.722主要用于電話系統(tǒng),音視頻直播客戶端要想與電話系統(tǒng)對接,就要支持這種編解碼格式;Opus主要用于實(shí)時(shí)通話;AAC主要用于音樂類的應(yīng)用,如鋼琴教學(xué)等。實(shí)現(xiàn)插件化管理可以很方便的使直播客戶端能夠支持盡可能多的編解碼器。

4.關(guān)注其他問題

  • 音視頻不同步問題

????????音視頻數(shù)據(jù)經(jīng)網(wǎng)絡(luò)傳輸后,由于網(wǎng)絡(luò)抖動和延遲等問題,很可能造成音視頻不同步。對此,可在音視頻直播客戶端增加音視頻同步模塊以保障音視頻的同步。

  • 3A問題

????????3A是指:Acoustic Echo Cancelling(AEC),即回音消除;Automatic Gain Control(AGC),即自動增益;Active Noise Control(ANC,也稱為Noise Cancellation、Noise Suppression),即降噪。

  • 音視頻實(shí)時(shí)問題

????????TCP是以犧牲實(shí)時(shí)性來保障網(wǎng)絡(luò)服務(wù)質(zhì)量的。所以,為了保證實(shí)時(shí)性,一般情況下實(shí)時(shí)直播應(yīng)該首選UDP。

三、WebRTC客戶端架構(gòu)

WebRTC | 音視頻直播客戶端框架,# WebRtc音視頻實(shí)時(shí)互動,webrtc

?????????從WebRTC架構(gòu)圖中可以了解到,它大體上可以分成四層:接口層、Session層、核心引擎層和設(shè)備層。

  • 接口層包括兩部分:一是Web層接口;二是Native層接口。也就是說,既可以使用瀏覽器開發(fā)音視頻直播客戶端,也可以使用Native(C++、Android、OC等)開發(fā)音視頻直播客戶端。
  • Session層的主要作用是控制業(yè)務(wù)邏輯,如媒體協(xié)商、收集Candidate等。
  • 核心引擎層包括的內(nèi)容比較多。從大的方面說,它包括音頻引擎、視頻引擎和網(wǎng)絡(luò)傳輸層。音頻引擎層包括NetEQ、音頻編解碼器(如Opus、iLBC)、3A等;視頻引擎包括JitterBufer、視頻編解碼器(VP8、VP9、H264)等;網(wǎng)絡(luò)傳輸層包括SRTP、網(wǎng)絡(luò)I/O多路復(fù)用、P2P等。
  • 設(shè)備層主要與硬件打交道,它涉及的內(nèi)容包括:在各終端設(shè)備上進(jìn)行音頻的采集與播放,視頻的采集,以及網(wǎng)絡(luò)層等。

四、自研系統(tǒng)與WebRTC比較

WebRTC | 音視頻直播客戶端框架,# WebRtc音視頻實(shí)時(shí)互動,webrtc

?文章來源地址http://www.zghlxwxcb.cn/news/detail-633777.html

到了這里,關(guān)于WebRTC | 音視頻直播客戶端框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SRS OBS利用RTMP協(xié)議實(shí)現(xiàn)音視頻推拉流;WebRTC 屏幕直播分享工具

    SRS OBS利用RTMP協(xié)議實(shí)現(xiàn)音視頻推拉流;WebRTC 屏幕直播分享工具

    參考:https://ossrs.net/lts/zh-cn/docs/v5/doc/getting-started 1)docker直接運(yùn)行SRS服務(wù): 運(yùn)行起來后可以http://localhost:8080/ 看到服務(wù)基本信息: 2) OBS 推流 在設(shè)置里設(shè)置直播地址: 然后回到首頁點(diǎn)擊開始直播 3)點(diǎn)擊http://localhost:8080/ 可以網(wǎng)頁查看流視頻 SRS低延遲啟動(暫時(shí)測試下來延遲

    2024年04月13日
    瀏覽(21)
  • 【音視頻處理】RTMP、HLS、HTTP-FLV、WebRTC、RTSP的區(qū)別?直播協(xié)議詳解

    【音視頻處理】RTMP、HLS、HTTP-FLV、WebRTC、RTSP的區(qū)別?直播協(xié)議詳解

    ? 大家好,歡迎來到停止重構(gòu)的頻道。 本期我們詳細(xì)討論 直播的相關(guān)協(xié)議 ,包括:HTTP-FLV、HLS、RTMP、Web-RTC、RTSP等等。 我們將會詳細(xì)介紹這些協(xié)議的工作原理、應(yīng)用場景、及延遲的原因。 我們按這樣的順序討論? 1、??RTMP、HTTP-FLV? 2、??HLS? 3、??Web-RTC? 4、??RTSP? RTM

    2024年02月02日
    瀏覽(26)
  • WebRTC音視頻通話(二)簡單音視頻通話

    WebRTC音視頻通話(二)簡單音視頻通話

    本篇不詳細(xì)介紹websocket,只針對websocket整合rtc。 webrtc是P2P通信,也就是實(shí)際交流的 只有兩個(gè)人 ,而要建立通信,這兩個(gè)人需要 交換一些信息來保證通信安全 。而且, webrtc必須通過ssh加密 ,也就是使用https協(xié)議、wss協(xié)議。 借用一幅圖 1.1 創(chuàng)建端點(diǎn)的解析 以下解析不包括we

    2023年04月09日
    瀏覽(29)
  • WebRTC音視頻通話-WebRTC視頻自定義RTCVideoCapturer相機(jī)

    WebRTC音視頻通話-WebRTC視頻自定義RTCVideoCapturer相機(jī)

    WebRTC音視頻通話-WebRTC視頻自定義RTCVideoCapturer相機(jī) 在之前已經(jīng)實(shí)現(xiàn)了WebRTC調(diào)用ossrs服務(wù),實(shí)現(xiàn)直播視頻通話功能。但是在使用過程中,RTCCameraVideoCapturer類提供的方法不能修改及調(diào)節(jié)相機(jī)的燈光等設(shè)置,那就需要自定義RTCVideoCapturer自行采集畫面了。 iOS端WebRTC調(diào)用ossrs相關(guān),實(shí)現(xiàn)

    2024年02月12日
    瀏覽(29)
  • WebRTC音視頻原理

    WebRTC音視頻原理

    WebRTC,網(wǎng)頁即時(shí)通訊(Web Real-Time Communication),是直接在 Web 瀏覽器內(nèi)驅(qū)動實(shí)時(shí)通信(語音、視頻和任意數(shù)據(jù))方法的API。它于2011年6月1日開源并在Google、Mozilla、Opera支持下被納入萬維網(wǎng)聯(lián)盟的W3C推薦標(biāo)準(zhǔn),并于 2011 年標(biāo)準(zhǔn)化,是谷歌開源的一款產(chǎn)品。 WebRTC 實(shí)現(xiàn)了瀏覽器快速

    2023年04月08日
    瀏覽(41)
  • 【W(wǎng)ebRTC】音視頻通信

    【W(wǎng)ebRTC】音視頻通信

    WebRTC對等體還需要查找并交換本地和遠(yuǎn)程音頻和視頻媒體信息,例如分辨率和編解碼器功能。 交換媒體配置信息的信令通過使用被稱為SDP的會話描述協(xié)議格式來交換,被稱為提議和應(yīng)答的元數(shù)據(jù)塊 一方發(fā)起調(diào)用 getUserMedia 打開本地?cái)z像頭 媒體協(xié)商(信令交換,媒體協(xié)商主要

    2024年02月07日
    瀏覽(28)
  • WebRTC音視頻通話-WebRTC本地視頻通話使用ossrs服務(wù)搭建

    WebRTC音視頻通話-WebRTC本地視頻通話使用ossrs服務(wù)搭建

    iOS開發(fā)-ossrs服務(wù)WebRTC本地視頻通話服務(wù)搭建 之前開發(fā)中使用到了ossrs,這里記錄一下ossrs支持的WebRTC本地服務(wù)搭建。 ossrs是什么呢? SRS(Simple Realtime Server)是一個(gè)簡單高效的實(shí)時(shí)視頻服務(wù)器,支持RTMP、WebRTC、HLS、HTTP-FLV、SRT等多種實(shí)時(shí)流媒體協(xié)議。 官網(wǎng)地址:https://ossrs.net/lt

    2024年02月12日
    瀏覽(22)
  • webRTC一對一音視頻對話

    環(huán)境 阿里云操作系統(tǒng): ubuntu 18.4 amd ????????注意:安全組一定添加對應(yīng)的入口端口 nodejs -v 18.19.0 npm -v 10.2.3 需要安裝的庫 package.json 服務(wù)器端 ? ? ? ? webRTC一定要使用https服務(wù)器,如果沒有ssl證書,可以使用自制證書 ? ? ? ? 1.創(chuàng)建HTTPS服務(wù)器 ? ? ? ? ? ? ? ? 使用soc

    2024年01月19日
    瀏覽(25)
  • mediasoup webrtc音視頻會議搭建

    mediasoup webrtc音視頻會議搭建

    拉下源碼: https://github.com/versatica/mediasoup-demo 源碼里有以下目錄其中,app網(wǎng)頁的界面終端,broadcasters是廣播,也就是他支持我們用ffmpeg推流上去給所有的成員廣播,server是流媒體服務(wù)器。 源碼包含了,https服務(wù)器用于瀏覽器獲取界面,信令服務(wù)器用于房間管理,和流媒體服務(wù)

    2024年02月05日
    瀏覽(23)
  • WebRTC音視頻會議底層支撐技術(shù)

    WebRTC音視頻會議底層支撐技術(shù)

    WebRTC允許應(yīng)用使用P2P通信。WebRTC是一個(gè)廣泛的話題,在本文中,我們將重點(diǎn)討以下問題。 為什么Web RTC 如此受歡迎? 在P2P連接過程中會發(fā)生什么 信號傳遞 NATs和ICE STUN TURN服務(wù)器 VP9視頻編解碼器 WebRTC APIs 安全 1.為什么Web RTC 如此受歡迎? 開放源代碼 它為瀏覽器提供了端到端

    2024年02月11日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包