開源| 直播推拉流2.0升級了什麼
直播開源推拉流 SDK1.0 版本已經發布有段時間了,期間受到了廣泛的關注。隨著新技術新場景的不斷湧現, 1.0 版本已經略顯簡單,不能夠更好的滿足大家的需求,所以 2021 年下半年我們著手開始整理需求,從而開始了 2.0 的開源之路。
新版本 2.0 增加了很多新的功能,還有對老版本的優化,下面我們詳細的來介紹一下:
1.WebRTC 的推拉流
相比於1.0是精簡了WebRTC的庫,這個版本我們把整個完全功能的WebRTC包含進來,這樣更方便使用者使用。
RTC(Real time communication)實時通訊,是實時音視訊的一個簡稱,我們常說的RTC技術一般指的是WebRTC技術,已經被 W3C 和 IETF 釋出為正式標準。由於幾乎所有主流瀏覽器都支援 WebRTC 標準 API ,因此也讓瀏覽器之間無外掛化的音視訊互通成為可能, 大大降低了音視訊開發的門檻,開發者只需要呼叫 WebRTC API 即可快速構建出音視訊應用。
直播中我們關心的幾個點: 延遲 、 質量 、 成本 等。
傳統rtmp直播痛點:TCP,延遲高、擁塞導致卡頓問題較多(質量問題)。
網際網路網路複雜、延時敏感、實時音視訊流暢度及清晰度較低以和運營成本較高等。
沒有一項技術能兼顧並解決直播中的所有問題,RTC是時延、流暢、質量、成本等的平衡,成為技術選型落地的模型。
相對來說 RTC包含的技術也是更加的複雜,如下圖所示:
2. 美顏濾鏡
在 1.0 的時候很多小夥伴說需要美顏功能,或者自己怎麼實現美顏。新版本里我們在 Android 和 iOS 上都自帶了一個基礎美顏的庫,這樣大家可以在此基礎上實現更多美顏的功能和玩法。
3. 更多的協議支援
協議 |
推流 |
拉流 |
Rtmp/Rtmps |
支援 |
支援 |
Http/Https |
支援 |
支援 |
Rtsp |
支援 |
支援 |
Hls |
不支援 |
支援 |
Mp4 |
不支援 |
支援 |
Mkv |
不支援 |
支援 |
Mp3 |
不支援 |
支援 |
除此之外,其他的一些播放格式也都可以支援,因為我們這次開源的核心中包含了 FFMpeg ,可以做一個超級播放器使用。
4. 自採集 / 自渲染
l
自定義視訊採集
如果您自研(或者購買第三方)美顏和特效處理模組,則需要自己採集和處理攝像頭拍攝畫面,您可以通過
呼叫
的
enableCustomVideoCapture
介面關閉
庫
自己的攝像頭採集和影像處理邏輯。然後您可以使用
sendCustomVideoData
介面向
庫
填充您自己的視訊資料。
l
自定義視訊渲染
使用 OpenGL 進行視訊畫面的渲染,如果您是用在遊戲開發中,或者需要在自己的介面引擎中嵌入
庫
,那麼就要自己渲染視訊畫面。
l
自定義音訊採集
如果您是在特殊硬體裝置上使用 ,當需要外接聲音採集裝置並自己採集聲音資料時,您可以通過
呼叫
enableCustomAudioCapture
介面關閉
庫
預設的聲音採集流程。然後您可以使用
sendCustomAudioData
介面向
庫
填充您自己的聲音資料。
l
獲取音訊原資料
聲音模組是一個高複雜度的模組,SDK 需要嚴格控制聲音裝置的採集和播放邏輯。在某些場景下,當您需要獲取遠端使用者的音訊資料或者需要獲取本地麥克風採集到的音訊資料時,可以通過
庫
提供的相應的回撥介面來實現。
5. 螢幕共享
隨著音視訊的迅速發展,無論是在商用還是娛樂方面都有很多場景的實際應用,玩法也是越來越多了,隨之而來的就是對衍生功能要求的提高。螢幕共享 都 是對於商用和娛樂社交場景最重要的功能之一 。開源的新版本也同樣支援這一功能。
iOS |
Android |
Mac OS |
Windows |
✓ |
✓ |
✓ |
✓ |
常用的應用場景:
線上教育:
適用於大班課、小班課等多種教育場景,老師端可以通過螢幕共享將上課需要的課件,資料共享給學生,讓教學變得更加高效,提高效率節省時間。
遊戲直播 :
遊戲主播可以通過實時採集螢幕內容,以直播的方式共享給所有觀眾,讓觀眾能夠以主播同樣的視角體驗遊戲。這樣可以提高使用者的觀看體驗,讓使用者可以有身臨其境的感覺。使得使用者觀看的代入感更強,增加使用者的粘性。
視訊會議:
主持人可將電腦上的材料共享給遠端的與會方,所有人觀看螢幕的實時視訊流,達到資訊共享的目的。主持人不必再提起分發文件,因為參與者可以在演示者的螢幕上看到任何文件或檔案,甚至可以要求會議者通過螢幕共享工具的傳輸功能傳送這些文件和檔案。
遠端演示:
在進行遠端協作或操作演示時,可以通過採集螢幕和視窗的內容,直觀演示具體操作步驟,幫助他人快速理解。螢幕共享允許的線上演示是組織與客戶和客戶互動的完美方法。藉助螢幕共享應用程式,不僅銷售人員可以展示他們的產品,而且他們還可以通過提供 PC 鍵盤或滑鼠的遠端控制來邀請客戶體驗軟體程式等專案。這是螢幕共享工具的最佳好處之一。
線上培訓:
通過線上培訓中使用螢幕共享工具,組織可以節省大量資金,因為他們不必設定整個投影儀設定併為外部講座付費。相反,講師的材料可以通過螢幕共享應用程式從他們的 PC 螢幕輕鬆共享,供所有與會者檢視。講師甚至可以使用這樣的螢幕共享功能作為白板或參與者指標來與學員互動,從而形成互動式和娛樂性的學習環境。
6. 更多玩法
新版本增加非常多的功能,這樣就能夠實現更復雜的應用場景,比如:使用 SEI 訊息實現線上同步答題;使用 RTC 推拉流實現語音聊天室,線上 KTV ,狼人殺;使用 RTMP+RTC 實現線上互動連麥直播場景,比如電商直播;使用播放器元件實現抖音、快手短視訊等等應用場景。
最後期待大家體驗新版本,給我們多多提意見和建議。
體驗地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013909/viewspace-2857370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- OBS+Nginx+VLC推拉流Nginx
- FFmpeg開發筆記(十五)詳解MediaMTX的推拉流筆記
- 技術分享| 如何搭建直播場景下的推拉流媒體伺服器伺服器
- 百億級企業級 RPC 框架開源了!RPC框架
- 開源+SEO=什麼?
- FFmpeg開發筆記(四十)Nginx整合rtmp模組實現RTMP推拉流筆記Nginx
- 視訊直播技術乾貨:一文讀懂主流視訊直播系統的推拉流架構、傳輸協議等架構協議
- 這麼好用的低延時直播,網易雲信竟然將它開源了?!
- 為了直播流暢,實現直播商城原始碼的轉碼原始碼
- 流是什麼
- collection包1.1.0都升級了什麼功能
- 拋卻紛爭,百度給開源世界帶來了什麼?
- 開源堡壘機是什麼?開源堡壘機的優缺點是什麼?
- 什麼是等級保護?為什麼要開展等級保護?
- 為什麼要貢獻開源
- 開源了!唱吧 UI 元件庫開源了!UI元件
- 用開源軟體打造企業級 DevOps 工作流(一):概述dev
- 什麼是 TCP 流?TCP
- 你真的瞭解 “開源” 麼?請查收【保姆級】開源百科
- 開放計算十年,改變了什麼,又顛覆了什麼?
- 什麼情況!華為開源JDK!JDK
- TiFlash 開源了
- 趣說開源|為什麼要參與到開源社群中?
- 5W1H聊開源之What——開源是什麼?
- 開源是什麼意思?開源軟體優缺點有哪些?
- 小程式直播系統開發是什麼,功能怎麼樣?
- 什麼是資料流?
- 什麼是流處理
- Sight——殺手級提升Laravel開發速度的元件現在開源了!Laravel元件
- 實現直播帶貨系統推流,你進行推流監控了嗎?
- 開源既然不免費那麼花錢了嗎?
- 是什麼成就了現象級手遊《明日方舟》?
- 一對一直播開發時常用的推流器,一對一直播開發需要推流器嗎?
- 為什麼要開展等級保護工作?有什麼好處?
- 什麼是重繪repaint?什麼是迴流reflow?AI
- 是什麼讓我開始了元件化?元件化
- RAGFlow開源Star量破萬,是時候思考下RAG的未來是什麼了
- 抖音直播怎麼開通?抖音直播怎麼新增直播商品