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

出处皆已标注链接


目录

流媒体协议

直播流媒体协议

理解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-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)完全免费,没有任何功能限制,且符合国际标准。但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

【流媒体】视频点播流媒体服务器调研相关推荐

  1. 流媒体(视频)服务器调研

    这篇文章主要向大家介绍流媒体(视频)服务器调研,主要内容包括基础应用.实用技巧.原理机制等方面,希望对大家有所帮助. 标签:javascriptphphtmljavapythonlinuxandroi ...

  2. 【编码推流】流媒体、流媒体服务器和NVR的理解

    [编码推流]流媒体.流媒体服务器和NVR的理解 1.背景 2.流媒体.流媒体服务器 3.流媒体服务器和NVR 4.总结 1.背景 在AI监控摄像头改造的项目中,大概率会遇到实时流的处理需求. 实时流处 ...

  3. 分发服务器性能,高性能P2P流媒体内容分发服务器的设计与实现

    摘要: 互联网技术的不断进步,各种新颖的互联网应用服务如雨后春笋般出现在人们面前.以网络视频.网络电视等为代表的流媒体技术的诞生和发展,为互联网注入了新的活力和发展契机.但是,传统的流媒体系统多采用C ...

  4. 从服务器分发性能,高性能P2P流媒体内容分发服务器的设计与实现

    摘要: 互联网技术的不断进步,各种新颖的互联网应用服务如雨后春笋般出现在人们面前.以网络视频.网络电视等为代表的流媒体技术的诞生和发展,为互联网注入了新的活力和发展契机.但是,传统的流媒体系统多采用C ...

  5. 初识流媒体与流媒体技术

    一. 流媒体 流媒体(streaming media)是指将一连串的媒体数据压缩后,经过网络分段发送数据,在网络上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送:如果不使用此 ...

  6. RTSP推流+流媒体+播放流媒体技术方案

    RTSP推流+流媒体+播放流媒体技术方案 推流与拉流的前提都是需要有流媒体服务器,所以第一步是进行搭建流媒体服务器,本文的流媒体服务器搭建方式使用的是EasyDarwin流媒体方案 下载EasyDar ...

  7. 开服务器无限烟火,深受低等级玩家热爱的“烟花”服务器!——梦幻西游服务器调研:将军...

    原标题:深受低等级玩家热爱的"烟花"服务器!--梦幻西游服务器调研:将军 无与伦比·将军开服于2011年3月18日,是一个玩家较多的大烟花服务器,也是玩家颇为火爆的大区之一.区内不 ...

  8. 基于live555的流媒体代理转发服务器

    对于并发量并不大而且对性能要求不是很高的流媒体传输模块,live555还是很好的选择,下面说一下我所实现的流媒体代理服务器(目前只能实现对H264单视频的转发) 代理转发主要分为对RTSP的转发与对R ...

  9. Ubuntu中使用Nginx+rtmp模块搭建流媒体视频点播服务

    1. 背景 不知不觉来到流媒体部门已经一年半多了,也算积攒了不少的流媒体知识,平时工作比较忙,到没有对流媒体技术进行系统性的梳理:最近刚完成一个Git实用指南的技术专栏,放松一周之后,觉得还是得让自己 ...

最新文章

  1. 集群四 mysql-5.7.16一键安装
  2. 大白话 + 13 张图解 Kafka
  3. 在IntelliJ IDEA里创建Spring Boot项目
  4. 社交app应用开发 客户端+服务器源码
  5. 公需科目必须学吗_要考电工证吗?电工技术必须学的33招,电工技术知识
  6. jquery 判断控件css样式,jQuery获取并设置CSS类
  7. win10系统上Python和pycharm的安装及配置
  8. python解析dom,关于Python解析xml dom的简单应用
  9. JavaScript学习笔记(三)——从简单模仿到创作
  10. paip.输入法编程---输入法ATIaN历史记录 c823
  11. Flutter中的JSON解析
  12. Anaconda卸载与安装
  13. 柯马机器人示教器编程_COMAU柯马机器人示教器按键失灵,无显示专业维修
  14. 米家插件平台的技术实践之路
  15. A股数据day级前复权数据下载与存储
  16. ctfshow (ssrf学习和实践)
  17. C++多线程--std::packaged_task
  18. 摘自《大江大河1949》
  19. android 各种分辨率的logo大小
  20. java数字转换中文

热门文章

  1. FLV科普11 FLV视频信息
  2. 云米冰箱“失智”,问题不止“小米依赖症”
  3. Book: Programming with Libevent(2)--A Libevent Reference Manual(1)
  4. Object.assign() 方法的使用详解
  5. 在 Azure 上部署 Kubernetes 集群
  6. 前端性能分析—前端优化
  7. 营收净利同比上涨,甲骨文回“血”了吗??
  8. 欧盟委员会将批准微软收购Skype的交易
  9. PTA B1019/A069 .数字黑洞 几个测试点分析 C语言
  10. Android-向手机模拟器添加图片