首先介绍一下流媒体服务器的主要功能。
流媒体是以流式协议(RTP/RTSP、MMS、RTMP等)将视频文件传输到客户端,供用户在线观看;也可从视频采集、压缩软件接收实时视频流,再以流式协议直播给客户端。
这次任务背景,公司要开发一款在线付费教育直播平台,既然是做直播那当然是先去找流媒体服务器。
此次测试直播工具OBS和Adobe Flash Media Live Encoder 3.2
码率1500 30fps 客户端 ie6 ie7 浏览器 火狐浏览器 谷歌浏览器 360浏览器
Red5
如果你在看到这篇文章之前在百度搜索过流媒体服务器,那么你肯定搜索到过red5。这是一款java开发的流媒体服务器,遗憾的是最近的一次更新是在2015年。这款服务器国内资料非常的少,资料少意味着出问题不好解决,内网测试1500码率不卡,外网测试2M带宽的ESC服务器上,自播卡顿严重。我翻墙出去找到了red5的英文手册,里面示例代码非常少,偏向于理论。
red5手册 提取码 8en6
Red5 Pro
一款技术的灭亡必定会催生出另一种技术,在我翻墙出去找文档的过程中,发现了一款基于Red5封装过后的Red5 Pro。这是一款付费的商用流媒体服务器,所以这里就没有进行测试,里面提供了Android SDK 和ios等等..解决方案。
EsayDSS
这个是国内的一个团队开发的(付费项目),开发语言是Go语言,性能效果还不错,支持RTMP协议的推流,还可以实时转码,意味着它支持H5来进行播放。内网测试无卡顿,视频清晰。外网2M带宽视频偶尔卡顿。大规模肯定不行,测试到这里发现流媒体服务器不仅仅和性能有关,还和服务器带宽有很大的关系。
AdobeMediaServer5
看起来是不是很高端Adobe公司的诶,还是免费的。事实证明,对于直播的支持,很一般。直播1920*1080 1500码率30fps卡顿严重,而且不支持OBS推流,必须用一款配套的Adobe Flash Media Live Encoder 3.2 来玩。在这个分辨率以下,内网勉强能看,还有一个坑,它不支持抓屏。只能推摄像头。万万没想到这款服务器自播功能很一般,但是点播功能还是非常优秀的。如果你搭建起来了在安装目录下的applications文件夹里面有个vod文件里面的media文件里面放上你的视频,它会自动的给你转成rtmp流,你去拉就行了。如果需要安装过程,留言,我会补充一篇博文。点播流2000kbps 30fps,内网完美运行。没进行外网测试。
阿里云直播服务
为什么没测试上面那个囊,因为最后敲定了用这个。首先如果你和我们一样是小规模的直播平台,切用户量不大,用户分散,那你大可不必自己搭建流媒体服务器。为什么囊,因为服务器成本、带宽成本、都不是一个小数目。而且如果你的服务器搭建在上海,那么上海的用户看直播当然不卡,新疆的就想锤电脑了。
阿里当然也是收费的,不过也不贵5角钱1个G。它有一个中心机房,中心机房会把你的流发送到全球各地的子机房,你的用户只需要最近的服务器拉下来就好。最后上一个阿里的测试报告。
终端 35台
码率 1200kbps
实际监测码率 1311.81kbps
视频 29.48fps
流量 3.97G
时间 24.37分钟
峰值 40.66mbps
30分钟大概2.5元一小时5块钱,做服务费直播还是能接受的,1200码率已经很清晰了。
JWplayer
资料很少,不兼容谷歌火狐,国产浏览器基本兼容,画质还行。因兼容性问题所以不考虑。
CKplayers
资料丰富,不兼容火狐,兼容ie6 ie7 谷歌,国产浏览器兼容。插件很多,画质比阿里还好一点。
Aliplayer
地址这个是地址,不兼容火狐,兼容ie6 ie7 谷歌,国产浏览器兼容。因为配套用的阿里产品嘛,用的这个。页面做了一个切换和CKplayers进行切换。
为什么火狐都不兼容囊,因为flash漏洞太多,最新版本的火狐已经不兼容了。老版本的应该还行。
最后补充一个小的省钱技巧,一个还是用阿里云来推拉流,But我们拉流用我们自己的服务器来拉,比如公司里面弄一个服务器,拉阿里上面的流再进行分发。这样公司里面观看就相当于只拉了一个流,就基本忽略了带宽问题,阿里云收费是下行流量。我们测试了一下,阿里成本控制在一个小时1块钱。
大家有什么直播解决方案留言分享一下,这方面的文档实在是有点少呀。~~~
更多详细请查看我的博客