<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何選擇音視頻開源項目,避坑指南

          共 3377字,需瀏覽 7分鐘

           ·

          2021-11-26 20:34

          關注、星標公眾號,直達精彩內容
          文章來源:網(wǎng)絡


          音視頻業(yè)務的繁榮,必定造就開源項目的繁榮,反過來說也是一樣的,互相成就。遍地都是開源的輪子,如何選擇?提供一個有效的角度,可作為避坑指南。如果已經入坑了,您躺平就好,入坑就已經有了門戶之見,死生有命富貴在天。

          活躍程度

          活躍程度,就是項目的年齡和更新頻率。

          活得久就活得越久,一般活幾年的項目誰不遇到點問題,要死早死了,幾年還沒死那可能后面死的概率也小了。

          不更新的項目就是坑了,沒有哪個開源項目拿來就能用的,除了那個996.ICU[1],一般開源項目都是會遇到問題的,有人在更新維護就很重要。

          SRS的Star是音視頻服務器中最多的,但是它的更新不穩(wěn)定,活躍度斷斷續(xù)續(xù)的。最近2年活躍度還不錯,如何持續(xù)10年是至關重要,也是非常大的挑戰(zhàn)。

          Janus的Star雖然不是最多,但是一直持續(xù)活躍,長遠看是SRS的真正競爭對手。它背后有公司在支撐,這是一種活躍項目的典型思路。

          業(yè)內口碑不錯的Mediasoup,很明顯已經走在停滯的邊緣,再過幾年估計就和NginxRTMP一樣停止更新了。當然它有值得學習的地方。

          曾經直播大火時知名的開源服務器,目前Star也挺可觀的。雖然項目已經停止更新很多年,但是Star還是在平穩(wěn)增長,所以這是做開源不能過分在乎Star的原因,躺平也能漲Star。

          Nginx雖然不是音視頻服務器,也是幾乎人盡皆知的服務器,很意外的是它一直在持續(xù)更新了很多年。它背后也是后一家商業(yè)公司在支撐,要想做好開源,沒有商業(yè)支撐很難持續(xù)活躍。

          FFmpeg不是音視頻服務器,但是是音視頻業(yè)內的楷模,這活躍程度和持續(xù)的年數(shù)也是所有打算特別是沖動著做開源項目的楷模,18年持續(xù)活躍,請收下我的膝蓋。

          Go和WebRTC在一起會發(fā)生什么?總有輪子能滿足你,總有語言粉絲要重新擼一遍,看起來pion作為庫的活躍度還可以,但是別著急,3年后再看看圖吧。PS:我個人不看好因為語言偏好就重新搞個項目,比如Go或Rust的RTMP server,呃。

          ion是pion做的一個SFU,還沒出來多久就要掛了的圖像。所以請不要再宣傳ion多牛逼了,真的有點誤人子弟啦。PS:我其實是pion/transport的contributor,我覺得pion做測試框架不錯,壓測和回歸測試。

          定位

          為什么要做個開源項目?一言不合就造個輪子,反正也不要錢。

          搜下RTMP Server[2],有800多個項目,有C的[3]有C++的[4]有Nodejs的[5]有Go的[6]有Python的[7],有Rust的,有Java的等等。

          很大一部分是因為語言原因,自己做音視頻的更喜歡Rust,就搞個吧,占個坑吧。Go也是如此吧,新語言做老領域的開源項目,很多都是這種沖動。

          老語言也一樣,比如C看不慣C++的浮躁所以要搞個,C++看不慣C的低效得搞個,C++11看不起C++98還是得再來一個,C++20出來肯定還得有RTMP server被創(chuàng)造出來。

          因此,看開源項目的定位(介紹)就很關鍵,自己想清楚了定位,有自己的特點,才能和其他開源項目配合起來,才能做到長久更新。

          看幾個音視頻服務器的介紹:

          ?nginx-rtmp[8], NGINX-based Media Streaming Server. 做Nginx的,缺個媒體服務器,所以我做了。?srs[9], SRS is a simple, high efficiency and realtime video server, supports RTMP/WebRTC/HLS/HTTP-FLV/SRT/GB28181. 簡單高效,直播和WebRTC互聯(lián)網(wǎng)場景。?janus-gateway[10], Janus WebRTC Server. 做會議(WebRTC)的服務器。?mediasoup[11], Cutting Edge WebRTC Video Conferencing. 一個CuttingEdge的WebRTC會議服務器。?licode[12], Open Source Communication Provider based on WebRTC and Cloud technologies. 基于云的WebRTC服務器。?FFmpeg[13], A complete, cross-platform solution to record, convert and stream audio and video. 強大完整的,跨平臺的,錄制轉碼和音視頻工具。

          為何Mediasoup和Licode代碼看起來都比Janus牛逼,但為何就是干不過呢:

          ?Mediasoup的Cutting Edge到底是啥呢?是個技術點,和Janus有啥優(yōu)勢呢,其實技術都覺得自己牛逼,一般弄不清楚。?Licode是要基于云,現(xiàn)在好像也都是能基于云的,所以也沒看出來到底有何不一樣的目標。

          同樣技術的還有NginxRTMP,不能拿著Nginx的錘子,就滿天下都能敲釘子,敲了Web的釘子,還要敲流媒體的釘子。

          SRS有何不同:

          ?音視頻的門檻是核心的復雜性,門檻太高了,編譯就要死一片,各種場景死一片,太難了。所以SRS的核心目標是要簡單,足夠簡單,更簡單。?從業(yè)務上看,互聯(lián)網(wǎng)音視頻正在跨越行業(yè),實現(xiàn)業(yè)務價值的同學不關注直播還是RTC,小孩子才做選擇,成年人我都要。客戶現(xiàn)在只說了要做直播,如果他回頭要連麥(RTC)呢;客戶現(xiàn)在說了只做會議,回頭他要錄制和轉CDN直播呢。直播和RTC已經融合了很久,業(yè)務并不區(qū)分是直播還是RTC,必須兩個都支持得很好。?互聯(lián)網(wǎng)音視頻服務器,云支持的SRS就支持,因為互聯(lián)網(wǎng)的業(yè)務特點是可能會暴增,如果云不支持就不能遷移上云。另外,開源是對云的很好配合,有些場景探索用開源,自建預研用開源,小規(guī)模快速跑通業(yè)務用開源,私有化部署用開源。

          另外,為了簡單高效,SRS也不做客戶端和編解碼,F(xiàn)Fmpeg能做的RTSP或其他協(xié)議拉流都用FFmpeg做。

          References

          [1]?996.ICU:?https://github.com/996icu/996.ICU
          [2]?RTMP Server:?https://github.com/search?q=rtmp+server&type=repositories
          [3]?有C的:?https://github.com/arut/nginx-rtmp-module
          [4]?有C++的:?https://github.com/ossrs/srs
          [5]?有Nodejs的:?https://github.com/illuspas/Node-Media-Server
          [6]?有Go的:?https://github.com/gwuhaolin/livego
          [7]?有Python的:?https://github.com/theintencity/rtmplite
          [8]?nginx-rtmp:?https://github.com/arut/nginx-rtmp-module
          [9]?srs:?https://github.com/ossrs/srs
          [10]?janus-gateway:?https://github.com/meetecho/janus-gateway
          [11]?mediasoup:?https://github.com/versatica/mediasoup
          [12]?licode:?https://github.com/lynckia/licode
          [13]?FFmpeg:?https://ffmpeg.org/

          來源:網(wǎng)絡

          版權歸原作者所有,如有侵權,請聯(lián)系刪除。
          ???????????????? ?END ?????????????????
          關注我的微信公眾號,回復“加群”按規(guī)則加入技術交流群。
          歡迎關注我的視頻號:

          點擊“閱讀原文”查看更多分享,歡迎點分享、收藏、點贊、在看。
          瀏覽 77
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产黄色小电影 | 亚洲午夜无码久久 | 久久久久99人妻一区 | 音影先锋成人 | 精品国产乱药久久久久久 |