流媒體服務新手入門教程01--什么是流媒體服務及m7s介紹


什么是流媒體服務?

流媒體是指采用流式傳輸的方式傳播多媒體文件。比如現在常見的直播應用抖音、快手以及視頻網站,它們的背后都是流媒體服務支撐着。
和播放硬盤上的視頻文件不同,流媒體在播放前不會下載整個文件,只是將當前數據發送給客戶端。流媒體數據流隨時傳送隨時播放,只是在開始時有些延遲,至於如何減少延遲,我在接下來的文章中會繼續分析。

為什么需要流媒體服務?

邊下邊播

在2000年左右的時候,看電影一般還得下載到本地硬盤,很少有能直接在線用網頁播放的,而現在直播應用大放異彩,這里面不僅僅有web服務的進步,還有流媒體服務發展的功勞。

減輕設備端的壓力

想一下,那些主播用手機做直播的時候,雖然有很多人同時觀看,但是他的手機並不卡,這是什么原因呢?
因為觀眾並不是直接通過網絡觀看主播的直播,而是通過了流媒體服務。流媒體服務在主播和觀眾之間搭建了一條高速公路。

后期處理

比如對視頻做分析(包括美顏、AI人臉識別等)、存儲、事件等。

所以流媒體服務不僅僅是實時直播,它還是各種后期應用的前提條件,掌握好流媒體開發,更能升職加薪。

常見的開源流媒體服務

市面上常見的比較穩定的開源流媒體服務主要有下面幾種

  • nginx-rtmp-module 基於nginx,配置簡單,功能也比較簡單,主要應用於提供hls在線播放,很多盜版視頻網站都是基於這個方案
  • srs 功能強大,支持http接口和回調,我司項目第一版便是基於此
  • zlmediakit 功能強大,同樣支持http接口和回調和srs不相上下
  • m7s 新興的流媒體服務功能強大,支持http接口,暫時不支持http回調,但是特別方便二次開發,我司項目第二版便基於m7s

為什么選擇m7s

雖然srs和zlmediakit 都提供了http回調接口,但是它們都是采用的C/C++ 方案,不方便二次開發,基於回調能夠實現的功能又達不到我們的需求。

m7s采用golang開發,雖然沒有提供http回調接口,但是作者一開始就才用了插件的設計,方便用戶進行二次開發。另外m7s對外暴露了核心數據結構,可以很方便的獲取內部數據,便於業務處理。
這里是m7s官網插件的截圖,下一篇,我將分析m7s的內部設計。

另外歡迎大家加入m7s微信群,共同探討進步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM