配色: 字号:
免费网络直播软件的选型与比较
2016-08-24 | 阅:  转:  |  分享 
  
免费网络直播软件的选型与比较



随着移动互联网的普及与网络直播的火爆,现在人人都能做网络直播,做网络直播可以采用手机APP做直播,也可以采用PC端的软件做直播。由于手机APP通常是平台绑定的,因此用手机做直播只能在该APP绑定的平台进行发布,无法搭建自己的网络直播平台。在此笔者仅以如何搭建自己的直播平台的思路来发表意见。

笔者从事网络直播已经5年多了,从2011年开始,笔者就一直从事网络直播平台的维护,期间积累了些许粗浅的经验,在此仅抛砖引玉。

做网络直播需要三大软件模块,如下:

前端编码器软件

用于视频信号的采集、编码与传输。是视频直播的源头,没有前端编码器软件,就无法产生内容。

流媒体服务器

用于接收前端编码器编码的直播媒体流,并进行网络转发,最终观众的APP与流媒体服务器进行通信,由流媒体服务器对用户提供直播服务。

直播管理平台

用于管理直播频道、用户信息、日志等应用性的功能,用户通过这个模块提供的功能来查询频道、登录,通过浏览器尽心接收直播。



以上三个模块,在做直播时必不可少,现在简单罗列笔者已经使用过的软件(仅为免费软件,收费软件不做重点,或者忽略)。

一、前端编码软件

1)FlashMediaLiveEncoder3.2

由著名的Adobe公司出品,值得信赖,Adobe好长时间已经停止更新了,时代比较久远了,但仍旧不失为一个好用的编码器软件。

网址:http://www.adobe.com/in/products/flash-media-encoder.html

2)OpenBroadcasterSoftware

开源并且免费的直播软件,是当前非常流行的直播软件,很多游戏直播就采用它,例如斗鱼直播。

网址:http://www.obsproject.com

3)iAVCast(串流直播)

国内串流直播团队开发的免费直播软件,免费但不开源。

网址:http://www.iavcast.com

二、流媒体服务器

1)AdobeMediaServer4.5

Adobe公司研发的专业直播服务器,不开源,不免费。但借助于互联网,你可以自己找到解决办法,您懂的。笔者一致用这个软件做直播。

2)Red5

开源免费的直播系统,采用Java开发,可以移植到任何平台,但需要安装Java虚拟机。

3)NginxRTMPModule

有战斗民族俄罗斯人开发的Nginx的附加模块,功能强大,性能优越,但可惜只能在Linux下使用,还是有点点不方便。

4)CRtmpServer

开源并免费的直播服务器软件,性能也很优越,需要在Linux下编译。

三、直播管理平台

找了一圈,没有发现开源或者免费的,因此笔者自己开发,采用PHP,框架采用Thinkphp,目前已经能够支持多屏直播了。以后会介绍。





流媒体服务器与直播管理平台的选型在笔者的其它文章中有阐述,本文仅阐述前端编码软件的选型与比较,仅代表本人的观点,具体使用请自己参考相关软件文档。

选择直播编码器的必要条件是:

1)必须支持H264编码,支持MP3或者AAC编码。

H264:又称AVC(高级视频编码),是当前移动终端首选的编码标准。

MP3:是音频编码标准,大家都熟悉,不多说。

AAC:即高级音频编码,比MP3音质还好,是做直播的首选,它有AAC-LC与HE-AAC连个档次,AAC-LC是地复杂度的AAC,兼容性好,HE-AAC是高效能AAC,压缩度高,音质与AAC-LC相当。

2)支持RTMP推流

RTMP:是实时消息协议的简称,有Adobe公司开发,虽然没有变成国际标准,但它是事实上的工业标准,无论哪个公司,只要做直播,就得用它,当今的手机直播APP推流所用的协议都是RTMP协议。



以下从功能到性能方便逐一介绍以上3款免费的编码直播软件:

FlashMediaLiveEncoder3.2(以后简称FMLE)





OpenBroadcasterSoftware(以后简称OBS)





iAVCast(串流直播)(以后简称串流直播)





从界面上来看,3款软件主界面操作起来都相对比较简单,FlashMediaLiveEncoder3.2

的所有设置界面都放在主见面里了,功能一目了然,容易上手。但OpenBroadcasterSoftware与iAVCast(串流直播)都有自己的独立设置界面。

点击OpenBroadcasterSoftware的设定按钮将出现它的设置界面如下:



OpenBroadcasterSoftware的设置界面里包含了不少功能。



点击iAVCast(串流直播)的设置按钮出现的界面如下:



iAVCast(串流直播)的设置界面里也隐藏了不少功能。

笔者通过反复使用,仔细比较,得出以下比较成果。

比较项 FLME OBS 串流直播 备注 编码标准 H264编码 MP3编码 AAC-LC编码 FLME需要插件可以支持 HE-AAC编码 H265编码 MPEG-4编码 MPEG-2编码 文件录制格式 FLV MP4、FLV MP4、FLV、TS 码流输出 多码流输出 3 1 4 多服务器推送 2 1 2 RTMP协议发布 UDP协议发布 HTTP协议发布 RTMP发布验证 RTMP推流时支持服务器端验证 录制文件规则命名 根据设置的规则命名文件 文件元数据注入 高性能硬件加速编码 NVENC硬件加速 NVidia的显卡编码 QSV硬件加速 Intel的集成显卡编码 CUDA硬件加速 NVidia显卡的GPU编码 图像预处理与优化 亮度对比度调节 台标叠加 OBS支持图片叠加 原始台标擦除 字幕叠加 滚动字幕功能 滚动字幕计划任务 美白功能 实质为图像亮度增强 美颜功能 实质为图像颜色叠加 上下左右切边 动画图片叠加 动画图片格式 Gif Gif、APNG、ANI 多场景切换 多个来源叠加 网络协议与服务 UDP协议服务 HTTP协议服务 RTSP/RTP UDP加密组播 其它功能 抓取缩略图 多配置文件 编码状态统计 开机自启动 以上仅仅是从功能上进行了客观对比,对比的版本均为笔者书写这篇稿子时官方最新版本,后续版本的变化笔者无法预知。



通过长时间的使用,笔者发现未编码时OBS消耗的内存最高,FLME消耗的内存最少,笔者分析,可能是OBS功能最丰富,FLME功能最少的原因。在编码时,发现FLME消耗的内存最多,串流直播的内存最小。

编码一个720P的节目时,OBS与串流直播占的CPU均比较少,FLME占的CPU比较高,可能是FLME的编码器比较老旧的原因吧。

由于OBS不具备多码流编码,通过对比FLME与串流直播同时编码1080P,720P,480P三个码流的情况下,FLME占用的CPU资源明显高于串流直播,由于FLME没有硬件加速编码功能,因此没有进行硬件加速功能编码的对比。

通过一个星期的长期运行,OBS崩溃3册,串流直播与FLME稳定正常。



另外笔者发现,FLME与串流直播更容易上手,而OBS比较专业,OBS里面的某些参数至今笔者还没有完全弄明白,因此笔者觉得OBS更适合于专业用户,不过网络上有很多OBS的教程,要用好OBS也不算难。



在此,笔者做个总结:

做IPTV,选择FLME与串流直播更合适,因为能够长期运行不死机。

做现场直播与游戏直播,选择OBS与串流直播更合适,因为他们功能多。

要往多个平台推送节目,只能选择FLME与串流直播。

作为编码服务器来使用,应该选择FLME与串流直播,因为他们均能关闭预览功能,而且稳定。

如果要用硬件加速编码,请选用OBS与串流直播。





献花(0)
+1
(本文系移动直播资...首藏)