发明名称 一种无线环境中的音视频流媒体同步播放方法
摘要 一种无线环境中的音视频流媒体同步播放方法,该方法根据缓冲区占用水平分别调整音频帧大小和视频播放帧率来达到音频流媒体内同步和视频流媒体内同步,在此基础上通过比较音频单元和视频单元的时间标签来调整视频播放帧率达到与音视频流媒体间的同步。本发明的优点是不仅给出视频流媒体内同步方法,还提出了无线环境中音频流媒体内同步方法和音视频流媒体间同步方法,实现了无线环境中的音视频流媒体的同步播放。
申请公布号 CN101964903A 申请公布日期 2011.02.02
申请号 CN201010503510.2 申请日期 2010.10.11
申请人 陕西赛瑞德科技发展有限责任公司 发明人 高强
分类号 H04N7/24(2011.01)I;H04L29/06(2006.01)I 主分类号 H04N7/24(2011.01)I
代理机构 代理人
主权项 1.一种无线环境中的音视频流媒体同步播放方法,其特征在于:所述方法包括以下步骤:A.确定音频帧的大小实现音频流媒体内同步;步骤A具体通过如下算法来实现:A1.探知音频播放缓冲区中有i个音频帧;A2.确定即将播放帧的目标大小LL(i)为:<maths num="0001"><![CDATA[<math><mrow><mi>LL</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>L</mi><mi>max</mi></msub></mtd><mtd><mi>i</mi><mo>&lt;</mo><msub><mi>LL</mi><mi>a</mi></msub></mtd></mtr><mtr><mtd><msub><mi>L</mi><mn>0</mn></msub></mtd><mtd><msub><mi>LL</mi><mi>a</mi></msub><mo>&le;</mo><mi>i</mi><mo>&le;</mo><msub><mi>HL</mi><mi>a</mi></msub></mtd></mtr><mtr><mtd><msub><mi>L</mi><mi>min</mi></msub></mtd><mtd><mi>i</mi><mo>></mo><msub><mi>HL</mi><mi>a</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>这里L<sub>max</sub>和L<sub>min</sub>的选取根据帧可扩展程度或可压缩程度和流媒体内同步的要求即时延抖动要求来确定;对于音频,要求时延抖动不超过10ms,那么L<sub>max</sub>=min{2L<sub>0</sub>,L<sub>0</sub>+10ms},L<sub>min</sub>=max{0.5L<sub>0</sub>,L<sub>0</sub>-10ms};A3.若该帧包含静音期,则延长或缩短静音期使该帧的大小等于LL(i);若该帧处在突发期内而不包含静音期,则改变该帧的大小,当LL(i)=L<sub>max</sub>时,扩展该帧,扩展后的帧大小为<img file="FSA00000297914900012.GIF" wi="449" he="127" />当LL(i)=L<sub>min</sub>时,压缩该帧,压缩后的帧大小为<img file="FSA00000297914900013.GIF" wi="443" he="128" />这里T为该帧的基音周期;A4.按照调整后的大小进行播放音频帧;B.确定视频帧的播放持续时间实现视频流媒体内同步;步骤B具体通过如下算法来实现:B1.探知视频播放缓冲区中有i个视频帧;B2.确定即将播放视频帧的播放持续时间d(i)为:<maths num="0002"><![CDATA[<math><mrow><mi>d</mi><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mn>1</mn><mrow><msub><mi>r</mi><mi>min</mi></msub><mo>+</mo><mfrac><mrow><msub><mi>r</mi><mi>v</mi></msub><mo>-</mo><msub><mi>r</mi><mi>min</mi></msub></mrow><msub><mi>LL</mi><mi>v</mi></msub></mfrac><mo>&CenterDot;</mo><mi>i</mi></mrow></mfrac></mtd><mtd><mi>i</mi><mo>&lt;</mo><msub><mi>LL</mi><mi>v</mi></msub></mtd></mtr><mtr><mtd><mfrac><mn>1</mn><msub><mi>r</mi><mi>v</mi></msub></mfrac></mtd><mtd><msub><mi>LL</mi><mi>v</mi></msub><mo>&le;</mo><mi>i</mi><mo>&le;</mo><msub><mi>HL</mi><mi>v</mi></msub></mtd></mtr><mtr><mtd><mfrac><mn>1</mn><mrow><msub><mi>r</mi><mi>v</mi></msub><mo>+</mo><mfrac><mrow><msub><mi>r</mi><mi>max</mi></msub><mo>-</mo><msub><mi>r</mi><mi>v</mi></msub></mrow><mrow><msub><mi>B</mi><mi>v</mi></msub><mo>+</mo><mn>2</mn><msub><mi>A</mi><mi>v</mi></msub><mo>-</mo><msub><mi>HL</mi><mi>v</mi></msub></mrow></mfrac><mo>&CenterDot;</mo><mrow><mo>(</mo><mi>i</mi><mo>-</mo><msub><mi>HL</mi><mi>v</mi></msub><mo>)</mo></mrow></mrow></mfrac></mtd><mtd><mi>i</mi><mo>></mo><msub><mi>HL</mi><mi>v</mi></msub></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中r<sub>v</sub>是正常播放帧率,r<sub>max</sub>和r<sub>min</sub>根据具体的服务质量要求来确定,即考虑流媒体内同步的要求即时延抖动要求;对于TV品质的视频,要求时延抖动不超过10ms,则<maths num="0003"><![CDATA[<math><mrow><msub><mi>r</mi><mi>max</mi></msub><mo>=</mo><mfrac><mn>1000</mn><mrow><mn>1000</mn><mo>/</mo><msub><mi>r</mi><mi>v</mi></msub><mo>-</mo><mn>10</mn></mrow></mfrac><mo>,</mo></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mi>r</mi><mi>min</mi></msub><mo>=</mo><mfrac><mn>1000</mn><mrow><mn>1000</mn><mo>/</mo><msub><mi>r</mi><mi>v</mi></msub><mo>+</mo><mn>10</mn></mrow></mfrac><mo>;</mo></mrow></math>]]></maths>B3.按照调整后的播放持续时间播放视频帧;音频和视频播放期间,每播放N<sub>a</sub>个音频帧时,进行一次流媒体间同步调整;C.以音频流为主媒体流,视频流为从媒体流,调整视频媒体单元的播放持续时间来实现音视频流媒体间同步;步骤C具体通过如下算法来实现:C1.令最近播放的音频帧q的播放时间标签t<sub>a</sub>(q)和最近播放的视频帧l的播放时间标签t<sub>v</sub>(l),并进行比较,二者之间的关系有三种情况:C21.若|t<sub>a</sub>(q)-t<sub>v</sub>(l)|≤80ms,音视频播放处于同步状态,不需要进行调整;C22.若80ms<|t<sub>a</sub>(q)-t<sub>v</sub>(l)|≤160ms,音视频播放处于临界同步状态,需进行流媒体间同步调整;C23.若|t<sub>a</sub>(q)-t<sub>v</sub>(l)|>160ms,音视频播放处于失步状态,需进行流媒体间同步调整;C31.进行流媒体间同步调整时,若t<sub>a</sub>(q)>t<sub>v</sub>(l),表明视频落后于音频播放,从P-QoS考虑,不主动丢弃视频帧,以免引起图像播放跳跃的感觉,因此应提高视频的播放帧率即减小视频帧的播放持续时间,则视频帧l其后n个视频帧的播放持续时间都为1000/r<sub>max</sub>,其中:n=[|t<sub>a</sub>(q)-t<sub>v</sub>(l)|]/10这里n是整数;C32.进行流媒体间同步调整时,若t<sub>a</sub>(q)<t<sub>v</sub>(l),表明视频超前于音频播放,从P-QoS考虑,不暂停播放视频帧,以免引起图像播放停顿的感觉,因此要降低视频的播放帧率即增大视频帧的播放持续时间,则视频帧l其后n个视频帧的播放持续时间都为1000/r<sub>min</sub>;在进行流媒体间同步调整期间,不进行视频流媒体内同步调整。
地址 710068 陕西省西安市朱雀大街99号