什么是流媒體服務?
流媒體是指采用流式傳輸的方式傳播多媒體檔案,比如現在常見的直播應用抖音、快手以及視頻網站,它們的背后都是流媒體服務支撐著,
和播放硬碟上的視頻檔案不同,流媒體在播放前不會下載整個檔案,只是將當前資料發送給客戶端,流媒體資料流隨時傳送隨時播放,只是在開始時有些延遲,至于如何減少延遲,我在接下來的文章中會繼續分析,
為什么需要流媒體服務?
邊下邊播
在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微信群,共同探討進步

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/289814.html
標籤:Go
上一篇:Python作用域、閉包與裝飾器
下一篇:Python基礎之os模塊簡介
