12|Jitter Buffer:拿什么拯救你,花屏卡顿问题
- 深入了解
- 翻译
- 解释
- 总结
视频通话中常见的卡顿和花屏问题对用户体验产生重要影响。本文详细介绍了这些问题的原因和解决方案。作者首先讨论了视频卡顿可能的原因,包括帧率不足、机器性能不足和编码器输出码率超过网络带宽等情况,并提出了相应的解决方案。其中,PacedSender模块的工作原理和丢包重传策略被重点介绍,以及在极端情况下的关键帧请求。此外,文章还提到了花屏问题的常见原因。总的来说,本文通过具体案例分析和解决方案,为读者提供了在实际应用中快速发现问题和找到解决方法的指导。这些解决方案对于提高视频通话质量和用户体验至关重要。文章还介绍了帧不完整、参考帧和YUV格式问题以及Stride问题,为读者提供了更深入的技术细节和解决方案。通过本文,读者可以快速了解视频通话中常见问题的原因和解决方法,为提高视频通话质量提供了有益的指导。
《攻克视频技术》,新⼈⾸单¥59
全部留言(18)
- 最新
- 精选
- Chris Zou老师有没有可能加餐,讲讲另外一个方式FEC冗余和重传方式之间的配合,以及itterbuffer对这两种包的不同处理?
作者回复: 这两个之间要配合好其实是非常复杂的。但是总的思路就是,如果RTT很高那么重传时间会很长,这是可以主要使用fec,如果RTT 比较小的话,可以重传多一些。
2022-01-132 - 一身龙骨图像的宽高搞反了出现过花屏
作者回复: 这个就有点类似于stride弄错了
2022-01-111 - 播放技术部“重传也没有收到包” 这块有个问题想请教下,就是如果一个包重传了很久都没有收到,那么后面请求IDR帧的话,由于IDR帧很大,那么不是更有概率导致丢包吗?还有这个请求的IDR帧具体是离丢包的P帧多远的I帧呢?
作者回复: 是会有这个问题,如果你是持续高丢包的情况下的话,可能会卡住很长时间。但是也没有办法,你不可能一直重传前面丢失的包,毕竟有实时性的要求,毕竟大多数时候丢包率不会一直非常高。 这个IDR帧是收到I帧请求之后,通过编码器的接口告诉编码器当前帧需要编码成IDR帧的,跟丢包的P帧的距离,编码器不会关心。
2022-09-23归属地:浙江 - Geek_6e7396文中判断帧完整时需要下一个帧到达,这样该帧送往下一步就会晚一个帧间距,这里就需要按帧编码做解析
作者回复: 是的,但是webrtc采用的前一种方式,因为对于不同编码类型都适用,不依赖具体的编码标准
2022-07-06 - allin老师,jitter buffer 在哪能找到模块源码进行学习,
作者回复: webrtc里面的packet buffer 和frame buffer,老版本是VCMJitterBuffer
2022-02-23 - Chris Zou除了webrtc中的这种方式把所有包放到一个队列里面,还有什么好的方式处理,一般做法是什么样子的?
作者回复: 我文章里面还讲了一种方式啊,通过first_mb_in_slice 来判断开头第一个包,通过Marker位判断最后一个包,中间的所有包都在也可以表示完整了
2022-01-132 - Chris ZouWebRTC 中在使用的方法,在一个排好序的包队列里,从标志位M的包往前找连续包,直到有跳变就认为帧完整,这里跳变之外,应该也要判断是不是首包是否还在把?
作者回复: 如果时间戳有跳变同时序列号是连续的,那首包就一定在。不然序列号是不会连续的。
2022-01-132 - ,翻了下代码,看上去是会进行kstash 会判断下seq连续,这种还有什么别的好办法没,gop内连续丢参考帧。
作者回复: 是的,如果有SVC那种不连续参考的参考结构就不需要完全连续了。可以参考SVC那节课。
2021-12-24 - ,大佬,webrtc的jitterbuffer有处理264那种如果一个gop内完整的丢了几个p帧的这种情况么,大概怎么处理的?
作者回复: 有处理的,不能丢帧。会发送关键帧请求给发送端要求发送关键帧。
2021-12-24 - iOS coder怎么对花屏进行线上监控呢?
作者回复: 其实花屏不好线上监控的。可以采用一些AI手段来对解码后的YUV做识别是不是花屏。
2021-12-23