从直播源码角度讲怎么解决丢包这一问题

网络在线直播系统,一般过程是:采集→前处理→编码→推流→分发→拉流→解码→播放,每一个阶段都会占用一部分的时间,所以说为了保障用户观看的及时性,这些流程都需要高度的配合统一,这样才能降低在线直播的延迟问题。
  我们先来说说什么原因为导致直播延迟。
  第一,网络波动
  我们这里所说的网络波动就是说在排序好的数据包中,有任何一包被延迟,就会导致它不按照正确的抵达顺序到达用户端,自然也无法按照接受顺序把内容播放出来,呈现在用户的接收屏上。网路波动会导致网络的内容播放的延迟和直播卡顿,但是这个原因只能算作是直播延时的外部因素,与本身的在线直播源码没有多大的关系。
  第二、网络丢包
  在线直播源码使用的流媒体传输协议有:RTMP、HLS、HTTPFLV等,传输过程一般是:主播端向服务端发送连接请求→服务端同意→主播端确认连线。
  经过上述的三个过程,主播端才会持续的进行数据的分批发送,每发送完一批数据都需得到服务端的反馈才能进行下一步,若为接收到反馈就是出现了网络丢包的现象,系统会自动传输丢失的包,这就是丢包的自动重传机制,这样中间的间隔就会造成直播的延时。
  对于小编上面说到的两点原因,我们该如何去解决直播系统延时的问题呢?由于网络波动属于外部因素,那从直播源码的角度来讲,我们就可以从网络丢包这一问题上进行优化处理。
  小编推荐的三种优化方法,大家在开发在线直播源码的过程中可以借鉴:
  1、使用RTMP传输协议
  RTMP协议是作为直播流媒体传输协议的首选,因为它的延时相对较低,通常能够降低在5s之内,其次它能够被第三方内容分发网络普遍支持,拥有丢包重连机制,及时的保障在线直播的流畅性。
  2、使用内容分发网络
  将内容分发网络的各个边缘服务器直播内容进行缓存,将内容就近下发,能够有效的降低直播延迟,提升直播内容的传输速度。
  3、选择合适的编解码
  解编码的原理就是压缩数据包的大小,减少视频传输过程中对宽带的占用率,达到降低延迟的效果。选择合适的编解码当然是能够解决很大一部分的延迟问题。
  由网络丢包引起的直播延时问题,在进行直播源码开发时是比较容易解决的,配合搭建CDN的选择就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值