视频点播流媒体服务器调研

需要选型一个流媒体服务器,故搜罗网上资料,整理出以下内容供参考

出处皆已标注链接


目录

流媒体协议

直播流媒体协议

理解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):顺序流媒体不可用于实况直播,仅能传输完整的音视频文件

原则上,RTSPRTMPHTTP 都可以做直播和点播,

但一般做 直播用 RTSPRTMP,做点播用 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)定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码,这是该产品自己官方的介绍。值得一说的是,前面几个产品都是国外的,而这个作者是国内的。

http://www.cuplayer.com/player/uploads/allimg/171109/1_171109141459_1.jpghttp://www.cuplayer.com/player/uploads/allimg/171109/1_171109141459_2.jpg


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-RTMPSRSDSS这三种流服务器。

因为目标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构成的完整云平台架构,支持分布式、跨平台、多点部署,流媒体服务器支持负载均衡,按需直播,非常适用于互联网化的安防、智能家居、幼教平台、透明厨房、透明家装等多个行业应用:


最终选型

最后纠结的将范围缩短为三个项目:DSSSRSNginx

接下来分析这两种流媒体对视频点播的支持程度

分别展开介绍:

1.DSS苹果公司的Darwin Streaming Server(简称DSS)完全免费,没有任何功能限制,且符合国际标准。但DSSlinux上的安装比较繁琐,所以大多数人会选择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的流媒体插件,除了直播发布音视频流之外具备流媒体服务器的常见功能

  • 比如推拉流媒体资源
  • 基于HTTPFLV/MP4 VOD点播
  • HLS (HTTP Live Streaming) M3U8的支持
  • 基于http的操作(发布、播放、录制)
  • 可以很好的协同现有的流媒体服务器以及播放器一起工作
  • 在线调用ffmpeg对流媒体进行转码
  • H264/AAC音视频编码格式的支持
  • linux/BSD/MAC系统的支持

 

因为我们如果做的点播的话不涉及直播板块,几乎还是使用HTTP协议,根据之前的一篇博文:(NGINX-RTMP风生水起有几个很重要的因素。首先2012年开始CDN业务开始快速增长,随之直播业务也需求暴涨,没有特别满意的流媒体服务器;其次,NGINXHTTP领域绝对是霸主,大家对于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 

你可能感兴趣的:(视频点播,流媒体服务器)