视频点播流媒体服务器调研(流媒体点播系统)
视频点播流媒体服务器调研(流媒体点播系统)
需要选型一个流媒体服务器,故搜罗网上资料,整理出以下内容供参考
出处皆已标注链接
目录
流媒体协议
直播流媒体协议
理解RTMP、HttpFlv和HLS的正确姿势
流媒体文件支持格式
市面上主流的流媒体服务器归纳
38款流媒体服务器开源软件
主流流媒体服务器介绍:
AMS/wowza/red5/SRS主要功能对照分析:
AMS(FMS)流媒体服务器系统
wowza流媒体服务器系统
Red5流媒体服务器系统
SRS流媒体服务器系统
SRS之深入浅出看流媒体:
Linux下视频流媒体服务器搭建详解
websocket Media Source Extensions API
EasyDarwin
最终选型
其他资料
流媒体协议
RTMP&HLS(专用协议流式)实时流传输既可传输实况直播,也可传输完整的音视频文件
HTTP渐进式(基于TCP):顺序流媒体不可用于实况直播,仅能传输完整的音视频文件
原则上,RTSP,RTMP,HTTP 都可以做直播和点播,
但一般做 直播用 RTSP和RTMP,做点播用 HTTP。
直播流媒体协议
https://blog.csdn.net/u011216417/article/details/72835402
RTP/RTCP/RTSP/WebRTC/RTMP/HLS
理解RTMP、HttpFlv和HLS的正确姿势
https://www.jianshu.com/p/32417d8ee5b6
流媒体文件支持格式
MP4
3GP
FLV
F4V
MPEG-TS
市面上主流的流媒体服务器归纳
FMS(AMS)(Flash mediaserver) 商业级 收费
Red5 开源 (稳定性与性能差,大多作为个人使用)
NGINX-RTMP(主要用于点播)开源
Wowza (Wowza Streaming Engine) 商业级 收费
SRS (Simple Rtmp Server)
阿里云(视频点播/直播等) 商业级 收费
若有兴趣可以看看其他市面上的流服务器:
38款流媒体服务器开源软件
https://www.cnblogs.com/lidabo/p/7418505.html
主流流媒体服务器介绍:
https://blog.csdn.net/datamining2005/article/details/55260491
FMS 4.x版本可破解版本
Red5稳定性不够
Nginx推流伪流媒体(http渐进式)
AMS/wowza/red5/SRS主要功能对照分析:
http://www.cuplayer.com/player/PlayerCodeCourse/2017/11093244.html
AMS(FMS)流媒体服务器系统
Flash Media Server (简称FMS),后更名为Adobe Flash Media Server (简称AMS)。它是较早(2002年)做流媒体服务器产品的,原公司是Macromedia,后来被Adobe收购了,它是流视频和实时通信领域业界领先的解决方案,该产品可以快速搭建起一套流媒体直播、点播服务器。
wowza流媒体服务器系统
wowza全名是Wowza Streaming Engine,是一款非常优秀的流媒体服务器产品。也算是除了FMS产品之外的一个老版子产品,产品发布于2007年,他在HLS(m3u8)分发方面是非常不错的。从wowza2.0到现在的wowza4.5,都曾关注和使用过他们的产品,总体来说性价比还是蛮高的。
Red5流媒体服务器系统
Red5 (media server) 流媒体系统,免费开源的是它最大的优点,也因此有很多用户在使用它们的产品,然后不足在于占用服务器资源较高。
SRS流媒体服务器系统
SRS(Simple Rtmp Server)定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码,这是该产品自己官方的介绍。值得一说的是,前面几个产品都是国外的,而这个作者是国内的。
SRS之深入浅出看流媒体:
https://blog.csdn.net/zjqlovell/article/details/50786040
Linux下视频流媒体服务器搭建详解
https://blog.csdn.net/u011596455/article/details/79431116
websocket Media Source Extensions API
当然也看到有人提出 websocket Media Source Extensions API(比较小众就不尝试了,等下出问题了歇逼)
初级调研排除收费与Red5,接下来准备对比Nginx-RTMP于SRS和DSS这三种流服务器。
因为目标APP暂不提供直播功能,在点播领域的话使用HTTP协议即可。
EasyDarwin
恰巧国内有专门做开源解决方案EasyDarwin封装了一整套流媒体框架
http://www.easydarwin.org/pdf/EasyDarwin_Introduction.pdf
所以花时间研究了下EasyDarwin这套解决方案。
发现!你妹,EasyDSS解决方案也分为开源和商业,开源的项目没卵用,真正有用的项目是要钱的,基础的点播模块还需要商业版才能使用,凸,故放弃。
流媒体平台框架 EasyDarwin
https://www.oschina.net/p/easydarwin
EasyDarwin开源项目(7Project):
EasyDarwin开源项目至今包括有:EasyDarwin(开源流媒体服务器)、EasyCMS(中心管理服务器)、EasyCamera(云摄像机服务)、EasyClient(云平台客户端)、EasyAACEncoder(开源音频编码项目)、EasyAudioDecoder(开源音频解码项目)、EasyProtocol(开源云平台协议)等多个项目,完整地构架了一套开源流媒体云平台方案。
EasyDarwin商业项目(8Project)
同时,EasyDarwin开源团队也开发了很多流媒体方面的商业项目,包括有:
EasyPlayer 是一款精炼、高效、稳定的流媒体播放器,分为RTSP版和Pro版本,EasyPlayer RTSP版本支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android、iOS多个平台,EasyPlayerPro支持Android、iOS,支持各种各样的流媒体音视频直播/点播播放,项目地址:https://github.com/EasyDarwin/EasyPlayer;
EasyPusher 是一款简单、高效、稳定的一款标准RTSP/RTP协议直播推送库,支持将H.264/G.711/G.726/AAC等音视频数据推送到RTSP流媒体服务器进行低延时直播或者视频通信,支持Windows、Linux、ARM、Android、iOS等平台,EasyPusher配套EasyDarwin流媒体服务器、EasyPlayer RTSP播放器适用于特殊行业的低延时应急指挥需求!项目地址:https://github.com/EasyDarwin/EasyPusher;
EasyNVR 摄像机(通用RTSP、Onvif摄像机)接入服务,EasyNVR能够通过简单的摄像机通道配置、存储配置、云平台对接配置、CDN配置等,将统监控行业里面的高清网络摄像机IP Camera、NVR、移动拍摄设备接入到EasyNVR,EasyNVR能够将这些视频源 的音视频数据采集到设备端,进行全平台终端直播、录像存储、录像检索和录像回放。并且EasyNVR能够将视频源的直播数据对接到第三方视频平台、CDN网络,实现互联网直播分发,具体接入方法见https://github.com/EasyDarwin/EasyNVR;
EasyIPCamera 是一套精炼、高效、稳定的RTSP服务器组件,调用简单灵活,轻松嵌入部署到IPCamera中,并发性能属于行业领先水平,广泛应用于IPCamera RTSP服务、Android/Windows投屏/同屏直播服务,例如课堂教学同屏、会议同屏、广告投放同屏等!项目地址:https://github.com/EasyDarwin/EasyIPCamera;
EasyRTMP 是一套调用简单、功能完善、运行高效稳定的RTMP功能组件,经过多年实战和线上运行打造,支持RTMP推送断线重连、环形缓冲、智能丢帧、网络事件回调,支持Windows、Linux、arm(hisiv100/hisiv200/hisiv300/hisiv400/etc..)、Android、iOS平台,支持市面上绝大部分的RTMP流媒体服务器,包括Red5、Ngnix_rtmp、crtmpserver等主流RTMP服务器,能够完美应用于各种行业的直播需求,手机直播、桌面直播、摄像机直播、课堂直播等等方面!项目地址:https://github.com/EasyDarwin/EasyRTMP;
EasyRTSPClient 是一套简单、稳定、高效、易用的RTSPClient工具库,支持Windows、Linux、ARM、Android、iOS等几乎所有平台,支持RTP Over TCP/UDP,支持断线重连,能够接入市面上99%以上的IPC,调用简单且成熟稳定,能广泛应用于播放器、NVR、流媒体系统级联等产品中!项目地址:https://github.com/EasyDarwin/EasyRTSPClient;
EasyHLS 是一套简单、可靠、高效、稳定的HLS直播切片SDK,能够将实时的H.264视频和AAC音频流实时切片成可供WEB、Android、iOS、微信等全平台客户端观看的HLS(m3u8 ts)直播流,搭配EasyRTSPClient、EasyAACEncoder等项目,可将大部分的安防摄像机对外进行HLS直播发布,同时也可灵活集成在各种流媒体服务中!项目地址:https://github.com/EasyDarwin/EasyHLS;
EasyRMS 是一套基于HLS协议的录像与回放服务器,EasyRMS能够将RTSP源获取到本地进行本地存储或者存储到阿里云对象存储OSS云存储等第三方存储平台,同时EasyRMS提供录像的检索与查询接口,检索出录像的HLS地址进行录像回放!项目地址:https://github.com/EasyDarwin/EasyRMS;
EasyDarwin云平台
EasyDarwin云平台是一套由EasyDarwin、EasyCMS、EasyCamera、EasyClient、nginx、redis构成的完整云平台架构,支持分布式、跨平台、多点部署,流媒体服务器支持负载均衡,按需直播,非常适用于互联网化的安防、智能家居、幼教平台、透明厨房、透明家装等多个行业应用:
最终选型
最后纠结的将范围缩短为三个项目:DSS和SRS和Nginx
接下来分析这两种流媒体对视频点播的支持程度
分别展开介绍:
1.DSS:苹果公司的Darwin Streaming Server(简称DSS)完全免费,没有任何功能限制,且符合国际标准。但DSS在linux上的安装比较繁琐,所以大多数人会选择easyDSS(就是上面提到的EasyDarwin)
2.SRS:(Simple Rtmp Server)一个采用MIT协议授权的国产的简单的RTMP/HLS 直播服务器,其核心的价值理念在于简单高效
一位疯狂舔SRS的小哥哥说<SRS超级强,无所不能秒杀其他同类媒体服务器>
https://blog.51cto.com/renjunjie622/1782407
后SRS官方改名为:ossrs
github:
产品定位:https://github.com/ossrs/srs/wiki/v1_CN_Product
产品发展:https://ossrs.net/srs.release/releases/
总的来看SRS还是可以的…
附带资料:
完整的直播 点播全端解决方案 https://blog.csdn.net/dipolar/article/details/64122168
3.Nginx-RTMP:
战斗民族俄罗斯人民开发的一款NGINX的流媒体插件,除了直播发布音视频流之外具备流媒体服务器的常见功能
比如推拉流媒体资源
基于HTTP的FLV/MP4 VOD点播
HLS (HTTP Live Streaming) M3U8的支持
基于http的操作(发布、播放、录制)
可以很好的协同现有的流媒体服务器以及播放器一起工作
在线调用ffmpeg对流媒体进行转码
H264/AAC音视频编码格式的支持
linux/BSD/MAC系统的支持
因为我们如果做的点播的话不涉及直播板块,几乎还是使用HTTP协议,根据之前的一篇博文:(NGINX-RTMP风生水起有几个很重要的因素。首先2012年开始CDN业务开始快速增长,随之直播业务也需求暴涨,没有特别满意的流媒体服务器;其次,NGINX在HTTP领域绝对是霸主,大家对于NGINX系的熟悉程度很高,便于维护;再次,直播点播使用一套服务器,很有诱惑力,这可以算是“万金油”效应,很多套服务器搞得焦头烂额,肯定一套服务器能解决问题;最后,CDN是运维比技术牛逼的行业,运维的信心都是运行出来的,NGINX运行那么良好,那么NGINX-RTMP也肯定不错。)
综上所述,DSS我对他没有什么好感,SRS是挺牛逼的但是总觉得用的话是大材小用,毕竟人家还是主做流直播的,转点播也需要一点功夫。个人觉得可以上一波NGINX,一个原因是主要目标是视频点播,上的还是HTTP服务,其次是Nginx这块我们可能上手也比较OK。
其他资料
https://www.idcicp.com/assist/assistInfo_22381.html
CPU:两颗至强E5530
内存:16GB
硬盘:2T
操作系统:CentOS 6.5 64bit
这样子的一个配置大致是能满足一个200-300人同时在线的短视频app的需求的
http://www.webxun.com/newsxq_201.html
暂不考虑直播功能(美颜的算法与聊天室功能还是服务器压力)
https://bbs.csdn.net/topics/300252276
lvc的live555的server端也小有名气
https://blog.csdn.net/dxpqxb/article/details/83012950
srs andrioid直播推流(可以学习一下,不过先不碰直播这个板块吧)
https://blog.csdn.net/yb1314111/article/details/84983568
抖音短视频源码中视频排序模块热门列表解决方案
https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/78780562
利用Simple-RTMP-Server搭建RTMP和HLS直播服务
https://blog.csdn.net/elesos/article/details/80899787
利用Nginx搭建RTMP视频直播,点播服务器,ffmpeg推流,回看
下载的一些p2p流媒体服务的研究资料
链接:https://pan.baidu.com/s/1hwMk_YdeGFI1nwC6BVM3XQ
提取码:rcjq
————————————————
版权声明:本文为CSDN博主「我的浪漫与极端」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013202518/java/article/details/89956990