1.本发明属于流媒体技术领域,更具体地涉及一种音视频直播渲染方法、装置、设备及计算机存储介质。
背景技术:2.目前,在音视频的直播过程中,通常需要利用定时器对音视频数据流按照一定的帧率进行渲染,对单帧数据进行渲染后再进行推送;然而,由于直播过程中所采用的定时器精度往往较低,为ms级,且由于定时器自身也存在一定的计时误差,使得直播过程中的实际帧率与设定帧率之间会存在1~2帧/s的误差,即直播的数据流推送速率会比设定速率快1~2帧/s或慢1~2帧/s,进而导致音视频数据流于推送时容易出现卡顿等问题,从而会影响直播效果和用户体验感。
3.尽管,目前已存在ns级高精度的定时器,但其对于外围设备的配置要求较高,且通用性较差;因此,如何基于现有定时器,实现渲染帧率精度的提升,已成为本领域需要解决的技术问题。
技术实现要素:4.鉴于以上现有技术中存在的缺点,本发明的目的在于提供一种音视频直播渲染方法、装置、设备及计算机存储介质,用于解决现有音视频直播过程中,因定时器的时间精度不足和定时器自身误差等原因,导致对各数据帧渲染时容易存在帧率精度不足,实际帧率和设定帧率之间存在误差等问题。
5.为实现上述目的及其他相关目的,本发明于第一方面提供一种音视频直播渲染方法,适用于发送端,用于在音视频直播过程中,同步执行各周期的数据帧渲染过程;其中,所述发送端包括定时器和计时器;所述计时器的时间精度高于所述定时器的时间精度;于执行单个渲染周期时,所述音视频直播渲染方法,包括:获取当前帧的期望时间戳,所述当前帧为当前周期内待渲染的数据帧;对所述当前帧执行渲染;利用所述计时器,获取所述当前帧于启动渲染时的第一时间戳;基于所述第一时间戳和所述期望时间戳,获取当前帧的时间误差;基于当前帧的所述时间误差,确定当前帧对应的时差调节量;利用所述计时器,获取当前帧于完成渲染时的第二时间戳;基于下一帧对应的期望时间戳、当前帧的所述第二时间戳和所述时差调节量,获取当前帧的渲染间隔时间;以及,于完成渲染时启动定时器,当计时达到所述渲染间隔时间时,执行下一个所述渲染周期。
6.于本发明一实施例中,所述获取当前帧的期望时间戳,包括:基于上一帧对应的期望时间戳,和预设的帧间隔时间,获取当前帧的期望时间戳。
7.于本发明一实施例中,所述基于下一帧对应的期望时间戳、当前帧的所述第二时间戳和所述时差调节量,获取当前帧的渲染间隔时间,包括:将所述下一帧对应的期望时间戳,与所述当前帧的第二时间戳相减,以获得当前帧的初始渲染间隔时间;以及,将所述时差调节量,与当前帧的所述初始渲染间隔时间进行叠加,以获得当前帧的所述渲染间隔时
间。
8.于本发明一实施例中,所述基于当前帧的所述时间误差确定当前帧对应的时差调节量的实现方式,包括:将当前帧的所述时间误差,设定为所述当前帧对应的所述时差调节量。
9.于本发明一实施例中,所述基于当前帧的所述时间误差确定当前帧对应的时差调节量的实现方式,包括:获取上一周期的累计时间误差;其中,所述累计时间误差为执行各所述渲染周期后,各数据帧对应时间误差的累积值;基于所述当前帧的时间误差,对所述上一周期的累计时间误差进行更新,以获得当前周期的累计时间误差;以及,基于当前周期的累计时间误差,确定当前帧对应的时差调节量。
10.于本发明一实施例中,于所述启动定时器之前,还包括:将当前帧的所述渲染间隔时间,转换为满足定时器时间精度要求的新渲染间隔时间,以基于该新渲染间隔时间执行后续步骤。
11.本发明于第二方面提供一种音视频直播渲染装置,连接发送端,用于在音视频直播过程中,同步执行各周期的数据帧渲染过程;其中,所述发送端包括定时器和计时器;所述计时器的时间精度高于所述定时器的时间精度;所述音视频直播渲染装置,包括:期望时间戳获取单元,用于获取当前帧的期望时间戳,所述当前帧为当前周期内待渲染的数据帧;渲染单元,用于对当前帧执行渲染;时间误差获取单元,用于利用所述计时器,获取所述当前帧于启动渲染时的第一时间戳;基于所述第一时间戳和所述期望时间戳,获取当前帧的时间误差;时差调节量单元,用于根据当前帧的所述时间误差,确定当前帧对应的时差调节量;渲染间隔时间获取单元,用于利用所述计时器,获取当前帧于完成渲染时的第二时间戳;基于下一帧对应的期望时间戳、当前帧的所述第二时间戳和所述时差调节量,获取当前帧的渲染间隔时间;计时单元,用于在完成渲染后启动定时器,当计时达到所述渲染间隔时间时,触发各单元执行下一个所述渲染周期。
12.于本发明一实施例中,所述渲染间隔时间获取单元,包括:初始渲染间隔时间获取子单元,用于将所述下一帧对应的期望时间戳,与所述当前帧的第二时间戳相减,以获得当前帧的初始渲染间隔时间;渲染间隔时间获取子单元,用于将所述时差调节量,与当前帧的所述初始渲染间隔时间进行叠加,以获得当前帧的所述渲染间隔时间。
13.于本发明一实施例中,所述时差调节量单元,包括:当前累计时间误差获取子单元,用于获取上一周期的累计时间误差,并基于所述当前帧的时间误差,对所述上一周期的累计时间误差进行更新,以获得当前周期的累计时间误差;其中,所述累计时间误差为执行各所述渲染周期后,各数据帧对应时间误差的累积值;时差调节量确定子单元,用于基于当前周期的累计时间误差,确定当前帧对应的时差调节量。
14.本发明于第三方面提供一种电子设备,包括:处理器以及存储器,所述存储器与所述处理器之间通信连接;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如上任意所述的音视频直播渲染方法中的各步骤。
15.本发明于第四方面提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任意所述的音视频直播渲染方法中的各步骤。
16.如上所述,本发明提供的所述音视频直播渲染方法、装置、设备及计算机存储介质,通过利用较高时间精度(相较于定时器时间精度)的计时器,获取当前帧于渲染启动时的时间误差,并基于该时间误差,对当前帧于渲染结束后至下一帧渲染启动之前的间隔时间进行调整,以降低因定时器的时间精度不足和自身误差等原因所产生的计时误差,即降低了相邻两帧于执行渲染时的时间误差,从而基于现有定时器,不需提高定时器配置水平,可以保证音视频数据流于执行渲染时的均匀性,进而可以提高音视频数据流的渲染效果和直播效果,提高用户体验。
附图说明
17.图1为本发明提供的所述音视频直播渲染方法于一实施例中的流程示意图;图2为本发明提供的所述音视频直播渲染方法于另一实施例中的流程示意图;图3为本发明提供的所述音视频直播渲染装置于一实施例中的结构示意图;图4为本发明提供的所述音视频直播渲染装置于另一实施例中的结构示意图;图5为本发明提供的所述电子设备于一实施例中的结构示意图;元件标号说明30、音视频直播渲染装置;31、期望时间戳获取单元;32、渲染单元;33、时间误差获取单元;34、时差调节量单元;341、当前累计时间误差获取子单元;342、时差调节量确定子单元;35、渲染间隔时间获取单元;351、初始渲染间隔时间获取子单元;352、渲染间隔时间获取子单元;36、计时单元;5、电子设备;51、存储器;52、处理器。
具体实施方式
18.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
19.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
20.实施例1为解决现有技术中存在的技术问题,本发明实施例提供一种音视频直播渲染方法,应用于发送端,于音视频直播过程中,同步执行各周期的数据帧渲染过程,以实现各直播数据帧的渲染效果;即于音视频数据的直播过程中,对各帧数据依次进行渲染,以推送各渲染后的数据帧。
21.其中,所述发送端为音视频数据的发送端,包括计时器和定时器,所述计时器用于采集各时间戳,所述定时器用于计时;且所述计时器的时间精度高于所述定时器的时间精度。
22.需要注意的是,所述计时器为所述发送端系统自带的计时器,也可以为其他计时
器,在此不做具体限定。
23.于本实施例中,所述计时器的时间精度为ns,所述定时器的时间精度为ms。
24.请参阅图1,示出为所述音视频直播渲染方法于单个渲染周期中的流程示意图;如图1所示,于单个渲染周期中,所述音视频直播渲染方法包括如下步骤:s100,将当前渲染周期内待渲染的数据帧作为当前帧,获取所述当前帧的期望时间戳;其中,所述期望时间戳为音视频数据流于直播过程中,各数据帧执行渲染的预设时间。
25.示例性的,预设于第10ms、第40ms和第70ms分别对第二帧、第三帧和第四帧依次执行帧渲染,则所述第二帧的期望时间戳为第10ms,第三帧的期望时间戳为第40ms,以及第四帧的期望时间戳为第70ms。
26.可选的,所述期望时间戳为基于一预设的帧间隔时间所确定的时间戳,则获取所述当前帧的期望时间戳,包括:基于上一帧对应的期望时间戳,和所述预设的帧间隔时间,获取当前帧的期望时间戳。
27.可选的,获取所述当前帧的期望时间戳,还可以包括:根据各数据帧与所述期望时间戳之间的映射关系,获取当前帧对应的期望时间戳。
28.s200,对所述当前帧执行渲染,利用所述计时器,获取所述当前帧于启动渲染时的第一时间戳;基于所述第一时间戳和所述期望时间戳,获取当前帧的时间误差;其中,所述第一时间戳为对当前帧启动渲染时,系统实际采集到的时间戳;其计时精度为1ns。
29.所述当前帧的时间误差为当前帧的所述期望时间戳与所述第一时间戳之间的时间差,即对当前帧启动渲染时,预设时间与实际时间之间的时间差。
30.具体的,将所述期望时间戳与所述第一时间戳相减,以获得所述当前帧的时间误差,为:mi= expecttime
i—
curki其中,mi为当前帧i的时间误差,expecttimei为当前帧i的期望时间戳,curki为当前帧i的第一时间戳。
31.s300,基于当前帧的所述时间误差,确定当前帧对应的时差调节量;其中,所述时差调节量为用于消除定时器精度误差所设定的时间调节参数。
32.具体的,将当前帧的所述时间误差,设定为所述当前帧对应的时差调节量,即:trimi=mi其中,trimi为当前帧i的时差调节量。
33.于其他实施例中,所述获取当前帧对应的时差调节量,还可以为:将所述当前帧的时间误差和预设的系数相乘,以获得新的时间误差,将该新的时间误差设定为所述当前帧对应的时差调节量,为:其中,为预设的系数。
34.s400,于当前帧完成渲染时,利用所述计时器,获取当前帧的第二时间戳;基于下
ns;对第一帧执行渲染,获取第一帧的第一时间戳curk1= 183 245 864 ns;基于第一帧的所述期望时间戳和所述第一时间戳,获取第一帧的时间误差m1= 183 245 864
ꢀ‑
183 245 864=0 ns;将第一帧的时间误差设置为第一帧的时差调节量trim1= m1=0 ns;对第一帧执行渲染后,获得第一帧的第二时间戳curl1= 194 876 298 ns;基于第二帧的所述期望时间戳、第一帧的所述第二时间戳和第一帧的时差调节量,获取第一帧的渲染间隔时间delay1= expecttime2ꢀ–
curl
1 + trim1= 18 369 566 ns;由于定时器的计时精度为ms,则确定所述第一帧的最终渲染间隔时间为18 ms;定时器计执行计时,于达到18ms后执行第二渲染周期。
45.于执行所述第二渲染周期时,包括:基于第二帧的期望时间戳,确定第三帧的期望时间戳expecttime3=243 245 864 ns;对第二帧执行渲染,获取第二帧的第一时间戳curk
2 = 213 784 256 ns;获取第二帧的时间误差m2= 213 245 864
‑ꢀ
213 784 256=-538 392 ns,即第二帧于渲染启动时,实际时间戳比期望时间戳晚了约0.5ms;将第二帧的时间误差设置为第二帧的时差调节量设置trim2= m2=-538 392 ns;对第二帧执行渲染后,获取第二帧的第二时间戳curl
2 =221 993 352 ns;基于第三帧的期望时间戳,第二帧的第二时间戳和时差调节量,获取第二帧的渲染间隔时间delay2= expecttime3ꢀ–ꢀ
curl
2 + trim2= 243 245 864
ꢀ‑ꢀ
221 993 352
ꢀ‑
538 39220 714 120ns20ms;由于定时器的计时精度为ms,则确定所述第二帧的最终渲染间隔时间为20ms;定时器计执行计时,于达到20ms后执行第三渲染周期。
46.于执行所述第三渲染周期时,包括:基于第三帧的期望时间戳,确定第四帧的期望时间戳expecttime4=273 245 864 ns;对第三帧执行渲染,获取第三帧的第一时间戳curk
3 = 242 738 842ns;基于第三帧的所述期望时间戳和所述第一时间戳,获取第三帧的时间误差m3=243 245 864
ꢀ‑
242 738 842=507 022 ns,即第二帧于渲染启动时,实际时间戳比期望时间戳提早了约0.5ms;将第三帧的时间误差设置为第三帧的时差调节量设置trim3= m3=507 022 ns;对第三帧执行渲染后,获取第三帧的第二时间戳curl3 = 254 653 782 ns;基于第四帧的期望时间戳,第三帧的第二时间戳和时差调节量,获取第三帧的渲染间隔时间,为:delay3= expecttime4ꢀ–
curl
3 + trim3= 273 245 864
ꢀ‑
254 653 782+507 02219 099 104 ns19 ms由于定时器的计时精度为ms,则确定所述第三帧的最终渲染间隔时间为19 ms。
47.定时器执行计时,于达到19ms后执行第四渲染周期。
183 245 864
ꢀ‑
183 245 864=0 ns;获取第一周期的累计时间误差cumulative
1 = 0 ns;将第一周期的累计时间误差设置为第一帧的时差调节量设置trim1=cumulative
1 = 0 ns;对第一帧执行渲染后,获得第一帧的第二时间戳curl1= 194 876 298 ns;基于第二帧的所述期望时间戳、第一帧的所述第二时间戳和所述时差调节量,获取第一帧的渲染间隔时间delay1= expecttime2ꢀ–
curl
1 + trim1= 18 369 566 ns;由于定时器的计时精度为ms,则确定所述第一帧的最终渲染间隔时间为18 ms。
58.定时器计执行计时,于达到18ms后执行第二渲染周期。
59.于执行所述第二渲染周期时,包括:基于第二帧的期望时间戳,确定第三帧的期望时间戳expecttime3=243 245 864 ns;对第二帧执行渲染,获取第二帧的第一时间戳curk
2 = 213 784 256 ns;获取第二帧的时间误差m2= 213 245 864
‑ꢀ
213 784 256=-538 392 ns,即第二帧于渲染启动时,实际时间戳比期望时间戳晚了约0.5ms;获取第二周期的累计时间误差cumulative
2 = 0-538 392=-538 392 ns;将第二周期的累计时间误差设置为第二帧对应的时差调节量trim2= cumulative2=-538 392 ns;对第二帧执行渲染后,获取第二帧的第二时间戳curl
2 = 221 993 352 ns;基于第三帧的期望时间戳,第二帧的第二时间戳和时差调节量,获取第二帧的渲染间隔时间delay2= expecttime3ꢀ–
curl
2 + trim2= 243 245 864
ꢀ‑ꢀ
221 993 352
ꢀ‑
538 39220 714 120 ns20 ms;由于定时器的计时精度为ms,则确定所述第二帧的最终渲染间隔时间为20 ms。
60.定时器执行计时,于达到20ms后执行第三渲染周期。
61.于执行所述第三渲染周期时,包括:基于第三帧的期望时间戳,确定第四帧的期望时间戳expecttime4=273 245 864 ns;对第三帧执行渲染,获取第三帧的第一时间戳curk
3 = 242 738 842ns;基于第三帧的所述期望时间戳和所述第一时间戳,获取第三帧的时间误差m3=243 245 864
ꢀ‑
242 738 842=507,022 ns,即第二帧于渲染启动时,实际时间戳比期望时间戳提早了约0.5ms;获取第三周期的累计时间误差cumulative
3 =
ꢀ‑
538 392+507 022=-31 370ns;将第三周期的累计时间误差设置为第三帧对应的时差调节量trim3= cumulative3=-31 370ns;对第三帧执行渲染后,获取第三帧的第二时间戳curl3 = 254 653 782 ns;基于第四帧的期望时间戳,第三帧的第二时间戳和时差调节量,获取第三帧的渲染间隔时间delay3= expecttime4ꢀ–
curl
3 + trim3= 273 245 864
ꢀ‑
254 653 782-31 37018 560 712 ns18 ms;
由于定时器的计时精度为ms,则确定所述第三帧的最终渲染间隔时间为18 ms。
62.定时器执行计时,于达到18ms后执行第四渲染周期。
63.后续步骤不再赘述。
64.由上述具体实施例可获得:第二帧的时间误差为-538 392 ns,其累计时间误差为-538 392 ns;第三帧的时间误差为507 022 ns,其累计时间误差为-31 370ns;相较于时间误差,各帧对应的累计时间误差更小。
65.本实施例提供的所述音视频直播渲染方法,通过设置累计时间误差,基于累计时间误差来确定当前帧对应的时差调节量,以调整当前帧与下一帧之间的间隔时间,可以通过多周期的循环执行,使得每一周期对应的累积误差可以被动态消减,从而使得相邻两帧的时间误差之间的差值控制在1ms左右,以及将帧率误差控制在0.001帧/秒的数量级,从而基于现有定时器,不需提高定时器配置水平,可以保证音视频数据流于执行渲染时的均匀性,于直播过程中达到高精度的渲染帧率,进而可以提高音视频数据流的渲染效果和直播效果,提高用户体验。
66.实施例3为解决现有技术中存在的技术问题,本发明实施例提供一种音视频直播渲染装置,适用于数据发送一侧,用于音视频直播过程中,同步执行各周期的数据帧渲染过程,以实现各直播数据帧的渲染效果;即于音视频数据的直播过程中,对各帧数据依次进行渲染,以推送各渲染后的数据帧。其中,所述发送端包括定时器和计时器;所述计时器的时间精度高于所述定时器的时间精度;请参阅图3,示出为所述音视频直播渲染装置于一实施例中的结构示意图。
67.如图3所示,所述音视频直播渲染装置30包括:期望时间戳获取单元31、渲染单元32、时间误差获取单元33、时差调节量单元34、渲染间隔时间获取单元35和计时单元36。
68.其中,所述期望时间戳获取单元31用于获取当前帧的期望时间戳;其中,所述当前帧为当前周期内待渲染的数据帧。
69.所述渲染单元32用于对所述当前帧执行渲染。
70.所述时间误差获取单元33用于获取所述当前帧于启动渲染时的第一时间戳,并基于所述第一时间戳和所述期望时间戳,获取当前帧的时间误差。
71.所述时差调节量单元34用于根据当前帧的所述时间误差,确定当前帧对应的时差调节量。
72.于一具体实施例中,所述确定当前帧对应时差调节量的具体实现方式与实施例1中的实现方式相同,在此不再赘述。
73.所述渲染间隔时间获取单元35用于获取当前帧于完成渲染时的第二时间戳;基于下一帧对应的期望时间戳、当前帧的所述第二时间戳和所述时差调节量,获取当前帧的渲染间隔时间。
74.所述计时单元36用于在完成渲染后启动定时器,当计时达到所述渲染间隔时间时,触发各单元执行下一个所述渲染周期。当前帧的第一时间戳和第二时间戳由计时器获取得到。可以理解,所述定时器和计时器可以集成于上述音视频直播渲染装置内,也可以独立于上述音视频直播渲染装置,设置于所述数据发送端。
75.于一具体实施例中,所述音视频直播渲染装置如图4所示,其中所述渲染间隔时间获取单元35包括:初始渲染间隔时间获取子单元351和渲染间隔时间获取子单元352。
76.具体的,所述初始渲染间隔时间获取子单元351用于将所述下一帧对应的期望时间戳,与所述当前帧的第二时间戳相减,以获得当前帧的初始渲染间隔时间;所述渲染间隔时间获取子单元352,用于将所述时差调节量,与当前帧的所述初始渲染间隔时间进行叠加,以获得当前帧的所述渲染间隔时间。
77.以及,所述时差调节量单元34包括:当前累计时间误差获取子单元341和时差调节量确定子单元342。
78.具体的,所述当前累计时间误差获取子单元341用于获取上一周期的累计时间误差,并基于所述当前帧的时间误差,对所述上一周期的累计时间误差进行更新,以获得当前周期的累计时间误差。
79.其中,所述累计时间误差为执行各所述渲染周期后,各数据帧对应时间误差的累积值。
80.所述时差调节量确定子单元342,用于基于当前周期的累计时间误差,确定当前帧对应的时差调节量。
81.可选的,所述音视频直播渲染装置还包括:转换单元;所述转换单元用于将当前帧的所述渲染间隔时间,转换为满足定时器时间精度要求的新渲染间隔时间,以使所述计时单元基于该新渲染间隔时间实现相应的功能。
82.实施例4为解决现有技术中存在的技术问题,本发明实施例还提供了一种电子设备,请参阅5,示出了本发明所述电子设备的结构示意图;如图5所示,所述电子设备5包括相互连接的存储器51和处理器52;存储器51用于存储计算机程序,处理器52用于执行存储器51存储的计算机程序,以使电子设备执行时可实现如上所述音视频直播渲染方法中的步骤。
83.可选的,所述存储器的数量均可以是一个或多个,所述处理器的数量可以是一个或多个,图5中均以一个为例。
84.可选的,所述电子设备中的处理器按照如上所述音视频直播渲染方法中的步骤,将一个或多个应用程序进程对应的指令加载到存储器上中,并由处理器运行存储于存储器中的应用程序,从而对应实现如所述音视频直播渲染方法中的各功能,在此不在对其进行赘述。
85.需要说明的是,存储器包括但不限于随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。同理处理器也可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
86.实施例5本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器调用时实现如上所述音视频直播渲染方法。
87.其中,计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd) 、记忆棒、软盘、机械编码设备。
88.这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
89.综上所述,本发明提供的所述音视频直播渲染方法、装置、设备及计算机存储介质,通过利用较高时间精度(相较于定时器时间精度)的计时器,获取当前帧于渲染启动时的时间误差;并基于该时间误差,对当前帧于渲染结束后至下一帧渲染启动之前的间隔时间进行调整,以降低因定时器的时间精度不足所产生的计时误差,即降低了相邻两帧于执行渲染时的时间误差,从而无需配置高时间精度的定时器,仅利用时间精度较低的定时器,即可以实现音视频数据流于直播过程中的均匀渲染,有效地提高了音视频数据流的渲染效果和直播效果,且提高了用户直播体验;此外,通过设置累计时间误差,基于累计时间误差来确定当前帧对应的时差调节量,以调整当前帧与下一帧之间的间隔时间,可以通过多周期的循环执行,使得每一周期对应的累积误差可以被动态消减,从而使得相邻两帧渲染之间的误差控制在1ms左右,以及将帧率误差控制在0.001帧/秒的数量级,进一步提高了音视数据流中各数据帧的渲染均匀性,减少了直播过程中对各数据帧进行渲染时所产生的卡顿、渲染效果不均衡等情况,有效地提高了直播渲染效果。
90.上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。