1. 程式人生 > 其它 >流媒體服務新手入門教程01--什麼是流媒體服務及m7s介紹

流媒體服務新手入門教程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的內部設計。


作者:半山
出處:http://www.cnblogs.com/xdao/


本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。