音视频延时和抖动问题分析和解决
延迟:是网络传输中的一个重要指标,测量了数据从一个端点到另外一个端点所需的时间。一般我们用毫秒作为其单位。通常我们也把延迟叫做延时,但是延时有时还会表示数据包发送端到接受端的往返时间。这个往返时间我们可以通过网络监控工具测量,测量数据包的发送时间点和接受到确认的时间点,两者之差就是延时。单向时间就是延迟。
抖动:由于数据包的大小,网络路由的路径选择等众多因素,我们无法保证数据包的延迟时间是一致的,数据包和数据包延迟的差异我们称为抖动。也就是说因为数据包的延时值忽大忽小的现象我们称为是抖动。
延时类型:
处理延时:一般就是路由器要分析数据包头决定这个数据包要送到下一站花费的时间;
排队延时:数据包从进入到路由器的发送队列到被发送之间经过的时间,路由排队算法和网络都会影响这部分延时。
传输延时:将数据包传入到线路花费的时间,跟数据包的大小和带宽有关系。
传播延时:是指数据包第一个 bit 位从发送端到接收端的时间,其和传输距离和
延迟优化:
延时会产生在:
音视频数据的前处理;
音视频数据的编解码;
音视频数据的网络传输;
为了防止抖动业务代码中的缓冲区,包括推流服务、转码服务、播放器的缓存等;
音视频的渲染播放;
更多音视频流媒体权威资料 GitHub-repo https://github.com/0voice/audio_video_streaming
评论