造成直播源代码延迟的原因有几种? | 您所在的位置:网站首页 › 网络直播源为何会失效 › 造成直播源代码延迟的原因有几种? |
在直播中,主播和观众之间的实时互动,深受喜爱,那么直播源代码是怎么实现实时互动的呢?主要是依靠直播的低延迟,延迟变低,用户之间互动时就不会出现话题进度不同的情况,那么除了网络因素之外,还有哪些影响直播源代码延迟的因素呢? 直播源代码一、传输造成的延迟 我们知道,要想实现直播的观看,就离不开音视频传输,而在传输的过程中,产生的延迟是不可避免的。我们从直播源代码的编码说起,音视频要想加快传输效率,编码就是必须的一步,就算编码速度再快,不可避免的也会产生一些延迟,有编码就会有解码,解码当然也需要一定的时间。 有人会说,那这样不进行编码就不会产生延迟了吧?不是的,如果不进行编码的话,音视频文件会非常大,传输的时间大大增加,反而会产生更大的延迟,同时对带宽的占用也会比较高,会增加带宽成本。除了编码以外,在音视频传输时候,可能需要经过多次分发,每次分发也会增加一些延迟。 直播源代码二、网络丢包 直播源代码使用RTMP流媒体协议进行流媒体传输,RTMP流媒体协议有个特点,那就是它是基于TCP进行传输的,在传输中不会丢失的数据。 TCP为了保证传输时不会丢失音视频数据,有一个自动重传机制,如果发生数据丢失的情况,就会自动将丢失的数据包重新传输,而自动传输的过程中,直播不会一直进行,而是在等待丢失的数据到达后在播放。直播源代码基于丢包重传机制,如果网络丢包率上升,那么延迟就会越来越高。 直播源代码三、缓冲延迟 直播源代码为了保证直播在任何环境下都可以流畅播放,会设置缓冲区,将一部分数据进行缓存,如果出现网络不好的情况,会播放这部分缓冲的数据,以保证视频不会卡顿,但是这个方案也有弊端,那就是累积延迟。虽然视频流畅度得到了保障,但是随着使用缓存的次数增多,当前观看的视频和直播进度差距会越来越大。 直播源代码会产生延迟的原因还有很多,比如网络波动也会增加延迟。既然会有延迟产生,当然也有降低延迟的方案。直播源代码可以选用H.624编码,降低编码速度,也可以通过丢帧策略,逐渐降低延迟。 声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权 |
CopyRight 2018-2019 实验室设备网 版权所有 |