視頻點(diǎn)播流媒體服務(wù)器調(diào)研(流媒體點(diǎn)播系統(tǒng))
視頻點(diǎn)播流媒體服務(wù)器調(diào)研(流媒體點(diǎn)播系統(tǒng))
需要選型一個(gè)流媒體服務(wù)器,故搜羅網(wǎng)上資料,整理出以下內(nèi)容供參考
出處皆已標(biāo)注鏈接
目錄
流媒體協(xié)議
直播流媒體協(xié)議
理解RTMP、HttpFlv和HLS的正確姿勢(shì)
流媒體文件支持格式
市面上主流的流媒體服務(wù)器歸納
38款流媒體服務(wù)器開源軟件
主流流媒體服務(wù)器介紹:
AMS/wowza/red5/SRS主要功能對(duì)照分析:
AMS(FMS)流媒體服務(wù)器系統(tǒng)
wowza流媒體服務(wù)器系統(tǒng)
Red5流媒體服務(wù)器系統(tǒng)
SRS流媒體服務(wù)器系統(tǒng)
SRS之深入淺出看流媒體:
Linux下視頻流媒體服務(wù)器搭建詳解
websocket Media Source Extensions API
EasyDarwin
最終選型
其他資料
流媒體協(xié)議
RTMP&HLS(專用協(xié)議流式)實(shí)時(shí)流傳輸既可傳輸實(shí)況直播,也可傳輸完整的音視頻文件
HTTP漸進(jìn)式(基于TCP):順序流媒體不可用于實(shí)況直播,僅能傳輸完整的音視頻文件
原則上,RTSP,RTMP,HTTP 都可以做直播和點(diǎn)播,
但一般做 直播用 RTSP和RTMP,做點(diǎn)播用 HTTP。
直播流媒體協(xié)議
https://blog.csdn.net/u011216417/article/details/72835402
RTP/RTCP/RTSP/WebRTC/RTMP/HLS
理解RTMP、HttpFlv和HLS的正確姿勢(shì)
https://www.jianshu.com/p/32417d8ee5b6
流媒體文件支持格式
MP4
3GP
FLV
F4V
MPEG-TS
市面上主流的流媒體服務(wù)器歸納
FMS(AMS)(Flash mediaserver) 商業(yè)級(jí) 收費(fèi)
Red5 開源 (穩(wěn)定性與性能差,大多作為個(gè)人使用)
NGINX-RTMP(主要用于點(diǎn)播)開源
Wowza (Wowza Streaming Engine) 商業(yè)級(jí) 收費(fèi)
SRS (Simple Rtmp Server)
阿里云(視頻點(diǎn)播/直播等) 商業(yè)級(jí) 收費(fèi)
若有興趣可以看看其他市面上的流服務(wù)器:
38款流媒體服務(wù)器開源軟件
https://www.cnblogs.com/lidabo/p/7418505.html
主流流媒體服務(wù)器介紹:
https://blog.csdn.net/datamining2005/article/details/55260491
FMS 4.x版本可破解版本
Red5穩(wěn)定性不夠
Nginx推流偽流媒體(http漸進(jìn)式)
AMS/wowza/red5/SRS主要功能對(duì)照分析:
http://www.cuplayer.com/player/PlayerCodeCourse/2017/11093244.html
AMS(FMS)流媒體服務(wù)器系統(tǒng)
Flash Media Server (簡(jiǎn)稱FMS),后更名為Adobe Flash Media Server (簡(jiǎn)稱AMS)。它是較早(2002年)做流媒體服務(wù)器產(chǎn)品的,原公司是Macromedia,后來被Adobe收購了,它是流視頻和實(shí)時(shí)通信領(lǐng)域業(yè)界領(lǐng)先的解決方案,該產(chǎn)品可以快速搭建起一套流媒體直播、點(diǎn)播服務(wù)器。
wowza流媒體服務(wù)器系統(tǒng)
wowza全名是Wowza Streaming Engine,是一款非常優(yōu)秀的流媒體服務(wù)器產(chǎn)品。也算是除了FMS產(chǎn)品之外的一個(gè)老版子產(chǎn)品,產(chǎn)品發(fā)布于2007年,他在HLS(m3u8)分發(fā)方面是非常不錯(cuò)的。從wowza2.0到現(xiàn)在的wowza4.5,都曾關(guān)注和使用過他們的產(chǎn)品,總體來說性價(jià)比還是蠻高的。
Red5流媒體服務(wù)器系統(tǒng)
Red5 (media server) 流媒體系統(tǒng),免費(fèi)開源的是它最大的優(yōu)點(diǎn),也因此有很多用戶在使用它們的產(chǎn)品,然后不足在于占用服務(wù)器資源較高。
SRS流媒體服務(wù)器系統(tǒng)
SRS(Simple Rtmp Server)定位是運(yùn)營級(jí)的互聯(lián)網(wǎng)直播服務(wù)器集群,追求更好的概念完整性和最簡(jiǎn)單實(shí)現(xiàn)的代碼,這是該產(chǎn)品自己官方的介紹。值得一說的是,前面幾個(gè)產(chǎn)品都是國外的,而這個(gè)作者是國內(nèi)的。
SRS之深入淺出看流媒體:
https://blog.csdn.net/zjqlovell/article/details/50786040
Linux下視頻流媒體服務(wù)器搭建詳解
https://blog.csdn.net/u011596455/article/details/79431116
websocket Media Source Extensions API
當(dāng)然也看到有人提出 websocket Media Source Extensions API(比較小眾就不嘗試了,等下出問題了歇逼)
初級(jí)調(diào)研排除收費(fèi)與Red5,接下來準(zhǔn)備對(duì)比Nginx-RTMP于SRS和DSS這三種流服務(wù)器。
因?yàn)槟繕?biāo)APP暫不提供直播功能,在點(diǎn)播領(lǐng)域的話使用HTTP協(xié)議即可。
EasyDarwin
恰巧國內(nèi)有專門做開源解決方案EasyDarwin封裝了一整套流媒體框架
http://www.easydarwin.org/pdf/EasyDarwin_Introduction.pdf
所以花時(shí)間研究了下EasyDarwin這套解決方案。
發(fā)現(xiàn)!你妹,EasyDSS解決方案也分為開源和商業(yè),開源的項(xiàng)目沒卵用,真正有用的項(xiàng)目是要錢的,基礎(chǔ)的點(diǎn)播模塊還需要商業(yè)版才能使用,凸,故放棄。
流媒體平臺(tái)框架 EasyDarwin
https://www.oschina.net/p/easydarwin
EasyDarwin開源項(xiàng)目(7Project):
EasyDarwin開源項(xiàng)目至今包括有:EasyDarwin(開源流媒體服務(wù)器)、EasyCMS(中心管理服務(wù)器)、EasyCamera(云攝像機(jī)服務(wù))、EasyClient(云平臺(tái)客戶端)、EasyAACEncoder(開源音頻編碼項(xiàng)目)、EasyAudioDecoder(開源音頻解碼項(xiàng)目)、EasyProtocol(開源云平臺(tái)協(xié)議)等多個(gè)項(xiàng)目,完整地構(gòu)架了一套開源流媒體云平臺(tái)方案。
EasyDarwin商業(yè)項(xiàng)目(8Project)
同時(shí),EasyDarwin開源團(tuán)隊(duì)也開發(fā)了很多流媒體方面的商業(yè)項(xiàng)目,包括有:
EasyPlayer 是一款精煉、高效、穩(wěn)定的流媒體播放器,分為RTSP版和Pro版本,EasyPlayer RTSP版本支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android、iOS多個(gè)平臺(tái),EasyPlayerPro支持Android、iOS,支持各種各樣的流媒體音視頻直播/點(diǎn)播播放,項(xiàng)目地址:https://github.com/EasyDarwin/EasyPlayer;
EasyPusher 是一款簡(jiǎn)單、高效、穩(wěn)定的一款標(biāo)準(zhǔn)RTSP/RTP協(xié)議直播推送庫,支持將H.264/G.711/G.726/AAC等音視頻數(shù)據(jù)推送到RTSP流媒體服務(wù)器進(jìn)行低延時(shí)直播或者視頻通信,支持Windows、Linux、ARM、Android、iOS等平臺(tái),EasyPusher配套EasyDarwin流媒體服務(wù)器、EasyPlayer RTSP播放器適用于特殊行業(yè)的低延時(shí)應(yīng)急指揮需求!項(xiàng)目地址:https://github.com/EasyDarwin/EasyPusher;
EasyNVR 攝像機(jī)(通用RTSP、Onvif攝像機(jī))接入服務(wù),EasyNVR能夠通過簡(jiǎn)單的攝像機(jī)通道配置、存儲(chǔ)配置、云平臺(tái)對(duì)接配置、CDN配置等,將統(tǒng)監(jiān)控行業(yè)里面的高清網(wǎng)絡(luò)攝像機(jī)IP Camera、NVR、移動(dòng)拍攝設(shè)備接入到EasyNVR,EasyNVR能夠?qū)⑦@些視頻源 的音視頻數(shù)據(jù)采集到設(shè)備端,進(jìn)行全平臺(tái)終端直播、錄像存儲(chǔ)、錄像檢索和錄像回放。并且EasyNVR能夠?qū)⒁曨l源的直播數(shù)據(jù)對(duì)接到第三方視頻平臺(tái)、CDN網(wǎng)絡(luò),實(shí)現(xiàn)互聯(lián)網(wǎng)直播分發(fā),具體接入方法見https://github.com/EasyDarwin/EasyNVR;
EasyIPCamera 是一套精煉、高效、穩(wěn)定的RTSP服務(wù)器組件,調(diào)用簡(jiǎn)單靈活,輕松嵌入部署到IPCamera中,并發(fā)性能屬于行業(yè)領(lǐng)先水平,廣泛應(yīng)用于IPCamera RTSP服務(wù)、Android/Windows投屏/同屏直播服務(wù),例如課堂教學(xué)同屏、會(huì)議同屏、廣告投放同屏等!項(xiàng)目地址:https://github.com/EasyDarwin/EasyIPCamera;
EasyRTMP 是一套調(diào)用簡(jiǎn)單、功能完善、運(yùn)行高效穩(wěn)定的RTMP功能組件,經(jīng)過多年實(shí)戰(zhàn)和線上運(yùn)行打造,支持RTMP推送斷線重連、環(huán)形緩沖、智能丟幀、網(wǎng)絡(luò)事件回調(diào),支持Windows、Linux、arm(hisiv100/hisiv200/hisiv300/hisiv400/etc..)、Android、iOS平臺(tái),支持市面上絕大部分的RTMP流媒體服務(wù)器,包括Red5、Ngnix_rtmp、crtmpserver等主流RTMP服務(wù)器,能夠完美應(yīng)用于各種行業(yè)的直播需求,手機(jī)直播、桌面直播、攝像機(jī)直播、課堂直播等等方面!項(xiàng)目地址:https://github.com/EasyDarwin/EasyRTMP;
EasyRTSPClient 是一套簡(jiǎn)單、穩(wěn)定、高效、易用的RTSPClient工具庫,支持Windows、Linux、ARM、Android、iOS等幾乎所有平臺(tái),支持RTP Over TCP/UDP,支持?jǐn)嗑€重連,能夠接入市面上99%以上的IPC,調(diào)用簡(jiǎn)單且成熟穩(wěn)定,能廣泛應(yīng)用于播放器、NVR、流媒體系統(tǒng)級(jí)聯(lián)等產(chǎn)品中!項(xiàng)目地址:https://github.com/EasyDarwin/EasyRTSPClient;
EasyHLS 是一套簡(jiǎn)單、可靠、高效、穩(wěn)定的HLS直播切片SDK,能夠?qū)?shí)時(shí)的H.264視頻和AAC音頻流實(shí)時(shí)切片成可供WEB、Android、iOS、微信等全平臺(tái)客戶端觀看的HLS(m3u8 ts)直播流,搭配EasyRTSPClient、EasyAACEncoder等項(xiàng)目,可將大部分的安防攝像機(jī)對(duì)外進(jìn)行HLS直播發(fā)布,同時(shí)也可靈活集成在各種流媒體服務(wù)中!項(xiàng)目地址:https://github.com/EasyDarwin/EasyHLS;
EasyRMS 是一套基于HLS協(xié)議的錄像與回放服務(wù)器,EasyRMS能夠?qū)TSP源獲取到本地進(jìn)行本地存儲(chǔ)或者存儲(chǔ)到阿里云對(duì)象存儲(chǔ)OSS云存儲(chǔ)等第三方存儲(chǔ)平臺(tái),同時(shí)EasyRMS提供錄像的檢索與查詢接口,檢索出錄像的HLS地址進(jìn)行錄像回放!項(xiàng)目地址:https://github.com/EasyDarwin/EasyRMS;
EasyDarwin云平臺(tái)
EasyDarwin云平臺(tái)是一套由EasyDarwin、EasyCMS、EasyCamera、EasyClient、nginx、redis構(gòu)成的完整云平臺(tái)架構(gòu),支持分布式、跨平臺(tái)、多點(diǎn)部署,流媒體服務(wù)器支持負(fù)載均衡,按需直播,非常適用于互聯(lián)網(wǎng)化的安防、智能家居、幼教平臺(tái)、透明廚房、透明家裝等多個(gè)行業(yè)應(yīng)用:
最終選型
最后糾結(jié)的將范圍縮短為三個(gè)項(xiàng)目:DSS和SRS和Nginx
接下來分析這兩種流媒體對(duì)視頻點(diǎn)播的支持程度
分別展開介紹:
1.DSS:蘋果公司的Darwin Streaming Server(簡(jiǎn)稱DSS)完全免費(fèi),沒有任何功能限制,且符合國際標(biāo)準(zhǔn)。但DSS在linux上的安裝比較繁瑣,所以大多數(shù)人會(huì)選擇easyDSS(就是上面提到的EasyDarwin)
2.SRS:(Simple Rtmp Server)一個(gè)采用MIT協(xié)議授權(quán)的國產(chǎn)的簡(jiǎn)單的RTMP/HLS 直播服務(wù)器,其核心的價(jià)值理念在于簡(jiǎn)單高效
一位瘋狂舔SRS的小哥哥說<SRS超級(jí)強(qiáng),無所不能秒殺其他同類媒體服務(wù)器>
https://blog.51cto.com/renjunjie622/1782407
后SRS官方改名為:ossrs
github:
產(chǎn)品定位:https://github.com/ossrs/srs/wiki/v1_CN_Product
產(chǎn)品發(fā)展:https://ossrs.net/srs.release/releases/
總的來看SRS還是可以的…
附帶資料:
完整的直播 點(diǎn)播全端解決方案 https://blog.csdn.net/dipolar/article/details/64122168
3.Nginx-RTMP:
戰(zhàn)斗民族俄羅斯人民開發(fā)的一款NGINX的流媒體插件,除了直播發(fā)布音視頻流之外具備流媒體服務(wù)器的常見功能
比如推拉流媒體資源
基于HTTP的FLV/MP4 VOD點(diǎn)播
HLS (HTTP Live Streaming) M3U8的支持
基于http的操作(發(fā)布、播放、錄制)
可以很好的協(xié)同現(xiàn)有的流媒體服務(wù)器以及播放器一起工作
在線調(diào)用ffmpeg對(duì)流媒體進(jìn)行轉(zhuǎn)碼
H264/AAC音視頻編碼格式的支持
linux/BSD/MAC系統(tǒng)的支持
因?yàn)槲覀內(nèi)绻龅狞c(diǎn)播的話不涉及直播板塊,幾乎還是使用HTTP協(xié)議,根據(jù)之前的一篇博文:(NGINX-RTMP風(fēng)生水起有幾個(gè)很重要的因素。首先2012年開始CDN業(yè)務(wù)開始快速增長(zhǎng),隨之直播業(yè)務(wù)也需求暴漲,沒有特別滿意的流媒體服務(wù)器;其次,NGINX在HTTP領(lǐng)域絕對(duì)是霸主,大家對(duì)于NGINX系的熟悉程度很高,便于維護(hù);再次,直播點(diǎn)播使用一套服務(wù)器,很有誘惑力,這可以算是“萬金油”效應(yīng),很多套服務(wù)器搞得焦頭爛額,肯定一套服務(wù)器能解決問題;最后,CDN是運(yùn)維比技術(shù)牛逼的行業(yè),運(yùn)維的信心都是運(yùn)行出來的,NGINX運(yùn)行那么良好,那么NGINX-RTMP也肯定不錯(cuò)。)
綜上所述,DSS我對(duì)他沒有什么好感,SRS是挺牛逼的但是總覺得用的話是大材小用,畢竟人家還是主做流直播的,轉(zhuǎn)點(diǎn)播也需要一點(diǎn)功夫。個(gè)人覺得可以上一波NGINX,一個(gè)原因是主要目標(biāo)是視頻點(diǎn)播,上的還是HTTP服務(wù),其次是Nginx這塊我們可能上手也比較OK。
其他資料
https://www.idcicp.com/assist/assistInfo_22381.html
CPU:兩顆至強(qiáng)E5530
內(nèi)存:16GB
硬盤:2T
操作系統(tǒng):CentOS 6.5 64bit
這樣子的一個(gè)配置大致是能滿足一個(gè)200-300人同時(shí)在線的短視頻app的需求的
http://www.webxun.com/newsxq_201.html
暫不考慮直播功能(美顏的算法與聊天室功能還是服務(wù)器壓力)
https://bbs.csdn.net/topics/300252276
lvc的live555的server端也小有名氣
https://blog.csdn.net/dxpqxb/article/details/83012950
srs andrioid直播推流(可以學(xué)習(xí)一下,不過先不碰直播這個(gè)板塊吧)
https://blog.csdn.net/yb1314111/article/details/84983568
抖音短視頻源碼中視頻排序模塊熱門列表解決方案
https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/78780562
利用Simple-RTMP-Server搭建RTMP和HLS直播服務(wù)
https://blog.csdn.net/elesos/article/details/80899787
利用Nginx搭建RTMP視頻直播,點(diǎn)播服務(wù)器,ffmpeg推流,回看
下載的一些p2p流媒體服務(wù)的研究資料
鏈接:https://pan.baidu.com/s/1hwMk_YdeGFI1nwC6BVM3XQ
提取碼:rcjq
————————————————
版權(quán)聲明:本文為CSDN博主「我的浪漫與極端」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013202518/java/article/details/89956990