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

首先我们先来了解下引起直播延迟的常见原因。
直播程序如何拒绝延时问题

一、网络波动

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

二、网络丢包

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

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

2.服务端同意

3.主播端确认连线

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

针对于以上两点原因,如何解决直播程序延时的问题呢?由于网络波动属于外部因素,从直播程序本身角度来讲,我们只能在网络丢包问题上去进行优化了。
直播程序如何拒绝延时问题
通常可以从直播程序开发时所使用的视频编码方式和流媒体传输协议等方面缩减传输时间,降低延时。

1.使用RTMP传输协议

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

2.使用内容分发网络

内容分发网络的存在能够有效降低直播程序的延迟,在内容分发网络的各个边缘服务器直播内容进行缓存,将内容就近下发,极大程度上降低了直播内容传输速度。
直播程序如何拒绝延时问题
3.合适的编解码方式选择

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

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

相关文章:

  • 2022-01-10
  • 2021-10-18
  • 2021-12-24
  • 2021-12-14
  • 2021-07-11
  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-19
  • 2021-05-11
  • 2021-10-06
  • 2021-12-31
  • 2021-04-19
  • 2022-01-17
  • 2022-12-23
相关资源
相似解决方案