完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
书中 第八章 传输控制优化,主要介绍了拥塞控制,弱网降级,抖动缓存与平滑发送,错误恢复等几个部分的内容。 其中抖动缓存与平滑发送是非常重要的一部分,在实践中是保证音视频实时不断流的传输是必须应用的,所以结合个人在UAC的开发中实践,结合书中介绍,分享下该部分内容。 个人从UAC实时音频传输开发来看,抖动缓存与均衡发送是最重要的部分,比必须实现的。 因为实时音视频传输,实际是一个生产者-消费者模型。生产者和消费者的长时间整体看速率是一样的,但是局部上看可能有波动。在某个小的时间点生产和消费者的速率可能不一样,所以必须要有一个缓存”水池”来缓解这种局部的不均衡。 这个水池设计的越大则越能缓解这种抖动的剧烈程度。 而在实践应用中知道,除了设计以上缓存外,还需要注意抖动, 即水池中一定要保证有一定的水量才开始消费,否则产生一个就消费一个,但是产生和消费的时间可能有差异导致断流。 如下,可以等水池中有了生产了两项之后再消费,这样,后面每次消费时都能保证有数据不会断流(只要生产消费的抖动不超过2项的时间),如果抖动更大可以延迟更长时间再消费,同时也要增大缓存大小。 以下是个人在UAC项目中使用状态机对这个延迟的处理 s_out_fifo_pool_state记录当前状态,0表示还未满足达到指定数量5的数据不开始取数, 达到5设置为1表示此时开始取数,取数后如果取不到数了则恢复0状态。
|
|
相关推荐
|
|
346 浏览 0 评论
【书籍评测活动NO.39】仓颉编程快速上手 | 开发者的第一个仓颉语言程序
555 浏览 7 评论
【书籍评测活动NO.38】OpenHarmony开发与实践 | 基于红莓RK2206开发板
1467 浏览 14 评论
【书籍评测活动NO.37】ARM MCU嵌入式开发 | 基于国产GD32F10x芯片
689 浏览 14 评论
585 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-7-27 16:19 , Processed in 0.645951 second(s), Total 66, Slave 48 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191