當前位置:網站首頁>SRS學習路徑

SRS學習路徑

2022-01-27 17:21:59 音視頻開發進階

6188e2c8595e94da5c92e4c697693f69.png

新同學專用的學習路徑,請一定按照文檔操作。

文章中有較多的鏈接,鏈接地址是在文末尾的。也可以點文末尾的閱讀原文,查看本文在簡書上的版本。

快速預覽

先過第一個門檻:看到直播和WebRTC長什麼樣子,能跑出來下圖的效果,需要5~15分鐘左右。

9a890d490a603816a68c064aaa76933e.png

Note: 這個看似很容易,甚至直接在SRS官網[1]中就能點開兩個頁面,但是一定要自己用SRS搭建出來才算,而不是直接打開線上的演示網頁。

具體怎麼做呢?請參考Wiki: Getting Started[2]

接觸一個新的東西,首先就要有直觀的體驗和感覺,這個門檻雖然看起來很簡單,但是它涉及到了音視頻的幾乎全鏈路的東西:

•FFmpeg,强大的音視頻客戶端,推拉流和編解碼,以及各種處理的能力。•Chrome(或瀏覽器),H5是最便捷的客戶端,非常方便演示和學習,SRS功能基本上都有H5的演示。•音視頻協議:RTMP,HTTP-FLV,HLS和WebRTC,這些操作步驟中,已經涉及到了這些協議,也是實際應用中典型的用法。•SRS服務器,自己部署音視頻雲,或者提供音視頻的雲服務,SRS本質上就是視頻雲的一種服務器。

Note: 上面的拼圖還缺少移動端,其實移動端只是一種端,而並沒有新的協議,也可以下載SRS直播[3]客戶端,體驗上面的推流和播放,也可以輸入你的服務器的流地址播放。

深入場景

第二個門檻:了解音視頻應用的各個典型場景,大約五個核心場景,總共需要3~7天左右。

請根據Github: Wiki[4],或者國內請訪問Gitee: Wiki[5],這裏詳細描述了各個場景會使用到的技術,內容都是一樣的,Wiki會同步更新到Github和Gitee。

典型的音視頻業務場景,包括但不限於:

•全平臺直播,小荷才露尖尖角。只需要上圖的Encoders(FFmpeg/OBS)推送RTMP到SRS[6];一臺SRS Origin(不需要Cluster),轉封裝成HTTP-FLV流[7]、轉封裝成HLS[8];Players根據平臺的播放器可以選HTTP-FLV或HLS流播放。•WebRTC通話業務,一對一通話多人通話,會議室等。WebRTC[9]是SRS4引入的關鍵和核心的能力,從1到3秒延遲,到100到300毫秒延遲,絕對不是數字的變化,而是本質的變化。•監控和廣電上雲,各行業風起雲湧。除了使用FFmpeg主動拉取流到SRS[10],還可以廣電行業SRT協議[11]推流,或監控行業GB28181協議[12]推流,SRS轉換成互聯網的協議觀看。•直播低延遲和互動,聚變近在咫尺。RTMP轉WebRTC播放[13]降低播放延遲,還能做直播連麥,或者使用WebRTC推流,未來還會支持WebTransport直播等等。•大規模業務,帶你裝逼帶你飛。如果業務快速上漲,可以通過Edge Cluster[14]支持海量Players,或者Origin Cluster[15]支持海量Encoders,當然可以直接平滑遷移到視頻雲。未來還會支持RTC的級聯和集群。

每個場景都可以自己搭建出來典型的應用。

了解細節

第三個門檻:了解每個縱向的技術點,應用場景,代碼和問題排查,大約3~6月左右。

•視頻專欄[16],包括環境搭建,代碼分析,還有零聲學院專業老師的講解。•解决方案[17],大家在各個不同場景中,應用SRS的分享和探索。•部署方案[18],如何部署實現不同的具體功能,這些功能可以組合起來使用。•集群和擴展[19],當業務量上昇,如何擴展單機到集群,如何服務不同區域的用戶。•集成和定制[20],如何和現有系統對接,如何驗證用戶,安全和防盜鏈機制等。•深度分析[21],協程原理,代碼分析,高性能服務器框架,性能優化等。

如果能踏踏實實的了解完SRS,音視頻真不難。

如果總想著三分鐘XXX,那可不是很難麼?

References

[1] SRS官網: https://ossrs.net
[2] Wiki: Getting Started: https://github.com/ossrs/srs/wiki/v4_CN_Home#getting-started
[3] SRS直播: http://ossrs.net/releases/app.html
[4] Github: Wiki: https://github.com/ossrs/srs/wiki/v4_CN_Home#effective-srs
[5] Gitee: Wiki: https://gitee.com/ossrs/srs/wiki/v4_CN_Home#effective-srs
[6] 推送RTMP到SRS: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleRTMP
[7] 轉封裝成HTTP-FLV流: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleHttpFlv
[8] 轉封裝成HLS: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleHLS
[9] WebRTC: https://gitee.com/ossrs/srs/wikis/v4_CN_WebRTC
[10] 拉取流到SRS: https://gitee.com/ossrs/srs/wikis/v4_CN_Ingest
[11] SRT協議: https://gitee.com/ossrs/srs/wikis/v4_CN_SRTWiki
[12] GB28181協議: https://github.com/ossrs/srs/issues/1500#issue-528623588
[13] RTMP轉WebRTC播放: https://github.com/ossrs/srs/issues/307#issue-76908382
[14] Edge Cluster: https://gitee.com/ossrs/srs/wikis/v4_CN_SampleRTMPCluster
[15] Origin Cluster: https://gitee.com/ossrs/srs/wikis/v4_CN_OriginCluster
[16] 視頻專欄: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#video-guides
[17] 解决方案: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#solution-guides
[18] 部署方案: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#deployment-guides
[19] 集群和擴展: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#cluster-guides
[20] 集成和定制: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#integration-guides
[21] 深度分析: https://gitee.com/ossrs/srs/wikis/v4_CN_Home#develop-guide

版權聲明
本文為[音視頻開發進階]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271721585804.html

隨機推薦