一种基于IP的CBR码率发送控制方法与流程

专利2024-07-09  71


本发明涉及音视频转码处理相关技术领域,尤其是指一种基于ip的cbr码率发送控制方法。



背景技术:

当实时信源的基准时钟相对于转码器设备时钟存在偏差,或者说信源发送速率相对于转码器设备时钟非一倍速时,如果转码器以tscbr模式udp输出,由于发送码率控制使用设备本机时钟,则会导致输出速率和信源速率存在偏差,数据发送过快或过慢,造成播放卡顿,或延时增加最后数据丢失的情况。



技术实现要素:

本发明是为了克服现有技术中存在上述的不足,提供了一种码流发送和信源一致的基于ip的cbr码率发送控制方法。

为了实现上述目的,本发明采用以下技术方案:

一种基于ip的cbr码率发送控制方法,具体包括如下步骤:

(1)muxer把视频压缩流和音频压缩流根据规范要求交织在一起;

(2)根据视频压缩流的dts为时间基准,按照设置的码率填充空包,同时根据码率设置pcr,保证生成的ts流是按照信源的时间基准生成的固定码率数据流;

(3)udpsender码率控制:发送模块使用一个缓冲器来控制发送码率,任务开始时初始填充一部份数据,等缓冲器初始缓冲数据填满,则开始根据本机时钟按照设定的码率控制发送,发送模块根据缓冲器内的数据量对比初始填充的数据量的偏差做调整,调整发送速率,最终和信源一致。

本发明设计了一个抛弃掉本地时钟,根据信源速率发送的机制,根据本发明的技术可以做到基于udp的tscbr码流发送和信源最终一致。此方法可以实现基于udp的tscbr码流的平稳发送,且以信源时间基准的目标码率发送。

作为优选,在步骤(3)中,如果本机时钟比信源慢,则缓冲器内数据会缓慢累积;如果本机时钟比信源快,则缓冲器内数据会逐渐减少。

作为优选,在步骤(3)中,为了减少发送码率的波动,缓冲器内数据采用分段阈值来控制,阈值+x意味着缓冲器内的数据量逐渐减少,说明发送快了,需要减少发送码率;阈值-x意味着缓冲器内的数据逐渐累积,说明发送慢了,需要增加发送码率;具体如下:

(a)缓冲器内数据<阈值-1,发送码率调整:当前码率–delta1;

(b)缓冲器内数据<阈值-2,发送码率调整:当前码率–delta2;

(c)缓冲器内数据>阈值1,发送码率调整:当前码率+delta1;

(d)缓冲器内数据>阈值2,发送码率调整:当前码率+delta2;

其中delta值是预设的固定值。

作为优选,在步骤(3)中,发送模块中的缓冲器数据量存在波动,必须要通过统计手段来消除波动,具体包括如下方法:

(i)滑动平均滤波法:连续取n个采样值进行算术平均运算,适用于平滑随机波动;

(ii)中位值平均滤波法:采用中位值滤波法和算术平均滤波法相结合的方式,消除由于偶发性大的脉冲抖动所引起的采样值偏差;

(iii)如果波动有周期性,使用高阶的滤波器。

作为优选,delta是个预设的固定值,根据固定值调整发送码率,会始终存在一个小的偏差,在目标码率上下小范围波动,无法收敛,考虑到缓冲器内数据量和初始填充值的差和码率调整值delta的关系是个单峰函数,用黄金分割法收敛到目标码率。

本发明的有益效果是:抛弃掉本地时钟,根据信源速率发送的机制,可以实现基于udp的tscbr码流的平稳发送,且以信源时间基准的目标码率发送。

附图说明

图1是本发明中分段阈值控制的示意图;

图2是码率调整值delta的单峰函数图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步的描述。

一种基于ip的cbr码率发送控制方法,具体包括如下步骤:

(1)muxer把视频压缩流和音频压缩流根据规范要求交织在一起;

(2)根据视频压缩流的dts为时间基准,按照设置的码率填充空包,同时根据码率设置pcr,保证生成的ts流是按照信源的时间基准生成的固定码率数据流;

(3)udpsender码率控制:发送模块使用一个缓冲器来控制发送码率,任务开始时初始填充一部份数据,等缓冲器初始缓冲数据填满,则开始根据本机时钟按照设定的码率控制发送,如果本机时钟比信源慢,则缓冲器内数据会缓慢累积;如果本机时钟比信源快,则缓冲器内数据会逐渐减少,发送模块根据缓冲器内的数据量对比初始填充的数据量的偏差做调整,调整发送速率,最终和信源一致。

如图1所示,码率的调整是根据缓冲器内的数据量来判断的,为了减少发送码率的波动,缓冲器内数据采用分段阈值来控制,阈值+x意味着缓冲器内的数据量逐渐减少,说明发送快了,需要减少发送码率;阈值-x意味着缓冲器内的数据逐渐累积,说明发送慢了,需要增加发送码率;具体如下:

(a)缓冲器内数据<阈值-1,发送码率调整:当前码率–delta1;

(b)缓冲器内数据<阈值-2,发送码率调整:当前码率–delta2;

(c)缓冲器内数据>阈值1,发送码率调整:当前码率+delta1;

(d)缓冲器内数据>阈值2,发送码率调整:当前码率+delta2。

实际情况中,我们设置的阈值-1(阈值1)为根据具体的码率换算出来的一个值,比如发送码率为10m,则阈值1可以设置为512k,则调整码率delta1为10m的万分之5。如果累积偏差达到阈值-2(阈值2),意味着偏差太大,需要更大的调整,则调整码率delta2为万分之10。正常情况下,经过第一次调整(调整万分之5)后,缓冲器内的数据会缓慢向初始填充目标回归。会快速冲到阈值-2(阈值2),甚至更大的阈值,一般是在任务刚启动时,如果偏差太大,分段阈值可以快速收敛。

其中:delta是个预设的固定值,比如万分之5。根据固定值调整发送码率,在最终趋于平稳时,delta会和目标码率存在一个小的偏差(正负5%%)内,在目标码率上下小范围波动,始终无法收敛到目标码率,考虑到缓冲器内数据量和初始填充值的差(排除波动影响)和码率调整值delta的关系是个单峰函数,如图2所示,所以用黄金分割法收敛到目标码率。单峰函数是为了处理这个小的偏差引进的机制,在趋于平稳时,切换到收敛模式,delta(delta1)每次乘以0.618,这个是针对delta的微调。

发送模块中的缓冲器数据量存在波动,具体影响因素如下:

·网络波动

·上游服务器造成的波动

·复杂场景导致的解码波动

·复杂场景导致的编码波动

·竞争导致的解码波动

·竞争导致的编码波动

所以必须要通过统计手段来消除波动,具体包括如下方法:

(i)滑动平均滤波法:连续取n个采样值进行算术平均运算,适用于平滑随机波动;比如cpu竞争造成的抖动。

(ii)中位值平均滤波法:采用中位值滤波法和算术平均滤波法相结合的方式,融合了两种滤波法的优点,消除由于偶发性大的脉冲抖动所引起的采样值偏差;比如转码器复杂场景编码。

(iii)如果波动有周期性,使用高阶的滤波器。

此外,由于信源在上述的波动之外,还可能存在一些异常情况,如信源主备切换,上游的信源变化等,所以在调整到目标码率后,还需要时刻监控缓冲器内数据量,随时调整。这里的调整和分段阈值调整方式一致,如果上游信源变化了,之前的调整的码率会无效,则重复调整步骤,再次收敛到一个新的目标码率。

本发明设计了一个抛弃掉本地时钟,根据信源速率发送的机制,根据本发明的技术可以做到基于udp的tscbr码流发送和信源最终一致。从项目实施效果看,此方法可以实现基于udp的tscbr码流的平稳发送,且以信源时间基准的目标码率发送。


技术特征:

1.一种基于ip的cbr码率发送控制方法,其特征是,具体包括如下步骤:

(1)muxer把视频压缩流和音频压缩流根据规范要求交织在一起;

(2)根据视频压缩流的dts为时间基准,按照设置的码率填充空包,同时根据码率设置pcr,保证生成的ts流是按照信源的时间基准生成的固定码率数据流;

(3)udpsender码率控制:发送模块使用一个缓冲器来控制发送码率,任务开始时初始填充一部份数据,等缓冲器初始缓冲数据填满,则开始根据本机时钟按照设定的码率控制发送,发送模块根据缓冲器内的数据量对比初始填充的数据量的偏差做调整,调整发送速率,最终和信源一致。

2.根据权利要求1所述的一种基于ip的cbr码率发送控制方法,其特征是,在步骤(3)中,如果本机时钟比信源慢,则缓冲器内数据会缓慢累积;如果本机时钟比信源快,则缓冲器内数据会逐渐减少。

3.根据权利要求1或2所述的一种基于ip的cbr码率发送控制方法,其特征是,在步骤(3)中,为了减少发送码率的波动,缓冲器内数据采用分段阈值来控制,阈值+x意味着缓冲器内的数据量逐渐减少,说明发送快了,需要减少发送码率;阈值-x意味着缓冲器内的数据逐渐累积,说明发送慢了,需要增加发送码率;具体如下:

(a)缓冲器内数据<阈值-1,发送码率调整:当前码率–delta1;

(b)缓冲器内数据<阈值-2,发送码率调整:当前码率–delta2;

(c)缓冲器内数据>阈值1,发送码率调整:当前码率+delta1;

(d)缓冲器内数据>阈值2,发送码率调整:当前码率+delta2;

其中delta值是预设的固定值。

4.根据权利要求1或2所述的一种基于ip的cbr码率发送控制方法,其特征是,在步骤(3)中,发送模块中的缓冲器数据量存在波动,必须要通过统计手段来消除波动,具体包括如下方法:

(i)滑动平均滤波法:连续取n个采样值进行算术平均运算,适用于平滑随机波动;

(ii)中位值平均滤波法:采用中位值滤波法和算术平均滤波法相结合的方式,消除由于偶发性大的脉冲抖动所引起的采样值偏差;

(iii)如果波动有周期性,使用高阶的滤波器。

5.根据权利要求3所述的一种基于ip的cbr码率发送控制方法,其特征是,delta是个预设的固定值,根据固定值调整发送码率,会始终存在一个小的偏差,在目标码率上下小范围波动,无法收敛,考虑到缓冲器内数据量和初始填充值的差和码率调整值delta的关系是个单峰函数,用黄金分割法收敛到目标码率。

技术总结
本发明公开了一种基于IP的CBR码率发送控制方法。它具体包括如下步骤:Muxer把视频压缩流和音频压缩流根据规范要求交织在一起;根据视频压缩流的DTS为时间基准,按照设置的码率填充空包,同时根据码率设置PCR,保证生成的TS流是按照信源的时间基准生成的固定码率数据流;UDP Sender码率控制:发送模块使用一个缓冲器来控制发送码率,任务开始时初始填充一部份数据,等缓冲器初始缓冲数据填满,则开始根据本机时钟按照设定的码率控制发送,发送模块根据缓冲器内的数据量对比初始填充的数据量的偏差做调整,调整发送速率,最终和信源一致。本发明的有益效果是:实现基于UDP的TS CBR码流的平稳发送,且以信源时间基准的目标码率发送。

技术研发人员:孙伟涛;王雪辉;陈金荣
受保护的技术使用者:杭州当虹科技股份有限公司
技术研发日:2020.12.14
技术公布日:2021.04.06

转载请注明原文地址:https://xbbs.6miu.com/read-20248.html