CN115086732B - 一种音视频数据的同步方法及装置 - Google Patents
一种音视频数据的同步方法及装置 Download PDFInfo
- Publication number
- CN115086732B CN115086732B CN202210849939.XA CN202210849939A CN115086732B CN 115086732 B CN115086732 B CN 115086732B CN 202210849939 A CN202210849939 A CN 202210849939A CN 115086732 B CN115086732 B CN 115086732B
- Authority
- CN
- China
- Prior art keywords
- audio
- video
- delay
- pair
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000001934 delay Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000009877 rendering Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0685—Clock or time synchronisation in a node; Intranode synchronisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种音视频数据的同步方法及装置,其中,该方法包括:确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟;根据音视频相对延迟,计算音频最小播放延迟;将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。
Description
技术领域
本申请涉及直播技术领域,尤其涉及一种音视频数据的同步方法及装置。
背景技术
现有技术中对音频数据和视频数据的同步方法为选定一个参考时钟,读取音频数据帧和视频数据帧上的时间戳,根据参考时钟来延迟或加快音频数据或视频数据。考虑到人对声音的敏感要强于视频,频繁调整音频数据会带来较差的观感体验,且音频数据的播放时钟为线性增长,所以一般会选音频数据的时钟作为参考时钟,将视频数据同步到音频数据上。
当音频数据和视频数据出现偶尔波动的时候,音频数据的时钟出现延迟,因为是将视频数据同步到音频数据上,会导致推流端(推流指的是把采集阶段封包好的内容传输到服务器的过程,推流端可以认为是直播端)会出现延迟,从而拉流端(拉流是指服务器已有直播内容,用指定地址进行拉取的过程,拉流端可以认为是收看直播的客户端)也出现延迟。
发明内容
有鉴于此,本申请的目的在于至少提供一种音视频数据的同步方法及装置,通过真实音频延迟与音频目标延迟的比较结果,控制音频数据进行减速播放、加速播放或者正常播放来实现音视频的同步,解决了现有技术中将视频数据同步到音频数据上导致推流端出现延迟的技术问题,达到降低直播或其他视频播放过程中出现延迟的概率的技术效果。
本申请主要包括以下几个方面:
第一方面,本申请实施例提供一种音视频数据的同步方法,音视频数据的同步方法包括:确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟;根据音视频相对延迟,计算音频最小播放延迟;将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。
可选地,确定当前音视频对中音频对应的期望音频延迟包括:确定最近接收的预设数量的音频包;针对最近接收的预设数量的音频包中的每个音频包,将该音频包与该音频包的前一个音频包的接收时间的差值确定为该音频包对应的接收时间间隔;依据接收时间间隔的数据大小,将每个音频包对应的接收时间间隔进行排序,确定为接收时间间隔序列;将接收时间间隔序列中的预设分位数对应的接收时间间隔确定为当前音视频对中音频对应的期望音频延迟。
可选地,计算当前音视频对对应的上一音视频对的目标延迟差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟包括:将上一音视频中视频对应的视频目标延迟与上一音视频中音频对应的音频目标延迟的差值,确定为当前音视频对对应的上一音视频对的目标延迟差值;将最近接收的视频包的接收时间与最近接收的音频包的接收时间的差值确定为第一差值;将最近接收的视频包中的网络时间协议NTP时间戳与最近接收的音频包中的NTP时间戳的差值确定为第二差值;将第二差值与第一差值的差值,确定为最近接收的音频包与最近接收的视频包的相对延迟;将目标延迟差值与相对延迟的和值,确定为当前音视频对的音视频相对延迟。
可选地,根据音视频相对延迟,计算音频最小播放延迟包括:将上一音视频对中对应的期望视频延迟与期望音频延迟作差,将差值与当前音视频对对应的音视频相对延迟求和,将和值确定为当前音视频对对应的总相对延迟;根据总相对延迟,确定当前音视频对对应的音频播放目标延迟和视频播放目标延迟;将上一音视频对对应的音频播放目标延迟、当前音视频对对应的音频播放目标延迟和预设基准值中的最大值,确定为当前音视频对对应的音频最小播放延迟;将上一音视频对对应的视频播放目标延迟、当前音视频对对应的视频播放目标延迟和预设基准值中的最大值,确定为当前音视频对对应的视频最小播放延迟。
可选地,根据总相对延迟,确定当前音视频对对应的音频播放目标延迟和视频播放目标延迟包括:判断总相对延迟是否大于预设基准值;若总相对延迟大于预设基准值,则判断上一音视频对对应的视频播放目标延迟是否大于预设基准值;若上一音视频对对应的视频播放目标延迟大于预设基准值,则将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟;若上一音视频对对应的视频播放目标延迟不大于预设基准值,则将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟;若总相对延迟不大于预设基准值,则判断上一音视频对对应的音频播放目标延迟是否大于预设基准值;若上一音视频对对应的音频播放目标延迟大于预设基准值,则将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟;若上一音视频对对应的音频目标延迟不大于预设基准值,则将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟。
可选地,方法还包括:确定当前音视频对中视频对应的期望视频延迟;将期望音频延迟与视频最小播放延迟中的最大值确定为当前音视频对对应的视频目标延迟。
可选地,确定当前音视频对中视频对应的期望视频延迟包括:将上一音视频对中视频对应的接收时间与当前音视频对中视频对应的接收时间输入至卡尔曼滤波器,得到当前音视频对中视频对应的网络延迟;将网络延迟、当前音视频对中视频对应的解码延迟和预设渲染延迟相加确定为当前音视频对中视频对应的期望视频延迟。
可选地,将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步包括:判断当前音视频对对应的真实音频延迟是否小于音频目标延迟与预设分数的乘积;若当前音视频对对应的真实音频延迟小于音频目标延迟与预设分数的乘积,则对音频数据进行减速播放;若当前音视频对对应的真实音频延迟不小于音频目标延迟与预设分数的乘积,则判断当前音视频对对应的真实音频延迟是否大于音频目标延迟;若当前音视频对对应的真实音频延迟大于音频目标延迟,则对音频数据进行加速播放。
第二方面,本申请实施例还提供一种音视频数据的同步装置,音视频数据的同步装置包括:第一确定模块,用于确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;第一计算模块,用于计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟;第二计算模块,用于根据音视频相对延迟,计算音频最小播放延迟;第二确定模块,用于将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;同步模块,用于将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线进行通信,机器可读指令被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的音视频数据的同步方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中的音视频数据的同步的步骤。
本申请实施例提供的一种音视频数据的同步方法及装置,该方法包括:确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟;根据音视频相对延迟,计算音频最小播放延迟;将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。通过真实音频延迟与音频目标延迟的比较结果,控制音频数据进行减速播放、加速播放或者正常播放来实现音视频的同步,解决了现有技术中将视频数据同步到音频数据上导致推流端出现延迟的技术问题,达到降低直播或其他视频播放过程中出现延迟的概率的技术效果。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种音视频数据的同步方法的流程图。
图2示出了本申请实施例所提供的根据音视频相对延迟计算音频最小播放延迟的步骤的流程图。
图3示出了本申请实施例所提供的根据总相对延迟确定当前音视频对对应的音频播放目标延迟和视频播放目标延迟的步骤的流程图。
图4示出了本申请实施例所提供的一种音视频数据的同步装置的功能模块图。
图5示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。
现有技术是将视频数据同步到音频数据上,当音频数据的参考时钟出现延迟时,会导致推流端出现延迟,从而导致拉流端也出现延迟。随着音频数据和视频数据的播放逐步累加,会导致拉流端和推流端极大的不同步,从而导致主播与观众无法沟通,进而影响直播效果。
基于此,本申请实施例提供了一种音视频数据的同步方法及装置,通过真实音频延迟与音频目标延迟的比较结果,控制音频数据进行减速播放、加速播放或者正常播放来实现音视频的同步,解决了现有技术中将视频数据同步到音频数据上导致推流端出现延迟的技术问题,达到降低直播或其他视频播放过程中出现延迟的概率的技术效果。具体如下:
请参阅图1,图1为本申请实施例所提供的一种音视频数据的同步方法的流程图。如图1所示,本申请实施例提供的音视频数据的同步方法,包括以下步骤:
S101、确定当前音视频对中音频对应的期望音频延迟、真实音频延迟。
当前音视频对指的是当前处理的音频帧与视频帧。也就是说,在对音视频数据进行同步时,是将一个音频帧与一个视频帧作为一对进行同步。当前音视频对中音频对应的是当前音视频对中的音频帧,当前音视频对中视频指的是当前音视频对中的视频帧。
当前音视频对是从缓存池中取出的,在获取音视频包后将音视频包放入缓存池中,依据音视频包的接收时间依次对缓存池中的音视频包进行处理。由于视频数据比音频数据大很多,所以需要多个视频包来匹配一个音频包。将音视频包放入缓存池中使即便出现网络不稳定的情况,也可以对缓存池中的音视频包进行处理,来防止播放出现卡顿。
音视频包的接收时间指的是拉流端在接收视频包、音频包时记录的本地时间,是可以直接获取到的。
示例性的,如果缓存池中存储了存储5个视频包5个音频包。依据音视频包的接收时间,将5个视频包确定为第一个视频包、第二个视频包、第三个视频包、第四个视频包、第五个视频包,将5个音频包确定为第一个音频包、第二个音频包、第三个音频包、第四个音频包、第五个音频包;若每个音频包可以存储100帧音频帧,每个视频包可以存储20帧视频帧,则需要5个视频包匹配1个音频包。也就是说,将第一个音频包中的第41帧音频帧,与第三个视频包中的第1帧视频帧确定为一个音视频对。在实际处理中,若出现视频延迟情况,则可能是将第一个音频包中的第41帧音频帧,与第二个视频包中的第19帧视频帧确定为一个音视频对;若出现音频延迟情况,则可能是将第一个音频包中的第40帧音频帧,与第三个视频包中的第1帧视频帧确定为一个音视频对。
其中,期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;真实音频延迟是当前音视频对中的音频帧的接收时间与当前音视频对中的音频帧开始解码处理的时间之间的时间差。也就是说,从获取到当前音视频对中的音频帧的时刻(相当于当前音视频对中音频对应的音频包的接收时间),到对当前音视频对中的音频帧执行本申请的方法的时刻,将两个时刻的差值确定为当前音视频对中音频对应的真实音频延迟。也就是说,真实音频延迟是将音频包放入缓存池中导致的。也就是说,在接收到每个音频帧并在该音频帧对应的真实音频延迟后,对音频帧进行解码和渲染。
确定当前音视频对中音频对应的期望音频延迟包括:
确定最近接收的预设数量的音频包;针对最近接收的预设数量的音频包中的每个音频包,将该音频包与该音频包的前一个音频包的接收时间的差值确定为该音频包对应的接收时间间隔;依据接收时间间隔的数据大小,将每个音频包对应的接收时间间隔进行排序,确定为接收时间间隔序列;将接收时间间隔序列中的预设分位数对应的接收时间间隔,确定为当前音视频对中音频对应的期望音频延迟。
其中,排序指的是升序排序或者降序排序。预设分位数指的是提前设置的百分位数。
也就是说,拉流端在对每个音视频对执行本申请的方案的同时,拉流端也在接收音视频包。进而,每个音视频对对应的最近接收的预设数量的音频包可能是不同的音频包。
示例性的,若预设数量设置为65,预设分位数为95百分位数,则确定最近接收的65个音频包;针对65个音频包中的每个音频包,确定该音频包及该音频包的前一个音频包的接收时间,将该音频包的接收时间与该音频包的前一个音频包的接收时间的差值,确定为该音频包的接收时间间隔;依据接收时间间隔的数据大小对接收时间间隔进行升序排列,将排列后的接收时间间隔确定为接收时间间隔序列;将接收时间间隔序列中的第95%个接收时间间隔(通过四舍五入求整,即,接收时间间隔序列中的第62个接收时间间隔)确定为当前音视频对中音频对应的期望音频延迟。
S102、计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟。
计算当前音视频对对应的上一音视频对的目标延迟差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟包括:将上一音视频中视频对应的视频目标延迟与上一音视频中音频对应的音频目标延迟的差值,确定为当前音视频对对应的上一音视频对的目标延迟差值;将最近接收的视频包的接收时间与最近接收的音频包的接收时间的差值确定为第一差值;将最近接收的视频包中的网络时间协议NTP时间戳与最近接收的音频包中的NTP时间戳的差值确定为第二差值;将第二差值与第一差值的差值,确定为最近接收的音频包与最近接收的视频包的相对延迟;将目标延迟差值与相对延迟的和值,确定为当前音视频对的音视频相对延迟。
音频目标延迟为音频最小播放延迟和期望音频目标延迟中的最大值,是设置给音频播放模块的实际值;也就是说,音频播放模块接收到渲染后的当前音视频对中的音频帧,在音频目标延迟对应的时间过后再播放当前音视频对中的音频帧。视频目标延迟为视频最小播放延迟和期望视频目标延迟的最大值,是设置给视频播放模块的实际值;也就是说,视频播放模块接收到渲染后的当前音视频对中的视频帧,在视频目标延迟对应的时间过后再播放当前音视频对中的音频帧。音频目标延迟是真实音频延迟的目标值,视频目标延迟是真实视频延迟的目标值。也就是说,真实音频延迟在等于音频目标延迟且真实视频延迟在等于视频目标延迟时,音视频数据达到同步。
在接收音视频包时,通过解读音视频包中的SR(Sender Report,发送者报告)包中携带的NTP时间戳(Network TimeProtocol,网络时间协议)。音视频包中的每一个音视频帧还对应有RTP时间戳(Real-time Transport Protocol,实时传输协议)。NTP时间戳是绝对时间,以毫秒为精度,而RTP时间戳则与对音视频包的采样频率有关。
因此,使用NTP时间戳进行计算,将音视频包中的NTP时间戳作为发送音视频包的本地时间。也就是说,第一差值是音视频包的接收时间差值,第二差值是音视频包的发送时间差值,将接收时间差值减去发送时间差值得到最近接收的一对音视频包的相对延迟;将目标延迟差值与相对延迟的和值,确定为当前音视频对的音视频相对延迟。音视频相对延迟指的是音视频流目前的时间偏差,若音视频相对延迟大于0,则视频流比音频流慢,若音视频相对延迟小于0,则音频流比视频流慢,若音视频相对延迟等于0,则视频流和音频流同速。
S103、根据音视频相对延迟,计算音频最小播放延迟。
请参阅图2,图2示出了本申请实施例所提供的根据音视频相对延迟计算音频最小播放延迟的步骤的流程图。如图2所示,根据音视频相对延迟,计算音频最小播放延迟包括:
S1031、将上一音视频对中对应的期望视频延迟与期望音频延迟作差,将差值与当前音视频对对应的音视频相对延迟求和,将和值确定为当前音视频对对应的总相对延迟。
也就是说,将上一音视频对中视频对应的期望视频延迟与上一音视频对中音频对应的期望音频延迟作差,将差值与当前音视频对对应的音视频相对延迟相加,将和值确定为当前音视频对对应的总相对延迟。
S1032、根据总相对延迟,确定当前音视频对对应的音频播放目标延迟和视频播放目标延迟。
音频播放目标延迟指的是音视频流相对延迟中音频部分的目标延迟,是保证音频播放模块流畅播放的最小值,也就是说,音频播放模块的音频目标延迟至少要设置为音频播放目标延迟才能保证音频播放不卡顿;视频频播放目标延迟指的是音视频流相对延迟中视频部分的目标延迟,是保证视频播放模块流畅播放的最小值,也就是说,视频播放模块的视频目标延迟至少要设置为视频播放目标延迟才能保证视频播放不卡顿。
请参阅图3,图3示出了本申请实施例所提供的根据总相对延迟确定当前音视频对对应的音频播放目标延迟和视频播放目标延迟的步骤的流程图。如图2所示,根据总相对延迟,确定当前音视频对对应的音频播放目标延迟和视频播放目标延迟包括:
S10321、判断总相对延迟是否大于预设基准值。
预设基准值一般设置为0。
S10322、判断上一音视频对对应的视频播放目标延迟是否大于预设基准值。
若总相对延迟大于预设基准值,则判断上一音视频对对应的视频播放目标延迟是否大于预设基准值。
也就是说,若总相对延迟大于0,则获取上一音视频对对应的视频播放目标延迟,判断上一音视频对对应的视频播放目标延迟是否大于0。总相对延迟大于0,则说明当前播放的内容中视频延迟比音频延迟长。即,同一时刻对应的音频数据已经播出但是视频数据还没播出的情况(即,视频比音频慢的情况),需要减小视频播放目标延迟或者增大音频播放目标延迟。
S10323、将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟。
若上一音视频对对应的视频播放目标延迟大于预设基准值,则将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟。
也就是说,若总相对延迟大于0,且上一音视频对对应的视频播放目标延迟大于0,也就是说,在视频比音频慢的情况下,且上一音视频对对应的视频播放目标延迟大于0,则需要减小视频播放目标延迟。
S10324、将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟。
若上一音视频对对应的视频播放目标延迟不大于预设基准值,则将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟。
也就是说,在上一音视频对对应的视频播放目标延迟小于或者等于0情况下(即,上一音视频对对应的视频播放目标延迟等于0),此时无法再减小视频播放目标延迟,则需要增加音频播放目标延迟。
S10325、判断上一音视频对对应的音频播放目标延迟是否大于预设基准值。
若总相对延迟不大于预设基准值,则判断上一音视频对对应的音频播放目标延迟是否大于预设基准值。
总相对延迟小于或者等于0,则说明当前播放的内容中音频延迟比视频延迟长。即,同一时刻对应的视频数据已经播出但是音频数据还没播出的情况(即,视频比音频快的情况),则需要增大视频播放目标延迟或者减小音频播放目标延迟。
S10326、将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟。
若上一音视频对对应的音频播放目标延迟大于预设基准值,则将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟。
也就是说,若总相对延迟不大于0,且上一音视频对对应的音频播放目标延迟大于0,也就是说,在音频比视频慢的情况下,且上一音视频对对应的音频播放目标延迟大于0,则需要减小音频播放目标延迟。
S10327、将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟。
若上一音视频对对应的音频播放目标延迟不大于预设基准值,则将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟。
也就是说,在上一音视频对对应的音频播放目标延迟小于或者等于0情况下(即,上一音视频对对应的音频播放目标延迟等于0),此时无法再减小音频播放目标延迟,则需要增加视频播放目标延迟。
每次调整音频播放目标延迟或视频播放目标延迟时,只是在原有的音频播放目标延迟或视频播放目标延迟的基础上增加或者减小总相对延迟,不会出现无限增加或者减小的情况。还可以限制每次增加或者减少的时间要小于或者等于预设值(预设值一般设置为80毫秒),因此,如果在某个时刻播出的音频或者视频出现了较大的延迟,则需要一段时间来实现同步。
也就是说,在执行步骤S10322之前,方法还包括:判断总相对延迟是否不大于预设值,总相对延迟不大于预设值则执行步骤S10322;若总相对延迟大于预设值,则将总相对延迟的值更新为预设值后再执行步骤S10322。
返回图2,S1033、将上一音视频对对应的音频播放目标延迟、当前音视频对对应的音频播放目标延迟和预设基准值中的最大值,确定为当前音视频对对应的音频最小播放延迟。
S1034、将上一音视频对对应的视频播放目标延迟、当前音视频对对应的视频播放目标延迟和预设基准值中的最大值,确定为当前音视频对对应的视频最小播放延迟。
也就是说,当前音视频对对应的音频最小播放延迟是上一音视频对对应的音频播放目标延迟、当前音视频对对应的音频播放目标延迟和预设基准值这三者中的最大值。当前音视频对对应的视频最小播放延迟是上一音视频对对应的视频播放目标延迟、当前音视频对对应的视频播放目标延迟和预设基准值这三者中的最大值。
返回图1,S104、将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟。
也就是说,将期望音频延迟与音频最小播放延迟中的最大值设置给音频播放模块,作为音频播放模块的音频目标延迟,以使音频播放模块在接收到当前音视频对中的音频帧后,在间隔音频目标延迟后播放当前音视频对中的音频帧。
S105、将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。
将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步包括:判断当前音视频对对应的真实音频延迟是否小于音频目标延迟与预设分数的乘积;若当前音视频对对应的真实音频延迟小于音频目标延迟与预设分数的乘积,则对音频数据进行减速播放;若当前音视频对对应的真实音频延迟不小于音频目标延迟与预设分数的乘积,则判断当前音视频对对应的真实音频延迟是否大于音频目标延迟;若当前音视频对对应的真实音频延迟大于音频目标延迟,则对音频数据进行加速播放。
预设分数一般设置为四分之三。
若当前音视频对对应的真实音频延迟不大于音频目标延迟,则不需要调整音频数据的播放速度。也就是说,在当前音视频对对应的真实音频延迟大于或者等于音频目标延迟与预设分数的乘积,且当前音视频对对应的真实音频延迟小于或者等于音频目标延迟时,认为音频数据与视频数据同步,不需要调整音频数据的播放速度。
在执行步骤S105之前,方法还包括:判断当前音视频对对应的音频包的下一个音频包的起始时间戳与当前音视频对对应的音频包中的结尾时间戳是否相等;若当前音视频对对应的音频包的下一个音频包的起始时间戳与当前音视频对对应的音频包中的结尾时间戳不相等,则进行丢包隐藏(Packet Loss Concealment,PLC)或者融合(Merge);若当前音视频对对应的音频包的下一个音频包的起始时间戳与当前音视频对对应的音频包中的结尾时间戳相等,执行步骤S105。
起始时间戳指的是音频包中的第一个音频帧的时间戳,结尾时间戳指的是音频包中的最后一个音频帧的时间戳。
方法还包括:确定当前音视频对中视频对应的期望视频延迟;将期望音频延迟与视频最小播放延迟中的最大值确定为当前音视频对对应的视频目标延迟。
期望视频延迟指的是保证视频流流畅播放的期望延迟;视频目标延迟为期望音频延迟与视频最小播放延迟中的最大值,也是真实视频延迟的目标值。真实视频延迟指的是当前音视频对中的视频帧的接收时间与当前音视频对中的视频帧开始解码处理的时间之间的时间差。也就是说,真实视频延迟是将视频包放入缓存池中导致的延迟。
确定当前音视频对中视频对应的期望视频延迟包括:将上一音视频对中视频对应的接收时间与当前音视频对中视频对应的接收时间输入至卡尔曼滤波器,得到当前音视频对中视频对应的网络延迟;将网络延迟、当前音视频对中视频对应的解码延迟和预设渲染延迟相加确定为当前音视频对中视频对应的期望视频延迟。
网络延迟指的是通过网络传输数据而导致的延迟;解码延迟指的是由于对当前音视频对中的视频帧进行解码而产生的延迟;预设渲染延迟一般设置为10毫秒。
解码延迟的计算方法为:统计最近的预设解码次数的解码时间;依据解码时间的数据大小,将预设解码次数的解码时间进行排序,确定为解码时间序列;将解码时间序列中的预设解码分位数对应的解码时间,确定为当前音视频对中视频对应的解码延迟。
预设解码次数一般设置为10000次,预设解码分位数一般设置为95百分位数。示例性的,统计最近10000次对视频帧进行解码的解码时间,将10000个解码时间进行升序排列,取第95%个解码时间(也就是第9500个解码时间)作为当前音视频对中视频对应的解码延迟。
将上一音视频对中视频对应的接收时间与当前音视频对中视频对应的接收时间输入至卡尔曼滤波器,得到当前音视频对中视频对应的网络延迟包括:
通过以下公式计算当前音视频对中视频对应的网络延迟:
公式(1)中,T(i-1)为上一音视频对中视频对应的发送时间,T(i)为当前音视频对中视频对应的发送时间,t(i)为当前音视频对中视频对应的接收时间,t(i-1)为上一音视频对中视频对应的接收时间,d(i)为当前音视频对中视频对应的网络延迟,C(i)为当前音视频对中视频对应的为信道传输速率,C(i-1)为上一音视频对中视频对应的为信道传输速率,L(i)为每个音视频对中视频对应的数据量,w(i)表示当前音视频对中视频对应的高斯白噪声,m(i)表示网络排队延迟(如通过路由器传输数据的时候的排队延迟),v(i)表示卡尔曼滤波器估计到的网络噪声(如视频帧数据量的最大值和平均每个视频帧数据量的计算误差,时间同步等)。默认信道传输速率相等,则C(i)与C(i-1)相等。
在公式(1)中实际是利用卡尔曼滤波器来求得C(i)和m(i)。w(i)为是随机过程w的一个样本,假定随机过程w是高斯白噪声,w(i)是与C(i)、当前音视频对中视频对应的数据量和当前音视频对中视频对应的信道传输速率有关的函数。当传输信道过载发送数据时,w(i)的方差将变大,传输信道空载时w(i)将随之变小,其他情况w(i)为0。若t(i)-t(i-1)>T(i)-T(i-1)时,表示当前视频帧相对于上一视频帧的延迟变大了,若将网络排队延迟m(i)从w(i)中提取出来使得高斯白噪声的均值为0,则会得出w(i)等于m(i)与v(i)的和值。
也就是说,将上一音视频对中视频对应的接收时间、当前音视频对中视频对应的接收时间输入至卡尔曼滤波器,得到卡尔曼滤波器预估到的网络噪声v(i)、信道传输速率C(i)和网络排队延迟m(i),再通过公式(1)计算出当前音视频对中视频对应的网络延迟d(i)。
也就是说,当前音视频对中视频对应的视频期望接收时间为上一音视频对中视频对应的接收时间与当前音视频对中视频对应的网络延迟的和值。
视频期望接收时间是将接收到的视频包经过卡尔曼平滑算法之后得到视频包的期望接收时间。而视频包的期望接收时间就是视频包中的每个视频帧对应的视频期望接收时间。
每收到一个视频帧,会记录该视频帧的RTP时间戳和接收时间,计算该视频帧的RTP时间戳与第一个视频帧的RTP时间戳的差值,将差值确定为该视频帧对应的RTP时间戳差值;计算该视频帧的接收时间与第一个视频帧的接收时间的差值,将差值确定为该视频帧对应的接收时间差值。其中,RTP时间戳差值与接收时间差值为线性关系,即,将第一系数与接收时间差值相乘,将乘积与第二系数相加得到RTP时间戳差值。也就是说,针对每个视频帧,将该视频帧对应的RTP时间戳差值与接收时间差值输入至卡尔曼平滑算法,得到该视频帧对应的第一系数和第二系数;将该视频帧对应的RTP时间戳差值与第二系数作差,将差值与第一系数做比,将比值与第一个视频帧的接收时间相加确定为该视频帧对应的视频期望接收时间。
将当前视频帧对应的真实视频延迟和视频最小播放延迟中的最大值,确定为视频实际延迟,将当前视频帧的视频期望接收时间和视频实际延迟相加确定为视频帧渲染时刻,在视频渲染器中设置视频帧渲染时刻,以使视频渲染器在视频帧渲染时刻时渲染当前视频帧,以使当前视频帧播放。
基于同一申请构思,本申请实施例中还提供了与上述实施例提供的音视频数据的同步方法对应的音视频数据的同步装置,由于本申请实施例中的装置解决问题的原理与本申请上述实施例的音视频数据的同步方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,图4为本申请实施例提供的一种音视频数据的同步装置的功能模块。音视频数据的同步装置10包括:第一确定模块101,用于确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;第一计算模块102,用于计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟;第二计算模块103,用于根据音视频相对延迟,计算音频最小播放延迟;第二确定模块104,用于将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;同步模块105,用于将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。
基于同一申请构思,参见图5所示,为本申请实施例提供的一种电子设备的结构示意图,电子设备20包括:处理器201、存储器202和总线203,存储器202存储有处理器201可执行的机器可读指令,当电子设备20运行时,处理器201与存储器202之间通过总线203进行通信,机器可读指令被处理器201运行时执行如上述实施例中任一的音视频数据的同步方法的步骤。
具体地,机器可读指令被处理器201执行时可以执行如下处理:确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;计算当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到当前音视频对的音视频相对延迟;根据音视频相对延迟,计算音频最小播放延迟;将期望音频延迟与音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;将当前音视频对对应的真实音频延迟与音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步。
基于同一申请构思,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例提供的音视频数据的同步方法的步骤。
具体地,存储介质能够为通用的存储介质,如移动磁盘、硬盘等,存储介质上的计算机程序被运行时,能够执行上述音视频数据的同步方法,通过真实音频延迟与音频目标延迟的比较结果,控制音频数据进行减速播放、加速播放或者正常播放来实现音视频的同步,解决了现有技术中将视频数据同步到音频数据上导致推流端出现延迟的技术问题,达到降低直播或其他视频播放过程中出现延迟的概率的技术效果。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者技术方案的部分可以以软件产品的形式体现出来,计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种音视频数据的同步方法,其特征在于,所述音视频数据的同步方法包括:
确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;所述期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;所述真实音频延迟是当前音视频对中的音频帧的接收时间与当前音视频对中的音频帧开始解码处理的时间之间的时间差;
计算所述当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到所述当前音视频对的音视频相对延迟;
根据所述音视频相对延迟,计算音频最小播放延迟;
将所述期望音频延迟与所述音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;
将当前音视频对对应的所述真实音频延迟与所述音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步;
所述计算所述当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到所述当前音视频对的音视频相对延迟,包括:将上一音视频中视频对应的视频目标延迟与上一音视频中音频对应的音频目标延迟的差值,确定为当前音视频对对应的上一音视频对的目标延迟差值;将最近接收的视频包的接收时间与最近接收的音频包的接收时间的差值确定为第一差值;将最近接收的视频包中的网络时间协议NTP时间戳与最近接收的音频包中的NTP时间戳的差值确定为第二差值;将第二差值与第一差值的差值,确定为最近接收的音频包与最近接收的视频包的相对延迟;将目标延迟差值与相对延迟的和值,确定为当前音视频对的音视频相对延迟。
2.根据权利要求1所述的音视频数据的同步方法,其特征在于,所述确定当前音视频对中音频对应的期望音频延迟包括:
确定最近接收的预设数量的音频包;
针对最近接收的预设数量的音频包中的每个音频包,将该音频包与该音频包的前一个音频包的接收时间的差值确定为该音频包对应的接收时间间隔;
依据所述接收时间间隔的数据大小,将每个音频包对应的接收时间间隔进行排序,确定为接收时间间隔序列;
将所述接收时间间隔序列中的预设分位数对应的接收时间间隔确定为所述当前音视频对中音频对应的期望音频延迟。
3.根据权利要求1所述的音视频数据的同步方法,其特征在于,所述计算所述当前音视频对对应的上一音视频对的目标延迟差值与最近接收的音视频包的相对延迟的和值,得到所述当前音视频对的音视频相对延迟包括:
将所述上一音视频中视频对应的视频目标延迟与所述上一音视频中音频对应的音频目标延迟的差值,确定为当前音视频对对应的上一音视频对的目标延迟差值;
将最近接收的视频包的接收时间与最近接收的音频包的接收时间的差值确定为第一差值;
将最近接收的视频包中的网络时间协议NTP时间戳与最近接收的音频包中的NTP时间戳的差值确定为第二差值;
将所述第二差值与所述第一差值的差值,确定为最近接收的音频包与最近接收的视频包的相对延迟;
将所述目标延迟差值与所述相对延迟的和值,确定为当前音视频对的音视频相对延迟。
4.根据权利要求1所述的音视频数据的同步方法,其特征在于,所述根据所述音视频相对延迟,计算音频最小播放延迟包括:
将上一音视频对中对应的期望视频延迟与期望音频延迟作差,将差值与所述当前音视频对对应的音视频相对延迟求和,将和值确定为所述当前音视频对对应的总相对延迟;
根据所述总相对延迟,确定所述当前音视频对对应的音频播放目标延迟和视频播放目标延迟;
将上一音视频对对应的音频播放目标延迟、当前音视频对对应的音频播放目标延迟和预设基准值中的最大值,确定为当前音视频对对应的音频最小播放延迟;
将上一音视频对对应的视频播放目标延迟、当前音视频对对应的视频播放目标延迟和预设基准值中的最大值,确定为当前音视频对对应的视频最小播放延迟。
5.根据权利要求4所述的音视频数据的同步方法,其特征在于,所述根据所述总相对延迟,确定所述当前音视频对对应的音频播放目标延迟和视频播放目标延迟包括:
判断所述总相对延迟是否大于预设基准值;
若所述总相对延迟大于预设基准值,则判断上一音视频对对应的视频播放目标延迟是否大于预设基准值;
若上一音视频对对应的视频播放目标延迟大于预设基准值,则将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟;
若上一音视频对对应的视频播放目标延迟不大于预设基准值,则将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟;
若所述总相对延迟不大于预设基准值,则判断上一音视频对对应的音频播放目标延迟是否大于预设基准值;
若上一音视频对对应的音频播放目标延迟大于预设基准值,则将上一音视频对对应的音频播放目标延迟与当前音视频对对应的总相对延迟作差,将差值确定为当前音视频对对应的音频播放目标延迟,将预设基准值确定为当前音视频对对应的视频播放目标延迟;
若上一音视频对对应的音频播放目标延迟不大于预设基准值,则将上一音视频对对应的视频播放目标延迟与当前音视频对对应的总相对延迟相加,将和值确定为当前音视频对对应的视频播放目标延迟,将预设基准值确定为当前音视频对对应的音频播放目标延迟。
6.根据权利要求4所述的音视频数据的同步方法,其特征在于,所述方法还包括:
确定所述当前音视频对中视频对应的期望视频延迟;
将所述期望音频延迟与所述视频最小播放延迟中的最大值确定为当前音视频对对应的视频目标延迟。
7.根据权利要求6所述的音视频数据的同步方法,其特征在于,所述确定所述当前音视频对中视频对应的期望视频延迟包括:
将上一音视频对中视频对应的接收时间与当前音视频对中视频对应的接收时间输入至卡尔曼滤波器,得到当前音视频对中视频对应的网络延迟;
将所述网络延迟、当前音视频对中视频对应的解码延迟和预设渲染延迟相加确定为当前音视频对中视频对应的期望视频延迟。
8.根据权利要求1所述的音视频数据的同步方法,其特征在于,所述将当前音视频对对应的所述真实音频延迟与所述音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步包括:
判断当前音视频对对应的所述真实音频延迟是否小于所述音频目标延迟与预设分数的乘积;
若当前音视频对对应的所述真实音频延迟小于所述音频目标延迟与预设分数的乘积,则对音频数据进行减速播放;
若当前音视频对对应的所述真实音频延迟不小于所述音频目标延迟与预设分数的乘积,则判断当前音视频对对应的所述真实音频延迟是否大于所述音频目标延迟;
若当前音视频对对应的所述真实音频延迟大于所述音频目标延迟,则对音频数据进行加速播放。
9.一种音视频数据的同步装置,其特征在于,所述音视频数据的同步装置包括:
第一确定模块,用于确定当前音视频对中音频对应的期望音频延迟、真实音频延迟;所述期望音频延迟指的是相邻两个音频包的接收时间间隔的期望值;所述真实音频延迟是当前音视频对中的音频帧的接收时间与当前音视频对中的音频帧开始解码处理的时间之间的时间差;
第一计算模块,用于计算所述当前音视频对对应的上一音视频对的目标延迟的差值与最近接收的音视频包的相对延迟的和值,得到所述当前音视频对的音视频相对延迟;
第二计算模块,用于根据所述音视频相对延迟,计算音频最小播放延迟;
第二确定模块,用于将所述期望音频延迟与所述音频最小播放延迟中的最大值确定为当前音视频对对应的音频目标延迟;
同步模块,用于将当前音视频对对应的所述真实音频延迟与所述音频目标延迟进行比较,根据比较结果对音频数据进行加速播放或进行减速播放,以使音频数据和视频数据同步;
第一计算模块,还用于将上一音视频中视频对应的视频目标延迟与上一音视频中音频对应的音频目标延迟的差值,确定为当前音视频对对应的上一音视频对的目标延迟差值;将最近接收的视频包的接收时间与最近接收的音频包的接收时间的差值确定为第一差值;将最近接收的视频包中的网络时间协议NTP时间戳与最近接收的音频包中的NTP时间戳的差值确定为第二差值;将第二差值与第一差值的差值,确定为最近接收的音频包与最近接收的视频包的相对延迟;将目标延迟差值与相对延迟的和值,确定为当前音视频对的音视频相对延迟。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至8任一所述的音视频数据的同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210849939.XA CN115086732B (zh) | 2022-07-20 | 2022-07-20 | 一种音视频数据的同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210849939.XA CN115086732B (zh) | 2022-07-20 | 2022-07-20 | 一种音视频数据的同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115086732A CN115086732A (zh) | 2022-09-20 |
CN115086732B true CN115086732B (zh) | 2022-11-08 |
Family
ID=83258903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210849939.XA Active CN115086732B (zh) | 2022-07-20 | 2022-07-20 | 一种音视频数据的同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115086732B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113645177A (zh) * | 2020-05-11 | 2021-11-12 | 同响科技股份有限公司 | 可靠传输网络中维持实时音讯串流播放延迟的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及系统 |
CN111372138A (zh) * | 2018-12-26 | 2020-07-03 | 杭州登虹科技有限公司 | 一种播放器端的直播低延迟技术方案 |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9307334B2 (en) * | 2013-01-31 | 2016-04-05 | Google Inc. | Method for calculating audio latency in real-time audio processing system |
-
2022
- 2022-07-20 CN CN202210849939.XA patent/CN115086732B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105245976A (zh) * | 2015-09-30 | 2016-01-13 | 合一网络技术(北京)有限公司 | 音频和视频同步播放的方法及系统 |
CN111372138A (zh) * | 2018-12-26 | 2020-07-03 | 杭州登虹科技有限公司 | 一种播放器端的直播低延迟技术方案 |
CN111918093A (zh) * | 2020-08-13 | 2020-11-10 | 腾讯科技(深圳)有限公司 | 直播数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115086732A (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109963184B (zh) | 一种音视频网络播放的方法、装置以及电子设备 | |
CN109714634B (zh) | 一种直播数据流的解码同步方法、装置及设备 | |
CN106658133B (zh) | 一种音视频同步播放的方法及终端 | |
EP2300928B1 (en) | Client side stream switching | |
US7471337B2 (en) | Method of audio-video synchronization | |
US20070011343A1 (en) | Reducing startup latencies in IP-based A/V stream distribution | |
CN106612452B (zh) | 机顶盒音视频同步的方法及装置 | |
CN113225598B (zh) | 移动端音视频同步的方法、装置、设备及存储介质 | |
CN110139148B (zh) | 一种视频切换清晰度的方法及相关装置 | |
EP2306736B1 (en) | Method and apparatus for processing video and audio data received in decoding system | |
JP2010539739A (ja) | データ・フローを同期化する方法 | |
CN107566889B (zh) | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 | |
JP2006115477A (ja) | メディアストリームから得られるメディアの提示を行う方法およびシステム | |
CN109168083B (zh) | 一种流媒体实时播放方法及装置 | |
US8285886B1 (en) | Live media playback adaptive buffer control | |
CN115086732B (zh) | 一种音视频数据的同步方法及装置 | |
CN113300797B (zh) | 一种多设备自适应音频同步播放方法及处理终端 | |
CN113286184A (zh) | 一种在不同设备上分别播放音频与视频的唇音同步方法 | |
US20140362291A1 (en) | Method and apparatus for processing a video signal | |
CN112073751B (zh) | 视频播放方法、装置、设备及可读存储介质 | |
CN110519627B (zh) | 一种音频数据的同步方法和装置 | |
CN113596545A (zh) | 音轨切换方法、装置、媒体播放设备和计算机存储介质 | |
CN105791987B (zh) | 媒体数据播放的方法及终端 | |
WO2016008131A1 (en) | Techniques for separately playing audio and video data in local networks | |
CN108540855B (zh) | 一种适用于网络直播场景下的自适应低延时流媒体播放方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |