博客列表 >视频直播软件开发过程中需要解决的“老朋友”

视频直播软件开发过程中需要解决的“老朋友”

一只可爱居的博客
一只可爱居的博客原创
2019年03月21日 16:34:31662浏览

要说在视频直播软件开发的过程中,什么是技术人员最头疼的?肯定有人会毫无疑问的回答:直播的卡顿和延时!没错,这两位可以说是直播中的“老朋友”了。毫不夸张的说,每一个直播平台都遇到过这两种问题。所以,今天我们就来聊一下设备端存在的延时是怎么个情况。

音视频数据在设备端产生的延时是可以进行细分的。设备端的延时主要是与编解码算法、音视频数据量和硬件性能相关的,并且设备端的延时可以达到30-200ms甚至更高。因此,音频和视频在采集端或者是播放端所产生延时的过程是基本一致的,但原因不同。

u=3143016412,625207128&fm=26&gp=0-wps图片.jpg

1. 音频在设备端的延时

(1)采集后的音频会先经过声卡进行信号转换,声卡的本身会产生延时。

(2)音频进入前处理和编码阶段后,如果采取标准编码,那么最低算法的延时就需要2.5-60ms。

(3)音频播放过程中出现延时,大多数与播放端的硬件性能相关。

(4)在前处理和后处理这些算法的过程中,都会带来算法延时。

(5)如果在抗丢包处理中,增加重传算法和前向纠错算法的话,延时一般会在20-200ms左右。但是如果受到了jitter buffer影响,可能会更高。

2.视频在设备端的延时

(1)一般视频在进行采集时都会遇到成像延时,主要是由CCD相关的硬件产生。目前市面上较好的CCD一秒可以达到50帧,延时约为20ms。

(2)用H.264举例的话,主要包含I、B、P帧。如果是每秒30帧相连帧,并且不包括B帧。因为B帧的解码,依赖于前后视频帧会增加一定的延时,所以采集到的一帧数据可能就会直接进入编码器。没有B帧时,编码的帧延时可以忽略不计。但如果有B帧,就会带来算法延时。

(3)在渲染情况下,一般延时比较,但是也会受到音画同步和系统性能的影响增大延时。

(4)与音频相同的是,视频也会遇到端网络延时的状况。

u=4069460346,70384806&fm=214&gp=0-wps图片.jpg

     其实在设备端,CPU和缓冲都会同时处理来自多个应用和外接设备的请求。如果某个出现问题的设备请求占用了CPU,那么就会导致音视频的处理请求出现延时的情况。就拿音频来说吧,如果出现上述情况,CPU可能会没办法及时填充音频缓冲区,音频也会出现卡顿。

由此可见,在视频直播软件开发的过程中设备整体的性能,还是会给音视频的采集、编解码和播放造成一定影响从而产生延时的。所以,还需要在这方面多多注意。

本文声明原创,转载请注明出处。


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议