Blogger Information
Blog 26
fans 0
comment 1
visits 23258
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
视频直播软件开发过程中需要解决的“老朋友”
一只可爱居的博客
Original
671 people have browsed it

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

音视频数据在设备端产生的延时是可以进行细分的。设备端的延时主要是与编解码算法、音视频数据量和硬件性能相关的,并且设备端的延时可以达到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可能会没办法及时填充音频缓冲区,音频也会出现卡顿。

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

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


Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post