90%的直播高手都会遇到这些坑

2018-10-11 16:53:41 浏览数 (1)

通过直播,将公益传播得更广,让人们更深入的体会爱的力量。

直播技术,到底有哪些典型的应用呢?

想把直播结合到公司业务中,会踩哪些坑呢?

2大直播场景

NO.1 单场次直播

▲发布会直播/会议直播/活动直播等

可以通过手机端或专业设备进行推流,将活动直播到网络上。

直播不仅覆盖了娱乐领域,还延伸到了公益活动、助残、教育等领域。

NO.2 秀场直播

▲秀场直播/游戏直播/多房间直播

游戏直播等场景中,大多数会用到聊天框、弹幕消息、爱心点赞,主播端会有美颜增白、动效蒙皮、连麦互动等功能。如果没有这些功能,想象一下关闭美颜功能的主播,会是什么样子。

面临的挑战

5大天坑

NO.1 推流

所谓万事开头难

而直播的第1步,便是推流

@某公司技术工程师:创建直播流,过期怎么办?

@直播技术支持回复@某公司技术工程师:

直播码模式有有效期,频道托管模式不会过期

▲直播码接入和频道接入的区别

总而言之,直播码接入更适合多房间的直播,比如游戏直播;频道接入更适合单场次的直播,比如发布会直播

@某公司技术工程师:通过调取api接口,获取直播推流地址,该如何着手?

@直播技术支持回复@某公司技术工程师:

推流地址可以通过后台自动拼装得到

▲推流地址的拼装规则

@某公司技术工程师:如何用api调取来结束推流

@直播技术支持回复@某公司技术工程师:

要做好清理工作,因为用于推流的 TXLivePusher 和用于显示影像的 TXCloudVideoView 都是不能多实例并行运转的,所以清理工作不当会导致下次直播遭受不良的影响。

代码语言:javascript复制
//结束推流,注意做好清理工作
public void stopRtmpPublish() {
    mLivePusher.stopCameraPreview(true); //停止摄像头预览
    mLivePusher.stopPusher();            //停止推流
    mLivePusher.setPushListener(null);   //解绑 listener
}

@某公司技术工程师:老板总不按常理出牌,只直播音频,怎么办

@直播技术支持回复@某公司技术工程师:

可以按照以下方法实现

▲纯音频推流的步骤

NO.2 SDK

@某公司技术工程师:在线教育,老师进行视频直播,学生连麦只进行纯音频直播,应该怎样搭建呢?

@直播技术支持回复@某公司技术工程师:

可以通过云端混流来实现

▲直播老师讲课,学生连麦语音交流

具体代码可参考腾讯云直播官网《混流demo》,参考|demo_stream1_and_audio15.py|1音视频 15纯音频混流|

NO.3 录制截图问题

@某公司技术工程师:直播可以回放吗?

@直播技术支持回复@某公司技术工程师:

可以开启录制然后存储在点播系统上,进行回放,具体看以下流程

▲录制流程图

对于一条直播流,一旦开启录制,音视频数据就会被旁路到录制系统。主播的手机推上来的每一帧数据,都会被录制系统追加写入到录制文件中。

@某公司技术工程师:如何将一个时长为16小时的直播流,进行自动抽取录制,最后生成十几分钟的短视频?

@直播技术支持回复@某公司技术工程师:

可以设置定时录制,在生成许多个短视频文件后,将其拼接成1个视频文件,如下图

▲自动剪辑精彩集锦的步骤

NO.4 直播播放问题

@某公司技术工程师:如何给直播加防盗链机制?

@直播技术支持回复@某公司技术工程师:

通过在直播管理控制台,配置 防盗链加密 KEY,防止攻击者获得加密 KEY,也就防止了伪造出有效的推流 URL,达到防盗链的目的,如下图所示:

▲防盗链机制图

@某公司技术工程师:直播支持https协议吗?

@直播技术支持回复@某公司技术工程师:

支持的,可以用两种方式来满足

方式一:

在原有的http协议的播放链接上加s

方式二:

后台自动拼装成https协议的播放链接

推流地址格式:

代码语言:javascript复制
rtmp://bizid.livepush.myzijiebao.com/live/bizid_id?

则播放地址的格式为:

代码语言:javascript复制
rtmp://bizid.liveplay.myzijiebao.com/live/bizid_id
http://bizid.liveplay.myzijiebao.com/live/bizid_id.flv
http://bizid.liveplay.myzijiebao.com/live/bizid_id.m3u8

例如,账号对应的bizid为8888,ID为test,则播放地址为

代码语言:javascript复制
http://bizid.liveplay.myzijiebao.com/live/bizid_test.flv
http://bizid.liveplay.myzijiebao.com/live/bizid_test.m3u8

bizid在直播控制台可查看,ID一般为英文字母加下划线组成

NO.5 费用问题

身为一名技术小哥,不仅要上知开发代码,下知费用报价,不想成为产品经理的技术不是一个好财务

@某公司技术工程师:关于录制的计费问题,每一路需要30元。每个直播间的推流即算作一路,那么这个直播间可以复用吗?两个人今天结束了谈话断开流,明天在用相同的直播间id进行交流,算一路还是两路呢?

@直播技术支持回复@某公司技术工程师:

制计费是统计当月直播流并发录制路数的峰值。

同时录制的直播流数量为并发录制路数,每5分钟统计一个并发录制路数,一个月内最大的并发录制路数为月并发录制峰值路数,可以参考下图

▲录制费用图

@某公司技术工程师:怎么计算视频直播的费用?

@直播技术支持回复@某公司技术工程师:

直播的费用可以参考下图

▲直播费用全景图

只要基础流量费用,其他费用,可以看具体需求。

@某公司技术工程师:我开了很多房间直播,我如何知道一个特定房间的流量呢?

@直播技术支持回复@某公司技术工程师:

查询某条直播流的统计信息(如观看人数、带宽、码率、帧率等)获取统计信息,如图

▲通过API读取流量的示意图

@某公司技术工程师:怎样计算一场直播,100人观看,大概消耗多少流量?

@直播技术支持回复@某公司技术工程师:

一个直播频道流量消耗=(直播码率/8)*直播观看时长(秒)*观看人数

▲直播流量计算公式

举个例子:

直播码率为500kbps,直播时长为1小时,观看人数为100人,则消耗的流量约为:22.5GB。

计算方法: 500/8*3600*100=22500000KB,22500000KB/1000/1000=22.5GB

计费流量为所有直播频道流量消耗的总和

盘点完5大天坑,想必大家都是直播届的道友了。

0 人点赞