背景:
本研究主要用于对文件块(file或hls)进行组播发送,并且尽量减小码率抖动。
原理:pcr + 均衡码率 联合控制
通过一系列pid过滤很容易获取实时流中的pcr数据:若pcr_flag为1,则pcr占用调整字段的 第2、3、4、5、6、7字节。其中前33位为program_clock_reference_base,紧接着的6位为保留位,之后的9位为program_clock_reference_externsion。
pcr计算公式,时间频率27Mhz:
pcr=program_clock_reference_base*(27Mhz/90Khz)+program_clock_reference_externsion。
pcr计算公式,时间频率1000Mhz:
sys_pcr=(pcr/27Mhz)*1000000
我们得到系统pcr即可进行发送码率控制,但在实际测试中,发现两个pcr间存在一定数据,若不进行控制,我们会发现再每一个pcr到达点网络会存在一个波峰。我采取的方法是利用均衡码率对这段数据再次进行控制。实际在vlc,ffplayer,网络机顶盒,调制设备上能达到很好的效果。