前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从在线直播源码开发角度解决直播系统延时问题

从在线直播源码开发角度解决直播系统延时问题

原创
作者头像
q3557873521
修改2019-03-20 15:38:38
2.1K0
修改2019-03-20 15:38:38
举报
文章被收录于专栏:直播系统开发直播系统开发

对于网络在线直播系统而言,直播内容从主播端采集到用户端观看,需要经过采集→前处理→编码→推流→分发→拉流→解码→播放的过程,每一个阶段都会消耗部分时间,但直播又必须保证观看的即时性,那么如何降低直播延迟便成了在线直播源码开发中的关键问题。

首先我们先来了解下引起直播延迟的常见原因。

一、网络波动

网络波动是什么呢?假设我们一次性发出10个排列好顺序的数据包,然而在传输途中有一个包被延迟,导致它不按自己应抵达的顺序到达用户端,那自然也无法按照接收顺序把内容播放出来,这就是网络波动。网络波动会造成直播内容播放延时,甚至是直播卡顿,但这只是影响直播延时的外部因素,与在线直播源码本身没有关系。

二、网络丢包

在线直播源码开发常常会使用RTMP、HLS、HTTP FLV等流媒体传输协议,他们大致的传输过程是这样的:

1.主播端向服务端发送连接请求

2.服务端同意

3.主播端确认连线

遵从上述传输过程,主播端才会持续进行分批数据发送,每批数据发送完都要得到服务端的反馈,然后才会继续发送下一批数据。如果没有收到反馈,就是出现了网络丢包的情况,系统会自动传输丢失的包,这就是所谓的丢包自动重传机制。

针对于以上两点原因,如何解决直播系统延时的问题呢?由于网络波动属于外部因素,从直播源码本身角度来讲,我们只能在网络丢包问题上去进行优化了。

通常可以从在线直播源码开发时所使用的视频编码方式和流媒体传输协议等方面缩减传输时间,降低延时。

1.使用RTMP传输协议

RTMP协议是作为直播流媒体传输协议的最佳选择。首先,它延时低,通常能够降低到5s内,然后,它能够被三方内容分发网络普遍支持,最后,我们上述所说的丢包重连机制它也有,能够较好的保障在线直播的流畅性。

2.使用内容分发网络

内容分发网络的存在能够有效降低直播延迟,在内容分发网络的各个边缘服务器直播内容进行缓存,将内容就近下发,极大程度上降低了直播内容传输速度。

3.合适的编解码方式选择

编解码的目的是压缩数据包大小,减少视频传输过程中对宽带的占用率,以达到降低延迟的效果,目前在线直播源码开发中常用的编解码方式为H.264,当然还有更具潜力的H.265,能够更好的提升直播观看体验。

网络丢包所引起的直播延时问题,相对而言,在进行直播源码开发时还是比较容易解决的,依托源码本身的优化再配合搭建部署时的CDN选择即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档