最近在给一个app集成直播功能,我们的要求相对简单,在现有的app应用中添加一个直播专栏,提供直播发起和观看。比较了市面上很多SDK和开源项目(金山云,七牛,网易,腾讯等),综合考虑功能和集成的难易度,使用了易居直播平台。
各大直播云平台能提供的基础服务类似,包括主播端和观众端SDK,服务端的直播通道管理。

各大平台提供的功能类似,应该都有各自的优势。各方提供的文档和例子也都很齐全。我们从集成的简便程度上选择合适的直播服务平台。
一 如何集成直播
集成直播需要以下三个步骤,
1调用直播管理api管理直播。
2下载并集成移动端SDK。
3根据需要集成播放功能。
各大平台都支持网页上直接申请,申请需提供电话号码,但网易和金山必须付费才能使用。目前易居直播平台可以申请测试直播权限。提供直播创建,关闭和点播生成功能。现在创建和使用直播服务是免费的。
可以直接使用demo创建和管理直播,demo地址 点击这里

我使用了他们提供的api并集成到我们的管理平台,步骤如下:
调用http://liveapi.ejudata.com/live/create?token=livesaastest创建直播,获取推流地址。
调用http://liveapi.ejudata.com/video/change-live-status?token=livesaastest开始或关闭推流。
有了推流地址就可以在推流端app里进行的直播,所需的SDK可以在https://github.com/ejups上下载,
笔者以ios的开发为例,下载相应的sdk之后,在你的app工程设置中,添加ffmpeg.framework和libeilpublisher.a文件。

利用前面得到的推流地址直初始化推流SDK,
EILLiveInit
开始推流
EILConnect
分辨率和码率只需按照默认设置即可,如果无需使用高级功能(画中画,ppt和二维码显示),以上步骤已经可以满足一次最简单的直播要求。
如果需要将直播播放页面分享,可以在服务后台调用播放器,调用方式参见https://github.com/ejups/epsH5Player,生成的播放器效果如下

这样,从创建直播到推流到分享直播的全部流程就实现了。
需要在app中集成播放功能,可以在https://github.com/ejups下载播放器的SDK,集成方法可参考网页上的说明。
二 直播质量的控制和效果评价
直播音视频的质量和网络有关。良好的观看体验要求视频分辨率达到1280x720,码率1M以上。
直播效果则和直播的内容,展示形式等诸多因素相关。娱乐类的直播,要求有较多的交互方式,包括实时评论,送礼点赞,红包等。教育培训类的直播,也需要留言交流,但更看重的可能是能不能展示PPT,老师的语音质量是否足够清晰,观众的现场提问能否有效汇总。旅游时的直播,可能要求能使用自拍杆控制,能不能插入当时拍下的风景照片或视频等等。所以,直播的效果和其具体的场景有关,和具体场景下使用的表达方式有关
三 直播中的问题
1为何要在后端创建直播,而不能在app端创建?
后台创建可确保直播通道的可控性。直播通道的生存周期应该是受控的,手机由于电量,信号稳定性问题而产生的直播中断不应影响直播通道本身,所以直播通道应该交由后端创建并管理。
2应该如何选择直播平台?
七牛和网易的云服务更加稳定,金山的推流SDK也有独到的功能。但如果你是音视频知识小白,需要尽快的集成一个最简单的直播,推荐使用易居直播服务平台。
3直播的播放和分享
播放有多种选择,重要的是如何推广给更多的观众,初期选择微信直接分享是不错的办法,易居直播平台提供了H5播放器的集成方式,可以很方便的集成到公众号和网页中。
4直播的统计
有些应用要求统计到观众的行为,例如有多少观众在看直播,多少在看点播,这些功能网易,金山,易居服务都能提供的付费服务。
网友评论