CN115942021B - 音视频流同步播放方法、装置、电子设备及存储介质 - Google Patents
音视频流同步播放方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115942021B CN115942021B CN202310142484.2A CN202310142484A CN115942021B CN 115942021 B CN115942021 B CN 115942021B CN 202310142484 A CN202310142484 A CN 202310142484A CN 115942021 B CN115942021 B CN 115942021B
- Authority
- CN
- China
- Prior art keywords
- audio
- terminal
- video
- time
- stream
- 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
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开关于一种音视频流同步播放方法、装置、电子设备及存储介质,所述音视频流同步播放方法包括:从第一服务端获取音频流;从所述第一服务端接收由第二终端确定的所述第二终端播放视频流的视频延迟时间,其中,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差;基于所述标准时间戳与所述第一终端的本地时间戳之差,确定所述第一终端播放所述音频流的音频延迟时间;基于所述视频延迟时间和所述音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流。根据本公开的音视频流同步播放方法、装置、电子设备及存储介质解决了在大屏幕中播放视频时可能难以获得同步的音频收听的问题,可以实现多终端之间的音画同步播放。
Description
技术领域
本公开涉及多媒体及通信技术领域,尤其涉及一种音视频流同步播放方法、装置、电子设备及存储介质。
背景技术
随着信息和通信技术的发展,信息传播的途径多种多样,视频的信息传播通常是依靠的视频画面与音频声音共同实现的。
在现有的音频和视频播放方案中,通常是在同一设备上播放视频画面和音频声音,然而,在一些场景下,当这种设备的音频不容易被获取到时,则可能影响视频信息的传达。例如,在汽车影院中,用户可以将车辆停至汽车影院附近,通过室外音响设备或车内调频收音机收听电影声音;又例如,在城市大屏中,用户可以在户外观看到城市大屏幕上播放的视频内容。
然而,在诸如汽车影院、城市大屏的这种大屏幕中播放视频时,可能难以获得较好的音频收听体验,例如,在汽车影院中,室外音响或车内调频收音机的音质较差,并且无法还原电影中原有的空间音频效果;而对于城市大屏而言,用户在嘈杂的城市环境中可能无法同步收听到视频的伴音。
发明内容
本公开提供一种音视频流同步播放方法、装置、电子设备及存储介质,以至少解决相关技术中在大屏幕中播放视频时可能难以获得同步的音频收听的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种音视频流同步播放方法,应用于第一终端,所述音视频流同步播放方法包括:从第一服务端获取音频流,其中,所述音频流与第二终端正在播放的视频流对应,所述第二终端从所述第一服务端接收所述视频流,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;从所述第一服务端接收由第二终端确定的所述第二终端播放视频流的视频延迟时间,其中,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差;基于所述标准时间戳与所述第一终端的本地时间戳之差,确定所述第一终端播放所述音频流的音频延迟时间;基于所述视频延迟时间和所述音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流。
根据本公开实施例的第二方面,提供一种音视频流同步播放方法,应用于第一服务端,所述音视频流同步播放方法包括:将音频流发送到第一终端,将视频流发送到第二终端,其中,所述视频流与所述音频流对应,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;将由第二终端确定的所述第二终端播放视频流的视频延迟时间发送到所述第一终端,以供所述第一终端基于所述视频延迟时间和所述第一终端播放所述音频流的音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差,所述音频延迟时间为所述标准时间戳与所述第一终端的本地时间戳之差。
根据本公开实施例的第三方面,提供一种音视频流同步播放装置,应用于第一终端,所述音视频流同步播放装置包括:获取单元,被配置为从第一服务端获取音频流,其中,所述音频流与第二终端正在播放的视频流对应,所述第二终端从所述第一服务端接收所述视频流,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;接收单元,被配置为从所述第一服务端接收由第二终端确定的所述第二终端播放视频流的视频延迟时间,其中,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差;确定单元,被配置为基于所述标准时间戳与所述第一终端的本地时间戳之差,确定所述第一终端播放所述音频流的音频延迟时间;播放单元,被配置为基于所述视频延迟时间和所述音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流。
根据本公开实施例的第四方面,提供一种音视频流同步播放装置,应用于第一服务端,所述音视频流同步播放装置包括:流发送单元,被配置为将音频流发送到第一终端,将视频流发送到第二终端,其中,所述视频流与所述音频流对应,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;时间发送单元,被配置为将由第二终端确定的所述第二终端播放视频流的视频延迟时间发送到所述第一终端,以供所述第一终端基于所述视频延迟时间和所述第一终端播放所述音频流的音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差,所述音频延迟时间为所述标准时间戳与所述第一终端的本地时间戳之差。
根据本公开实施例的第五方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器,其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据本公开的示例性实施例所述的音视频流同步播放方法。
根据本公开实施例的第六方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行根据本公开的示例性实施例所述的音视频流同步播放方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
第一终端可以从第一服务端接收到第二终端上的视频延迟时间,并且可以基于第一终端上的音频延迟时间和第二终端上的视频延迟时间,使其播放的音频流与第二终端上播放的视频流同步,实现多终端之间的音画同步播放方案,这使得即使在诸如大屏幕的第二终端中播放视频时也能够通过第一终端同步地收听到对应的音频内容。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据本公开的示例性实施例的多终端音频和视频播放场景的一示例的示意图。
图2是根据本公开的示例性实施例的音频播放方法的一示例的示意性流程图。
图3是根据本公开的示例性实施例的音频播放方法中获取音频播放地址的步骤的示意性流程图。
图4是根据本公开的示例性实施例的多终端音频和视频播放场景的另一示例的示意图。
图5是根据本公开的示例性实施例的音频播放方法中与视频流同步播放音频流的步骤的示意性流程图。
图6是根据本公开的示例性实施例的音视频流同步播放方法的一示例的示意性流程图。
图7是根据本公开的示例性实施例的第一终端的手动调整音画同步界面的示意图。
图8是根据本公开的示例性实施例的音频播放方法中终端播放音频流的步骤的示意性流程图。
图9是示出根据本公开的示例性实施例的在第三终端对ADM音频文件的解码流程的示意图。
图10是示出根据本公开的示例性实施例的在第一终端对ADM音频文件的解码流程的示意图。
图11是根据本公开的示例性实施例的音频播放方法的整体流程的示意图。
图12是根据本公开的示例性实施例的音频播放方法的另一示例的示意性流程图。
图13是根据本公开的示例性实施例的音视频流同步播放方法的另一示例的示意性流程图。
图14是根据本公开的示例性实施例的音频播放方法的再一示例的示意性流程图。
图15是根据本公开的示例性实施例的音频播放装置的一示例的示意性框图。
图16是根据本公开的示例性实施例的音频播放装置的另一示例的示意性框图。
图17是根据本公开的示例性实施例的音频播放装置的再一示例的示意性框图。
图18是根据本公开的示例性实施例的音视频流同步播放装置的一示例的示意性框图。
图19是根据本公开的示例性实施例的音视频流同步播放装置的另一示例的示意性框图。
图20是根据本公开的示例性实施例的电子设备的示意性框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。例如“包括A和B之中的至少一个”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如“执行步骤一和步骤二之中的至少一个”,即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。
鉴于前述问题,下面将参考附图提供根据本公开示例性实施例的音频播放方法、音频播放装置、音视频流同步播放方法、音视频流同步播放装置、电子设备和计算机可读存储介质。
需要说明的是,尽管本文中以汽车影院和城市大屏的播放场景为例进行了阐述,但是应理解的是,根据本公开的音频播放方法、音频播放装置、音视频流同步播放方法、音视频流同步播放装置的应用场景不限于此,其也可以应用于其他任意多终端分别播放视频流和音频流的应用场景中。
图1是根据本公开的示例性实施例的多终端音频和视频播放场景的示意图。
如图1所示,该音频和视频播放场景中可以包括第一终端110、第二终端120和第一服务端210,第一终端110例如可以是但不限于便携式终端,例如,智能手机、平板电脑、笔记本电脑、数字助理、可穿戴设备等,第一终端110可以包括诸如应用程序客户端等的运行于实体设备的用于播放音频的软体。第二终端120例如可以是但不限于城市大屏、汽车影院的大屏等,第二终端120可以包括诸如应用程序客户端等的运行于实体设备的用于播放视频的软体。
第一服务端210例如可以是但不限于用于推送视频流和/或音频流的服务器。这里,第一服务端210可以包括一个独立运行的服务器,也可以是分布式服务器,或者由多个服务器组成的服务器集群。
此外,在上述第一终端、第二终端和第一服务端中的任意两者之间可以例如通过网络300通过建立通信连接来保证数据的正常传输,该通信连接的方式可以为诸如蜂窝数据、WIFI、蓝牙等的任意方式,本公开对此不作特别限制。
根据本公开的示例性实施例,第一终端可以获取第二终端正在播放的视频流的视频身份标识,然后可以将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址。第一终端可以基于该音频播放地址,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流。
根据本公开的示例性实施例的第一方面,提供一种音频播放方法,该音频播放方法可以应用于第一终端,例如如图1所示的第一终端。
如图2所示,根据本公开的示例性实施例的音频播放方法可以包括以下步骤:
在步骤S210,可以获取第二终端正在播放的视频流的视频身份标识。
这里,第二终端例如可以是城市大屏或汽车影院中的大屏幕,但是其不限于此,其也可以是任意视频播放终端。第一终端的用户可以观看到第二终端上播放的视频内容。此外,第二终端播放的视频流可以是任意格式的,其可以包括画面和音频,也可以仅包括画面,而不包括音频,相应地,第二终端可以具有显示器和扬声器,或者也可以仅具有显示器,而不包括扬声器。视频流例如可以是但不限于电影、电视节目等。
视频身份标识可以是与视频流对应的唯一标识,其例如可以是但不限于二维码等。
作为示例,第一终端的用户可以使用第一终端上的客户端的扫码功能,扫描诸如汽车影院屏幕或城市大屏的第二终端上显示的二维码。
在步骤S220,可以将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址。
在该步骤中,第一终端可以将获取到的视频身份标识发送给第一服务端,该第一服务端例如可以是但不限于用于向第二终端推送视频流和/或向第一终端推送音频流的服务器。在一示例中,第一服务端可以包括用于推送视频流以及与视频流对应的音频流二者的单个服务器;在另一示例中,第一服务端可以包括第一子服务端和第二子服务端,第一子服务端可以用于推送与视频流对应的音频流,第二子服务端可以用于推送视频流。
这里,音频流例如可以是但不限于基于音频定义模型(Audio Definition Model,ADM)生成的空间音频直播流,对于这种空间音频直播流,可以是全景声音频文件,其可以获得更好的音频播放效果。然而,本公开不限于此,音频流也可以是其他格式。
此外,本公开所述的视频流和音频流可以包括但不限于实时直播的视频节目及对应的音频、实时播放预先录制的视频节目及对应的音频等,本公开对其不作特别限制。
第一服务端响应于接收到第一终端发送的视频身份标识,可以识别出在第二终端上播放的是哪个视频流,从而可以确定与视频流对应的音频流,并且可以将该音频流的音频播放地址返回给第一终端。在第一服务端包括第一子服务端和第二子服务端的情况下,第一终端可以将视频身份标识发送给第一子服务端,并且由第一子服务端将音频播放地址发送给第一终端。
作为示例,如图3所示,在该步骤S220中,第一终端可以通过以下方式获取音频播放地址:
在步骤S310,可以基于视频身份标识,生成用于获取第二终端的播放信息的第一播放请求,其中,第一播放请求包括视频身份标识和第一终端的位置信息。
这里,第一终端可以基于视频流的视频身份标识和第一终端的当前位置,生成第一播放请求。
在步骤S320,可以将第一播放请求发送至第一服务端,以供第一服务端基于第一播放请求确定距离第一终端最近的第二终端。
这里,由于第一播放请求中包括第一终端的位置信息,因此第一服务端可以基于第一播放请求,确定在第一终端附近的距离最近的第二终端。如此,可以在多个第二终端的场景下,识别出第一终端的用户具体观看的是哪一个第二终端,从而可以精确地推送音频流。
具体来说,在一些场景下,可以存在播放同一视频流的多个第二终端,这些第二终端的位置可以是固定的,并且第一服务端可以获取到或已知这些第二终端的位置。第二终端可以同步播放或非同步播放同一视频流,例如,在城市大屏的应用场景下,可能在城市中的多个大屏上播放同一节目。
在非同步播放的情况下,第一服务端在向第一终端推送音频流时需要获知第一终端的用户当前正在观看哪个第二终端,而由于视频身份标识与视频流对应,与第二终端无关,因此第一服务端除了需要通过视频身份标识来确定用户正在观看哪个视频流之外,还需要获知用户在观看哪个第二终端,以确定该第二终端的视频流播放进度,从而推送与其播放进度匹配的音频流。在同步播放的情况下,尽管第一服务端向多个第二终端推送的视频流的播放进度是相同的,但是由于网络延迟、通信故障等原因,可能导致不同第二终端接收到的视频流的时间不同,从而导致在播放进度上存在差异,因此第一服务端也需要获知用户正在观看的第二终端,以在考虑该第二终端的网络延迟、通信故障的情况下,精确地推送与其播放进度匹配的音频流。
这里,由于第一服务端难以直接确定用户正在观看的第二终端,因此根据本公开的示例性实施例,可以通过第一终端在发送视频身份标识的同时,将自身当前的位置信息一并发送出去,使得第一服务端根据第一终端的位置,确定用户最可能、最容易观看到的第二终端。如此,无需通过第一终端先获取到第二终端的位置,再将该位置发送给第一服务端,而是可以简化第一终端的操作,以较小的通信成本,使第一服务端确定出用户正在观看的第二终端。
此外,在第一服务端包括第一子服务端和第二子服务端的情况下,该第一播放请求可以发送到用于推送视频流的第一子服务端,该第一子服务端可以与第二终端建立通信,以向其推送视频流并接收来自第二终端的反馈信息,如此,第一终端可以直接向第一子服务端请求与第二终端相关的视频播放信息。
在步骤S330,可以从第一服务端接收视频播放信息。
第一服务器根据第一播放请求,可以确定相应的第二终端的视频播放信息,并且将其发送给第一终端。这里,视频播放信息可以包括第二终端的身份标识以及与视频流对应的音频流的身份标识,如此,第一终端在接收到视频播放信息后可以确定用户正在观看的第二终端具体是哪个,并且可以确定用户正在观看的视频内容的音频流是哪个。
此外,视频播放信息还可以包括但不限于第二终端的名称、第二终端播放视频流的视频时间延迟等。这里,第二终端播放视频流的视频时间延迟可以供第一终端或第三终端(将在下文中描述)用于与第二终端播放视频流同步地播放音频流,这将在下文中详细描述。
以汽车影院/城市大屏的播放场景为例,第一终端可以开启获取位置权限,从而可以携带第一终端的自身位置信息向第一服务端发起获取当前汽车影院/城市大屏信息的第一播放请求,第一服务端收到有效请求后,可以向第一终端返回汽车影院/城市大屏的视频播放信息,例如可以包括大屏名称、大屏ID、音画延迟时长、音频直播流ID等参数。
在步骤S340,可以基于视频播放信息,生成用于获取音频播放地址的第二播放请求。
这里,第二播放请求可以包括第二终端的身份标识和音频流的身份标识。
在步骤S350,可以将第二播放请求发送到第一服务端,并且从第一服务端获取音频播放地址。
具体来说,第一终端可以将第二播放请求发送到第一服务端,以向第一服务端请求获取用于播放音频流的音频播放地址。这里,音频流可以是空间音频直播流,该音频播放地址例如可以是空间音频直播流的播放地址。
此外,在第一服务端包括第一子服务端和第二子服务端的情况下,该第二播放请求可以发送到用于推送音频流的第二子服务端,该第二子服务端可以与第一终端建立通信,以向其推送音频流,如此,第一终端的第一播放请求和第二播放请求可以分别发送给不同的子服务端,从而可以在第一服务端实现视频播放与音频播放的分流管理,减轻第一服务端的压力,此外,通过这种方式,第一子服务端和第二子服务端可以由不同的多媒体提供者/管理者来管理,例如,视频流的提供者/管理者与音频流的提供者/管理者可以是不同的,从而允许实现多方合作,给出更灵活的视频流和音频流播放方案,也便于对视频或音频进行针对性的维护。然而,本公开的示例性实施例不限于此,第一服务端也可以是用于推送视频流和音频流二者并且用于接收第一播放请求和第二播放请求二者的一个服务端。
在步骤S230,可以基于音频播放地址,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流。
在该步骤中,第一终端可以基于音频播放地址,从第一服务端获取音频流,例如可以从第二子服务端获取音频流。如此,可以在第一终端上播放音频流,而在第二终端上播放视频流,从而实现异端收看视频和音频的方案,使得用户即使在诸如汽车影院或城市大屏的场景下也能够通过第一终端收听到大屏幕上播放的视频所对应的声音。
此外,如上所述,根据本公开的实施例的音频流可以是空间音频直播流,该空间音频直播流可以是基于音频定义模型(Audio Definition Model,ADM)生成的,国际电联无线电通信部门发布的ITU-R BS.2076-1 建议书中定义了音频定义模型,描述了音频元数据模型的结构,可以准确描述音频文件的格式和内容,确保所有***的兼容性。该模型规定了如何生成一种标准定义的全景声音频文件。这种空间音频直播流在播放和渲染方面的实现与普通音频不同,这使得根据本公开的示例性实施例播放的音频流可以获得更好的音频播放效果。然而,在现有音频播放技术中,缺少诸如车载终端的音响***渲染播放空间音频的设计方案,对此,音频流具体的播放和渲染方式将在下文中详细描述。
上面描述了第一终端根据第二终端播放的视频流的视频身份标识获取音频播放地址,以获取的与视频流对应的音频流,从而实现异端播放视频和音频的方案,对此,根据本公开的示例性实施例,在上述视频流和音频流播放场景中,还可以包括第三终端和第二服务端。
具体来说,如图4所示,该音频和视频播放场景中可以包括第一终端110、第二终端120、第三终端130、第一服务端210和第二服务端220,第一终端110、第二终端120和第一服务端210上面已经进行了详细描述,这里不再赘述。第三终端130例如可以是但不限于车载终端,其也可以包括诸如应用程序客户端等的运行于实体设备的用于播放音频的软体。第二服务端220例如可以是但不限于用于管理用户信息和用户播放信息的服务器。这里,第二服务端220可以包括一个独立运行的服务器,也可以是分布式服务器,或者由多个服务器组成的服务器集群。
在上述第一终端、第二终端、第三终端、第一服务端和第二服务端中的任意两者之间可以通过诸如网络310建立通信连接来保证数据的正常传输,该通信连接的方式可以为诸如蜂窝数据、WIFI、蓝牙等的任意方式,本公开对此不作特别限制。
在该示例中,第一终端还可以将音频播放信息发送到第二服务端,以供第二服务端将音频播放信息发送到第三终端,以允许第三终端基于音频播放信息,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流。
这里,音频播放信息可以包括上面描述的音频播放地址,或者包括音频播放地址和第一终端的音频播放进度二者。此外,音频播放信息还可以包括第一终端从第一服务端接收的上述视频播放信息,以供第三终端获取到在第二终端的播放情况。
具体来说,诸如便携式终端的第一终端可以将获取到的音频直播流地址、第一终端的音频播放进度(如果已开始播放)及用户账号等参数上传至第二服务端进行存储,在诸如车载终端的第三终端上的音频播放客户端使用同一用户账号登录后,第三终端可以从第二服务端获取该音频直播流及播放进度(如果已开始播放)。若第三终端通过以上机制获取音频直播流地址及播放进度后,第三终端可以与第一终端类似地继续与第二终端播放视频流同步地播放音频流。如此,用户可以选择通过第一终端或者通过第三终端播放音频流,方便用户在行走或驾驶车辆两种场景下的音频播放,为用户提供多端播放的多种选择。
根据上面所述的音频播放方案,第一终端可以将第二终端播放的视频流的视频身份标识发送到第一服务端,并且从第一服务端获取到与视频流对应的音频流的音频播放地址,从而可以在第一终端上播放该音频流,以使得用户能够在观看第二终端播放的视频流的同时,收听第一终端上播放的音频流,从而实现多终端之间的协同播放,使得即使在诸如大屏幕的第二终端中播放视频时也能够通过第一终端清楚地收听到对应的音频内容。
上面描述了根据本公开的示例性实施例的多终端播放音频流的方案,下面将具体描述与视频流同步播放音频流的具体过程以及终端播放和渲染音频流的具体方案。需要说明的是,以下描述的同步播放方案以及音频流播放和渲染方案既可以应用于第一终端,也可以应用于第三终端。
在一示例中,音频流中包括音频数据以及与视频流共用的标准时间戳,如图5所示,与第二终端播放视频流同步地播放音频流的步骤可以包括以下步骤:
在步骤S510,可以对音频流进行解码,得到标准时间戳。
这里,标准时间戳是在生成音频流和视频流时添加的时间戳,音频流和视频流可以共用该标准时间戳,从而在按照标准时间戳播放时,可以确保视频画面和音频声音的音画同步。
具体来说,在该步骤中,在第一终端或第三终端获取到音频流的情况下,第一终端或第三终端可以对音频流进行解封装处理,产出数据对象,该数据对象可以包含当前数据帧的标准时间戳和音频数据,该音频数据是待解码的压缩数据。可以选择对应的音频解码器对压缩数据进行解码处理,经过解码器的处理产生脉冲调制编码(Pulse CodeModulation,PCM)数据,产生的PCM数据连同之前解析出来的标准时间戳一起进入缓存队列。
在步骤S520,可以对标准时间戳与本地时间戳进行差值处理,得到音频延迟时间。
在该步骤中,第一终端或第三终端可以进行时间戳对齐。具体来说,第一终端或第三终端的音频解码器可以将获取到的诸如ADM音频流的音频流进行解码,解码器不断地从缓存队列中获取到PCM数据及标准时间戳,并且可以将解码获取的标准时间戳与本地时间戳做差值处理,得出音频延迟时间△T,即,△T=音频解码的标准时间戳-本地时间戳。
在步骤S530,可以基于音频延迟时间,与第二终端播放视频流同步地播放音频流。
在该步骤中,可以响应于音频延迟时间大于0,在使音频流等待与音频延迟时间等长的时间后,播放音频流;可以响应于音频延迟时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
具体来说,若△T>0,则可以使得第一终端或第三终端的音频解码工作线程休息与△T等长的时间,在此情况下,可以认为第二终端播放的视频流。若△T<0,则可以从已经解码的缓存队列中丢弃掉与△T等长时间的音频数据。
在另一示例中,可以根据如图6所示的音视频流同步播放方法,实现与视频流同步播放音频流。这里,需要说明的是,如图6所示的音视频流同步播放方法可以用于在图2所示的音频播放方法中实现与视频流同步播放音频流,但是其不限于此,其也可以用于其他视频流与音频流同步播放的场景或者可以单独实施。
图6所示的音视频流同步播放方法可以应用于上述第一终端,具体来说,该方法可以包括以下步骤:
在步骤S610,可以从第一服务端获取音频流,其中,音频流与第二终端正在播放的视频流对应,第二终端从第一服务端接收视频流,音频流包括音频数据和标准时间戳,视频流包括视频数据和标准时间戳。
作为示例,第一终端可以通过如图2所示的方法从第一服务端获取音频流。
具体来说,如图2所示,第一终端可以通过以下方式从第一服务端获取音频流:步骤S210、获取第二终端正在播放的视频流的视频身份标识;步骤S220、将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址;步骤S230、基于音频播放地址,从第一服务端获取音频流。
这里,每个步骤的具体实施方式已在前文中详细描述,在此可以与前文中描述的方式相同地实现,故不再赘述。然而,本示例性实施例不限于此,第一终端也可以通过其他方式获取到待与视频流同步播放的音频流。
在步骤S620,可以从第一服务端接收由第二终端确定的第二终端播放视频流的视频延迟时间,其中,视频延迟时间为标准时间戳与第二终端的本地时间戳之差。
具体来说,第一服务端的音视频编码器在编码时可以将标准时间戳分别加入视频流与音频流,然后进行视频推流与音频推流,视频流推流至诸如城市大屏或汽车影院播放器的第二终端,音频流通过上述获取身份标识的方式推流至第一终端。对此过程,在第二终端的视频解码器将视频流进行解码时,第二终端获取到标准时间戳,并且可以将其与第二终端的本地时间戳做差值处理,以得到视频延迟时间delayTime1。第一服务端可以通过定时器按照预定的第一定时任务不断地从第二终端获取该视频延迟时间delayTime1。
与此同时,第一终端也可以通过定时器按照预定的第二定时任务,每隔一个同步处理周期,从第一服务端获取上述视频延迟时间delayTime1。这里,第一定时任务的时间间隔可以与第二定时任务的时间间隔相同,以能够准确地实现从第二终端到第一服务端、到第一终端的视频延迟时间的传送,并且使得第一终端与第二终端的解码同步。
在步骤S630,可以基于标准时间戳与第一终端的本地时间戳之差,确定第一终端播放音频流的音频延迟时间。
在该步骤中,第一终端的音频解码器可以对音频流进行解码,并且不断地从解码出的音频帧缓存序列中获取PCM数据及标准时间戳,从而可以将获取到的标准时间戳与本地时间戳做差值处理,以得到音频延迟时间delayTime2,即delayTime2=音频解码时间戳-本地时间戳。
在步骤S640,可以基于视频延迟时间和音频延迟时间,与第二终端播放视频流同步地播放音频流。
在该步骤中,第一终端可以对音频延迟时间delayTime2与视频延迟时间delayTime1进行差值处理,得到音画异步时间△T,即△T= delayTime2-delayTime1,该音画异步时间△T为需要调整的时间。
具体来说,响应于音画异步时间大于0(即△T>0),可以在等待与音频延迟时间等长的时间后,播放音频流,例如可以使音频解码工作线程休息与△T等长的时间;响应于音画异步时间小于0(即△T<0),可以从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流,例如可以从已缓存的音频帧中丢弃掉与△T等长时间的音频数据。如此,可以实现音频流与视频流的同步播放,使得用户可以在观看第二终端播放的视频流时可以同步从第一终端收听到对应的音频流。
此外,根据本公开的示例性实施例,在第一终端从第一服务端接收视频延迟时间的过程中,可以对第二定时任务的时间间隔进行实时调整。
具体来说,在对音频延迟时间与视频延迟时间进行差值处理得到音画异步时间的情况下,可以响应于音画异步时间满足第一预设条件,以第一时间间隔,从第一服务端接收视频延迟时间;响应于音画异步时间满足第二预设条件,以第二时间间隔,从第一服务端接收视频延迟时间;响应于音画异步时间满足第三预设条件,以第三时间间隔,从第一服务端接收视频延迟时间。
这里,第一预设条件可以为:音画异步时间处于第一预设区间,或者,在预定时长内,音画异步时间处于第一预设区间之外的次数低于预定次数;第二预设条件可以为:连续两次得到的音画异步时间大于或等于第一预设区间的上限值,或者小于或等于第一预设区间的下限值;第三预设条件可以为:连续两次得到的音画异步时间大于或等于第一阈值,或者小于或等于第二阈值,第一阈值大于第一预设区间的上限值,第二阈值小于第一预设区间的下限值。
这里,第一时间间隔可以大于第二时间间隔,第二时间间隔可以大于第三时间间隔。
具体来说,在数据传输过程中,由于网络抖动等原因,可能导致音画异步时间△T的绝对值大小不稳定,若某次同步处理时发现音画异步时间△T绝对值较大,则表明在上次同步处理之后在本次同步处理之前,第一终端的音视频不同步感受是较为明显的。
对此,第一预设区间可以表示音频与视频不同步不易被人发觉的区间,例如可以为-100ms<△T<25ms;而在音画异步时间△T大于或等于第一预设区间的上限值、或者小于或等于第一预设区间的下限值的情况下,例如△T≥25ms或△T≤-100ms,音视频不同步容易被察觉;而在音画异步时间△T大于或等于第一阈值、或者小于或等于第二阈值的情况下,例如△T≥90ms或△T≤-185ms,音视频不同步会感受明显、甚至无法接受。
为了解决上述问题,根据本公开的示例性实施例可以加入自适应调整同步处理周期的机制,调整从服务端获取视频延迟时间delayTime1的时间间隔。
例如,在正常情况下,-100ms<△T<25ms,或偶发一次△T≥25ms或△T≤-100ms,该周期均默认为20s,即第一终端每隔20s从服务端获取视频延迟时间delayTime1。若连续两次以上的同步处理△T≥25ms或△T≤-100ms,则该周期自适应调整为10s,即第一终端每隔10s从服务端获取视频延迟时间delayTime1。若连续两次以上的同步处理△T≥90ms或△T≤-185ms,则该周期自适应调整为5s,即第一终端每隔5s从服务端获取视频延迟时间delayTime1。
根据上述同步播放方案,第一终端可以从第一服务端接收到第二终端上的视频延迟时间,并且可以基于第一终端上的音频延迟时间和第二终端上的视频延迟时间,使其播放的音频流与第二终端上播放的视频流同步,实现多终端之间的音画同步播放方案,这使得即使在诸如大屏幕的第二终端中播放视频时也能够通过第一终端同步地收听到对应的音频内容,解决了在大屏幕中播放视频时可能难以获得同步的音频收听的问题。
此外,根据本公开的示例性实施例,还可以在***自动同步机制基础上,加入了第一终端手动补偿机制。
具体来说,响应于接收到用户输入的音频等待指令,可以在等待与音频等待指令中的等待时间对应的时长后,播放音频流;响应于接收到用户输入的音频丢弃指令,可以从音频流中丢弃与音频丢弃指令中的丢弃时间对应时长的音频数据,播放丢弃音频数据后的音频流。
这里,音频等待指令可以是指示本地音频播放等待指定的等待时间的指令,音频丢弃指令可以是指示从本地音频播放中丢弃指定的丢弃时间的音频数据的指令。
例如,如图7所示,音频等待指令和音频丢弃指令可以分别通过第一终端的交互界面中的按键控件来输入到第一终端。
具体来说,如图7所示,若用户主观感受视频滞后于音频,则可点击“+”按键,手动调整音频播放进度,调整方式为将本地音频播放进行等待处理,调整的数值即为本地音频播放需等待的时间;若用户主观感受音频滞后于视频,则可点击“-”按键,手动调整音频播放进度,调整方式为丢弃一定时长即将播放的音频解码数据,调整的数值即为本地音频播放需丢弃的音频数据时长。
作为示例,上述等待时间和丢弃时间可以是固定的,且二者相同的,例如在如图7所示的示例中,调整的时间的颗粒度为50ms,即每点击一次“+”按键或“-”按键可等待50ms或者丢弃50ms。
上面描述了实现音视频流同步播放的若干示例,下面将描述音频流播放和渲染的具体方案。
作为示例,诸如城市大屏或汽车影院的第二终端的伴音录制可以为10声道的ADM标准的空间音频文件,每个声道均包含使用格式元数据描述的声道位置信息。空间音频文件存储于第一服务端供第一终端获取。基于这样的空间音频文件,可以采用三维声播放的方案来播放音频。
具体来说,如图8所示,第一终端或第三终端可以通过以下方式播放音频流:
在步骤S810,可以确定用于播放音频流的扬声器的声道。
例如,第一终端或第三终端的音频渲染器可以首先访问当前终端的扬声器驱动,以获取扬声器类型,不同的扬声器类型可以具有不同的声道,例如,第一终端为立体声的扬声器类型,诸如车载客户端的第二终端为5.1声道或7.1声道的扬声器类型。
在步骤S820,可以对从音频流解析出的音频数据进行声道方位的渲染,得到音频数据的声道元数据。
在步骤S830,可以基于声道元数据,确定音频数据中的各声道音频的空间位置信息。
在步骤S820和S830中,经过上述同步播放方式实现时间戳校准的音频帧可以进入到渲染器进行声道方位的渲染,可以通过对各声道格式元数据的解析,恢复出各声道原始空间位置信息。
在步骤S840,可以根据扬声器的声道和空间位置信息,对声道音频进行声道转化,得到转化后的声道音频。
在步骤S850,可以基于转化后的声道音频,生成与扬声器的声道适配的音频文件。
在步骤S840和S850中,可以通过声道转化算法,将含有空间位置信息的诸如原始10声道的声道转化到当前设备扬声器阵列的各声道,以完成输入输出声道转化,从而可以生成适配设备扬声器类型的可以播放的PCM文件。
在步骤S860,可以通过扬声器的声道播放音频文件。
在该步骤中,可以将PCM文件数据写入终端的声卡缓存中,以进行音频播放。
在音频流为基于ADM生成的空间音频流的情况下,基于本公开的示例性实施例的播放方法来播放可以获得较好的播放效果和收听体验。下面将参照图9和图10详细描述第三终端和第一终端对ADM音频文件的解码的具体流程的示例。
图9是示出根据本公开的示例性实施例的在第三终端对ADM音频文件的解码流程的示意图。
参照图9,第三终端内的微处理器(MCU)中的ADM渲染程序首先读取ADM音频文件,然后对ADM音频文件进行解析和解码,再根据ADM音频文件描述实现每个音频对象(即,音频数据)的数字音频信号还原和混合,并编码成数字音频流(例如,杜比AC3(Dolby AC3)数字音频流)。然后通过集成电路内置音频总线(I2S, Inter-IC Sound)接口输出到数字声卡(例如,DAC声卡),并通过数字声卡的数字音频传输接口(例如,S/PDIF(Sony/PhilipsDigital Interface Format)接口)将编码后的音频信号(例如,杜比AC3音频信号)发送到解码器(例如,杜比(Dolby)解码器),由解码器解码并通过输出接口(例如,RAC接口)输出到外接立体声音箱(例如,但不限于,5.1声道(包括FL声道、FR声道、CEN声道、SL声道、SR声道))。
这里,对于ADM音频流而言,通过诸如车载终端的第三终端对其进行解码和渲染,与现有的车载播放方式相比,能实现更好的渲染和播放效果,通过车载播放立体声音频、配合大屏的视频画面,实现异端播放的全景声视频观看。
图10是示出根据本公开的示例性实施例的第一终端对ADM音频文件的解码流程的示意图。
参照图10,第一终端内的ADM渲染程序首先读取ADM音频文件,然后对ADM音频文件进行解析和解码,再根据ADM音频文件描述实现每个音频对象的数字音频信号还原和混合,并编码成数字音频流(例如,WAV格式数字音频流)。然后输出至移动客户端内的虚拟声卡,虚拟声卡将数字音频流解码后输出到移动客户端设备的扬声器或耳机(例如,但不限于,包括左声道(L)和右声道(R))。这里,虚拟声卡例如可以是安卓(Android)声卡等。
根据本公开的示例性实施例,客户端还可从服务器接收每个音频数据的虚拟场景位置信息,并基于接收到的每个音频数据的虚拟场景位置信息,生成交互界面,其中,在交互界面中在每个音频数据对应的虚拟场景位置处显示该音频数据对应的图标。
图11是根据本公开的示例性实施例的音频播放方法的整体流程的示意图。
如图11所示,对于第二终端,其可以播放视频流,该视频流例如可以是但不限于服务端推送的,在播放视频流的过程中,可以在视频画面中展示用于获取与视频流对应的音频流的视频身份标识,例如可以展示视频流中所播放的节目的二维码。
对于第一终端,可以通过诸如扫描二维码的方式,获取视频身份标识,并且可以基于该视频身份标识以及第一终端位置信息,向服务端(例如第一服务端)请求获取第二终端的视频播放信息,例如大屏的信息。第一终端可以从服务端接收第二终端的视频播放信息,解析出第二终端的相关信息,这里,视频播放信息例如可以包括但不限于第二终端的ID、音画延长时间、音频流ID等。
第一终端可以基于视频播放信息,向服务端发起获取空间音频流的请求,并且从服务端接收音频流播放地址。第一终端可以基于该音频流播放地址获取音频流,并且可以对音频流进行解析,并基于上述两个示例中描述的同步播放方法,对音频流和视频流的时间戳进行对齐,然后可以基于上述渲染和播放方案播放音频流。
此外,第一终端还可以将获取到的音频流播放地址同步到服务端(例如第二服务端),并且还可以将第一终端的播放进度也一并同步到服务端。
对于服务端,服务端可以包括但不限于上述第一服务端和第二服务端。服务端可以基于来自第一终端的对视频播放信息的获取请求,将视频播放信息发送给第一终端。
此外,服务端还可以基于第一终端的对音频流的获取请求,将音频流播放地址发送给第一终端。此外,服务端(例如第二服务端)还可以存储来自第一终端的用户播放记录。如此,可以响应于第三终端发送的获取用户播放记录(例如音频播放进度)的请求,将用户播放记录发送到第三终端。
对于第三终端,第三终端可以与第一终端登录同一用户账号,第三终端可以将第三终端上登录的用户的账号信息发送到服务端,并且向服务端发起获取该用户账号的播放记录的请求,以从服务端获取到音频流播放地址和音频播放进度,从而可以基于该音频流播放地址获取音频流,并且可以从该音频播放进度的音频帧开始,对音频流进行解析,并基于上述两个示例中描述的同步播放方法,对音频流和视频流的时间戳进行对齐,然后可以基于上述渲染和播放方案播放音频流。
上述第一终端可以是但不限于移动客户端,第二终端可以是但不限于汽车影院屏幕/城市大屏,第三终端可以是但不限于车载客户端,服务端可以是但不限于服务器。
根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法,可以解决观看诸如城市大屏的视频时无法收听伴音的问题,可通过手机或车载收听空间音频音质的大屏伴音;还可以解决在观看汽车影院时,汽车外部电影伴音音质不高的问题,可通过手机或车载收听空间音频音质的电影伴音。
根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法可以通过诸如手机等终端扫码的方式,允许移动客户端拉取大屏播放的电影ADM格式全景声直播流,并且通过对ADM文件元数据渲染及时间戳对齐,实现电影空间音频可在移动客户端播放。
此外,根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法,通过手机/车载客户端同账号内容播放同步机制,可在车载客户端对电影/城市大屏全景声伴音实现渲染播放。还可以利用车载多声道扬声器阵列(例如5.1声道或7.1声道)播放电影原始全景声伴音,大幅提升汽车影院/城市大屏观影体验效果。
此外,根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法,可以实现ADM标准下的空间音频在车载音响***中的渲染播放应用,丰富了ADM空间音频与车载多声道音响***相结合的应用场景。
此外,根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法,可以在音视频节目的音频与视频分别在不同端解码播放时,难以实现较好的音画同步效果。
此外,根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法,可以在音视频节目的音频与视频分别在不同端解码播放时,通过服务端与客户端自动及手动的一些列时间戳对齐机制,实现较好的音画同步效果。
此外,根据本公开的示例性实施例的音频播放方法和音视频流同步播放方法,可以利用诸如手机等终端通过扫码获取的音频流在手机与车机双端进行播放时,与大屏/影院的流媒体播放进行时间戳对齐,实现音画同步技术。
图12是根据本公开的示例性实施例的音频播放方法的另一示例的示意性流程图。该音频播放方法可以应用于第一服务端,如图12所示,该音频播放方法可以包括:
在步骤S1210,可以从第一终端接收由第一终端获取的第二终端正在播放的视频流的视频身份标识。
在步骤S1220,可以将与视频身份标识对应的音频流的音频播放地址发送到第一终端。
在步骤S1230,可以基于音频播放地址,将音频流发送到第一终端,以供第一终端与第二终端播放视频流同步地播放音频流。
作为示例,步骤S1220可以包括以下步骤:
从第一终端接收由第一终端基于视频身份标识生成的第一播放请求,其中,第一播放请求用于获取第二终端的播放信息,第一播放请求包括视频身份标识和第一终端的位置信息;
基于第一播放请求,确定距离第一终端最近的第二终端;
将视频播放信息发送到第一终端,其中,视频播放信息包括第二终端的身份标识和视频流的播放参数;
从第一终端接收由第一终端基于视频播放信息生成的第二播放请求,其中,第二播放请求用于获取音频播放地址,第二播放请求包括第二终端的身份标识和音频流的身份标识;
基于第二播放请求,将音频播放地址发送到第一终端。
作为示例,音频播放方法还可以包括:从第三终端接收由第二服务端发送到第三终端的音频播放信息;基于音频播放信息,将音频流发送到第三终端,以供第三终端与第二终端播放视频流同步地播放音频流。这里,音频播放信息由第一终端发送到第二服务端,音频播放信息包括音频播放地址,或者包括音频播放地址和第一终端的音频播放进度。
作为示例,音频流中可以包括音频数据以及与视频流共用的标准时间戳。
在该示例中,第一终端或第三终端与第二终端播放视频流同步地播放音频流的步骤可以包括:对音频流进行解码,得到标准时间戳;对标准时间戳与本地时间戳进行差值处理,得到音频延迟时间;基于音频延迟时间,与第二终端播放视频流同步地播放音频流。
作为示例,基于音频延迟时间,与第二终端播放视频流同步地播放音频流的步骤可以包括:响应于音频延迟时间大于0,在使音频流等待与音频延迟时间等长的时间后,播放音频流;响应于音频延迟时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,第一终端或第三终端通过以下方式播放音频流:确定用于播放音频流的扬声器的声道;对从音频流解析出的音频数据进行声道方位的渲染,得到音频数据的声道元数据;基于声道元数据,确定音频数据中的各声道音频的空间位置信息;根据扬声器的声道和空间位置信息,对声道音频进行声道转化,得到转化后的声道音频;基于转化后的声道音频,生成与扬声器的声道适配的音频文件;通过扬声器的声道播放音频文件。
在该示例性实施例中,第一终端、第二终端、第三终端、第一服务端以及第二服务端器等的配置以及可执行的功能与上面参照图1至图11所述的实施例相同,故在此不再赘述。
图13是根据本公开的示例性实施例的音视频流同步播放方法的另一示例的示意性流程图。该音视频流同步播放方法可以应用于第一服务端,该音视频流同步播放方法例如可以应用于但不限于上面参照图12所述的音频播放方法中的与视频流同步播放音频流的步骤中。
如图13所示,音视频流同步播放方法可以包括以下步骤:
在步骤S1310,可以将音频流发送到第一终端,将视频流发送到第二终端,其中,视频流与音频流对应,音频流包括音频数据和标准时间戳,视频流包括视频数据和标准时间戳。
在步骤S1320,可以将由第二终端确定的第二终端播放视频流的视频延迟时间发送到第一终端,以供第一终端基于视频延迟时间和第一终端播放音频流的音频延迟时间,与第二终端播放视频流同步地播放音频流,视频延迟时间为标准时间戳与第二终端的本地时间戳之差,音频延迟时间为标准时间戳与第一终端的本地时间戳之差。
作为示例,第一终端基于视频延迟时间和第一终端播放音频流的音频延迟时间,与第二终端播放视频流同步地播放音频流的步骤可以包括:对音频延迟时间与视频延迟时间进行差值处理,得到音画异步时间;响应于音画异步时间大于0,在等待与音频延迟时间等长的时间后,播放音频流,响应于音画异步时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,该音视频流同步播放方法还可以包括:对音频延迟时间与视频延迟时间进行差值处理,得到音画异步时间;响应于音画异步时间满足第一预设条件,以第一时间间隔,将视频延迟时间发送到第一终端;响应于音画异步时间满足第二预设条件,以第二时间间隔,将视频延迟时间发送到第一终端;响应于音画异步时间满足第三预设条件,以第三时间间隔,将视频延迟时间发送到第一终端。
这里,第一预设条件为:音画异步时间处于第一预设区间,或者,在预定时长内,音画异步时间处于第一预设区间之外的次数低于预定次数。第二预设条件为:连续两次得到的音画异步时间大于或等于第一预设区间的上限值,或者小于或等于第一预设区间的下限值。第三预设条件为:连续两次得到的音画异步时间大于或等于第一阈值,或者小于或等于第二阈值,第一阈值大于第一预设区间的上限值,第二阈值小于第一预设区间的下限值。
这里,第一时间间隔大于第二时间间隔,第二时间间隔大于第三时间间隔。
作为示例,该音视频流同步播放方法还可以包括:第一终端响应于接收到用户输入的音频等待指令,在等待与音频等待指令中的等待时间对应的时长后,播放音频流;第一终端响应于接收到用户输入的音频丢弃指令,从音频流中丢弃与音频丢弃指令中的丢弃时间对应时长的音频数据,播放丢弃音频数据后的音频流。
作为示例,该音视频流同步播放方法还可以包括:从第一终端接收由第一终端获取的第二终端正在播放的视频流的视频身份标识;将与视频身份标识对应的音频流的音频播放地址发送到第一终端;基于音频播放地址,执行将音频流发送到第一终端的步骤。
在该示例性实施例中,第一终端、第二终端、第三终端、第一服务端以及第二服务端器等的配置以及可执行的功能与上面参照图1至图11所述的实施例相同,故在此不再赘述。
图14是根据本公开的示例性实施例的音频播放方法的再一示例的示意性流程图。该音频播放方法可以应用于第三终端。
如图14所示,该音频播放方法可以包括以下步骤:
在步骤S1410,可以从第二服务端接收音频播放信息,其中,音频播放信息由第一终端发送到第二服务端,音频播放信息包括音频播放地址,或者包括音频播放地址和第一终端的音频播放进度,音频播放地址由第一终端获取,第一终端获取第二终端正在播放的视频流的视频身份标识,将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址。
在步骤S1420,可以基于音频播放信息,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流。
作为示例,第一终端将视频身份标识发送到第一服务端,并且从第一服务端获取与视频流对应的音频流的音频播放地址的步骤包括:
基于视频身份标识,生成用于获取第二终端的播放信息的第一播放请求,其中,第一播放请求包括视频身份标识和第一终端的位置信息;
将第一播放请求发送至第一服务端,以供第一服务端基于第一播放请求确定距离第一终端最近的第二终端;
从第一服务端接收视频播放信息,其中,视频播放信息包括第二终端的身份标识以及与视频流对应的音频流的身份标识;
基于视频播放信息,生成用于获取音频播放地址的第二播放请求,其中,第二播放请求包括第二终端的身份标识和音频流的身份标识;
将第二播放请求发送到第一服务端,并且从第一服务端获取音频播放地址。
作为示例,音频流中包括音频数据以及与视频流共用的标准时间戳。在该示例中,第一终端或第三终端与第二终端播放视频流同步地播放音频流的步骤可以包括:对音频流进行解码,得到标准时间戳;对标准时间戳与本地时间戳进行差值处理,得到音频延迟时间;基于音频延迟时间,与第二终端播放视频流同步地播放音频流。
作为示例,基于音频延迟时间,与第二终端播放视频流同步地播放音频流的步骤可以包括:响应于音频延迟时间大于0,在等待与音频延迟时间等长的时间后,播放音频流;响应于音频延迟时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,第一终端或第三终端通过以下方式播放音频流:确定用于播放音频流的扬声器的声道;对从音频流解析出的音频数据进行声道方位的渲染,得到音频数据的声道元数据;基于声道元数据,确定音频数据中的各声道音频的空间位置信息;根据扬声器的声道和空间位置信息,对声道音频进行声道转化,得到转化后的声道音频;基于转化后的声道音频,生成与扬声器的声道适配的音频文件;通过扬声器的声道播放音频文件。
在该示例性实施例中,第一终端、第二终端、第三终端、第一服务端以及第二服务端器等的配置以及可执行的功能与上面参照图1至图11所述的实施例相同,故在此不再赘述。
图15是根据本公开的示例性实施例的音频播放装置的一示例的示意性框图。参照图15,该音频播放装置应用于第一终端,其包括:
标识获取单元1510被配置为获取第二终端正在播放的视频流的视频身份标识。
标识发送单元1520被配置为将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址。
音频流获取单元1530被配置为基于音频播放地址,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流。
作为示例,标识发送单元1520还被配置为:基于视频身份标识,生成用于获取第二终端的播放信息的第一播放请求,其中,第一播放请求包括视频身份标识和第一终端的位置信息;将第一播放请求发送至第一服务端,以供第一服务端基于第一播放请求确定距离第一终端最近的第二终端;从第一服务端接收视频播放信息,其中,视频播放信息包括第二终端的身份标识以及与视频流对应的音频流的身份标识;基于视频播放信息,生成用于获取音频播放地址的第二播放请求,其中,第二播放请求包括第二终端的身份标识和音频流的身份标识;将第二播放请求发送到第一服务端,并且从第一服务端获取音频播放地址。
作为示例,音频播放方法还包括:
将音频播放信息发送到第二服务端,以供第二服务端将音频播放信息发送到第三终端,以允许第三终端基于音频播放信息,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流,
其中,音频播放信息包括音频播放地址,或者包括音频播放地址和第一终端的音频播放进度。
作为示例,音频流中包括音频数据以及与视频流共用的标准时间戳,其中,第一终端或第三终端与第二终端播放视频流同步地播放音频流,包括:对音频流进行解码,得到标准时间戳;对标准时间戳与本地时间戳进行差值处理,得到音频延迟时间;基于音频延迟时间,与第二终端播放视频流同步地播放音频流。
作为示例,基于音频延迟时间,与第二终端播放视频流同步地播放音频流,包括:响应于音频延迟时间大于0,在使音频流等待与音频延迟时间等长的时间后,播放音频流;响应于音频延迟时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,第一终端或第三终端通过以下方式播放音频流:确定用于播放音频流的扬声器的声道;对从音频流解析出的音频数据进行声道方位的渲染,得到音频数据的声道元数据;基于声道元数据,确定音频数据中的各声道音频的空间位置信息;根据扬声器的声道和空间位置信息,对声道音频进行声道转化,得到转化后的声道音频;基于转化后的声道音频,生成与扬声器的声道适配的音频文件;通过扬声器的声道播放音频文件。
图16是根据本公开的示例性实施例的音频播放装置的另一示例的示意性框图。参照图16,该音频播放装置应用于第一服务端,其包括:
标识接收单元1610被配置为从第一终端接收由第一终端获取的第二终端正在播放的视频流的视频身份标识。
地址发送单元1620被配置为将与视频身份标识对应的音频流的音频播放地址发送到第一终端。
音频流发送单元1630被配置为基于音频播放地址,将音频流发送到第一终端,以供第一终端与第二终端播放视频流同步地播放音频流。
作为示例,地址发送单元1620还被配置为:从第一终端接收由第一终端基于视频身份标识生成的第一播放请求,其中,第一播放请求用于获取第二终端的播放信息,第一播放请求包括视频身份标识和第一终端的位置信息;基于第一播放请求,确定距离第一终端最近的第二终端;将视频播放信息发送到第一终端,其中,视频播放信息包括第二终端的身份标识和视频流的播放参数;从第一终端接收由第一终端基于视频播放信息生成的第二播放请求,其中,第二播放请求用于获取音频播放地址,第二播放请求包括第二终端的身份标识和音频流的身份标识;基于第二播放请求,将音频播放地址发送到第一终端。
作为示例,音频播放装置还被配置为:从第三终端接收由第二服务端发送到第三终端的音频播放信息,其中,音频播放信息由第一终端发送到第二服务端,音频播放信息包括音频播放地址,或者包括音频播放地址和第一终端的音频播放进度;基于音频播放信息,将音频流发送到第三终端,以供第三终端与第二终端播放视频流同步地播放音频流。
作为示例,音频流中包括音频数据以及与视频流共用的标准时间戳,其中,第一终端或第三终端与第二终端播放视频流同步地播放音频流,包括:对音频流进行解码,得到标准时间戳;对标准时间戳与本地时间戳进行差值处理,得到音频延迟时间;基于音频延迟时间,与第二终端播放视频流同步地播放音频流。
作为示例,基于音频延迟时间,与第二终端播放视频流同步地播放音频流,包括:响应于音频延迟时间大于0,在使音频流等待与音频延迟时间等长的时间后,播放音频流;响应于音频延迟时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,第一终端或第三终端通过以下方式播放音频流:确定用于播放音频流的扬声器的声道;对从音频流解析出的音频数据进行声道方位的渲染,得到音频数据的声道元数据;基于声道元数据,确定音频数据中的各声道音频的空间位置信息;根据扬声器的声道和空间位置信息,对声道音频进行声道转化,得到转化后的声道音频;基于转化后的声道音频,生成与扬声器的声道适配的音频文件;通过扬声器的声道播放音频文件。
图17是根据本公开的示例性实施例的音频播放装置的再一示例的示意性框图。参照图17,该音频播放装置应用于第三终端,其包括:
信息接收单元1710被配置为从第二服务端接收音频播放信息,其中,音频播放信息由第一终端发送到第二服务端,音频播放信息包括音频播放地址,或者包括音频播放地址和第一终端的音频播放进度,音频播放地址由第一终端获取,第一终端获取第二终端正在播放的视频流的视频身份标识,将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址;
获取和播放单元1720被配置为基于音频播放信息,从第一服务端获取音频流,并且与第二终端播放视频流同步地播放音频流。
作为示例,第一终端将视频身份标识发送到第一服务端,并且从第一服务端获取与视频流对应的音频流的音频播放地址,包括:基于视频身份标识,生成用于获取第二终端的播放信息的第一播放请求,其中,第一播放请求包括视频身份标识和第一终端的位置信息;将第一播放请求发送至第一服务端,以供第一服务端基于第一播放请求确定距离第一终端最近的第二终端;从第一服务端接收视频播放信息,其中,视频播放信息包括第二终端的身份标识以及与视频流对应的音频流的身份标识;基于视频播放信息,生成用于获取音频播放地址的第二播放请求,其中,第二播放请求包括第二终端的身份标识和音频流的身份标识;将第二播放请求发送到第一服务端,并且从第一服务端获取音频播放地址。
作为示例,音频流中包括音频数据以及与视频流共用的标准时间戳,其中,第一终端或第三终端与第二终端播放视频流同步地播放音频流,包括:对音频流进行解码,得到标准时间戳;对标准时间戳与本地时间戳进行差值处理,得到音频延迟时间;基于音频延迟时间,与第二终端播放视频流同步地播放音频流。
作为示例,基于音频延迟时间,与第二终端播放视频流同步地播放音频流,包括:响应于音频延迟时间大于0,在等待与音频延迟时间等长的时间后,播放音频流;响应于音频延迟时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,第一终端或第三终端通过以下方式播放音频流:确定用于播放音频流的扬声器的声道;对从音频流解析出的音频数据进行声道方位的渲染,得到音频数据的声道元数据;基于声道元数据,确定音频数据中的各声道音频的空间位置信息;根据扬声器的声道和空间位置信息,对声道音频进行声道转化,得到转化后的声道音频;基于转化后的声道音频,生成与扬声器的声道适配的音频文件;通过扬声器的声道播放音频文件。
图18是根据本公开的示例性实施例的音视频流同步播放装置的一示例的示意性框图。参照图18,该音视频流同步播放装置应用于第一终端,其包括:
获取单元1810被配置为从第一服务端获取音频流,其中,音频流与第二终端正在播放的视频流对应,第二终端从第一服务端接收视频流,音频流包括音频数据和标准时间戳,视频流包括视频数据和标准时间戳。
接收单元1820被配置为从第一服务端接收由第二终端确定的第二终端播放视频流的视频延迟时间,其中,视频延迟时间为标准时间戳与第二终端的本地时间戳之差。
确定单元1830被配置为基于标准时间戳与第一终端的本地时间戳之差,确定第一终端播放音频流的音频延迟时间。
播放单元1840被配置为基于视频延迟时间和音频延迟时间,与第二终端播放视频流同步地播放音频流。
作为示例,播放单元1840还被配置为:对音频延迟时间与视频延迟时间进行差值处理,得到音画异步时间;响应于音画异步时间大于0,在等待与音频延迟时间等长的时间后,播放音频流,响应于音画异步时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,该音视频流同步播放装置还被配置为:对音频延迟时间与视频延迟时间进行差值处理,得到音画异步时间;响应于音画异步时间满足第一预设条件,以第一时间间隔,从第一服务端接收视频延迟时间;响应于音画异步时间满足第二预设条件,以第二时间间隔,从第一服务端接收视频延迟时间;响应于音画异步时间满足第三预设条件,以第三时间间隔,从第一服务端接收视频延迟时间,第一预设条件为:音画异步时间处于第一预设区间,或者,在预定时长内,音画异步时间处于第一预设区间之外的次数低于预定次数,第二预设条件为:连续两次得到的音画异步时间大于或等于第一预设区间的上限值,或者小于或等于第一预设区间的下限值,第三预设条件为:连续两次得到的音画异步时间大于或等于第一阈值,或者小于或等于第二阈值,第一阈值大于第一预设区间的上限值,第二阈值小于第一预设区间的下限值,其中,第一时间间隔大于第二时间间隔,第二时间间隔大于第三时间间隔。
作为示例,该音视频流同步播放装置还被配置为:响应于接收到用户输入的音频等待指令,在等待与音频等待指令中的等待时间对应的时长后,播放音频流;响应于接收到用户输入的音频丢弃指令,从音频流中丢弃与音频丢弃指令中的丢弃时间对应时长的音频数据,播放丢弃音频数据后的音频流。
作为示例,获取单元1810被配置为通过以下方式从第一服务端获取音频流:获取第二终端正在播放的视频流的视频身份标识;将视频身份标识发送到第一服务端,并且从第一服务端获取与视频身份标识对应的音频流的音频播放地址;基于音频播放地址,从第一服务端获取音频流。
图19是根据本公开的示例性实施例的音视频流同步播放装置的另一示例的示意性框图。参照图19,该音视频流同步播放装置应用于第一服务端,其包括:
流发送单元1910被配置为将音频流发送到第一终端,将视频流发送到第二终端,其中,视频流与音频流对应,音频流包括音频数据和标准时间戳,视频流包括视频数据和标准时间戳。
时间发送单元1920被配置为将由第二终端确定的第二终端播放视频流的视频延迟时间发送到第一终端,以供第一终端基于视频延迟时间和第一终端播放音频流的音频延迟时间,与第二终端播放视频流同步地播放音频流,视频延迟时间为标准时间戳与第二终端的本地时间戳之差,音频延迟时间为标准时间戳与第一终端的本地时间戳之差。
作为示例,第一终端基于视频延迟时间和第一终端播放音频流的音频延迟时间,与第二终端播放视频流同步地播放音频流的步骤可以包括:对音频延迟时间与视频延迟时间进行差值处理,得到音画异步时间;响应于音画异步时间大于0,在等待与音频延迟时间等长的时间后,播放音频流,响应于音画异步时间小于0,从音频流中丢弃与音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
作为示例,该音视频流同步播放装置还被配置为:对音频延迟时间与视频延迟时间进行差值处理,得到音画异步时间;响应于音画异步时间满足第一预设条件,以第一时间间隔,将视频延迟时间发送到第一终端;响应于音画异步时间满足第二预设条件,以第二时间间隔,将视频延迟时间发送到第一终端;响应于音画异步时间满足第三预设条件,以第三时间间隔,将视频延迟时间发送到第一终端,第一预设条件为:音画异步时间处于第一预设区间,或者,在预定时长内,音画异步时间处于第一预设区间之外的次数低于预定次数,第二预设条件为:连续两次得到的音画异步时间大于或等于第一预设区间的上限值,或者小于或等于第一预设区间的下限值,第三预设条件为:连续两次得到的音画异步时间大于或等于第一阈值,或者小于或等于第二阈值,第一阈值大于第一预设区间的上限值,第二阈值小于第一预设区间的下限值,其中,第一时间间隔大于第二时间间隔,第二时间间隔大于第三时间间隔。
作为示例,该音视频流同步播放装置还被配置为:第一终端响应于接收到用户输入的音频等待指令,在等待与音频等待指令中的等待时间对应的时长后,播放音频流;第一终端响应于接收到用户输入的音频丢弃指令,从音频流中丢弃与音频丢弃指令中的丢弃时间对应时长的音频数据,播放丢弃音频数据后的音频流。
作为示例,该音视频流同步播放装置还被配置为:从第一终端接收由第一终端获取的第二终端正在播放的视频流的视频身份标识;将与视频身份标识对应的音频流的音频播放地址发送到第一终端;基于音频播放地址,执行将音频流发送到第一终端的步骤。
关于上述实施例中的音频播放装置和音视频流同步播放装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图20是根据一示例性实施例示出的一种电子设备的框图。如图20所示,电子设备1000包括处理器101和用于存储处理器可执行指令的存储器102。这里,处理器可执行指令在被处理器运行时,促使处理器执行如上述示例性实施例所述的音频播放方法或音视频流同步播放方法。
作为示例,电子设备1000并非必须是单个的设备,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。电子设备1000还可以是集成控制***或***管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的服务器。
在电子设备1000中,处理器101可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器***、微控制器或微处理器。作为示例而非限制,处理器101还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
处理器101可运行存储在存储器102中的指令或代码,其中,存储器102还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,网络接口装置可采用任何已知的传输协议。
存储器102可与处理器101集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储器102可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库***可使用的其他存储装置。存储器102和处理器101可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器101能够读取存储在存储器102中的文件。
此外,电子设备1000还可以包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。电子设备1000的所有组件可经由总线和/或网络而彼此连接。
在示例性实施例中,还可提供一种计算机可读存储介质,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行如上述示例性实施例所述的音频播放方法或音视频流同步播放方法。计算机可读存储介质例如可以是包括指令的存储器,可选地,计算机可读存储介质可以是:只读存储器(ROM)、随机存取存储器(RAM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、CD-ROM、CD-R、CD+R、CD-RW、CD+RW、DVD-ROM、DVD-R、DVD+R、DVD-RW、DVD+RW、DVD-RAM、BD-ROM、BD-R、BD-R LTH、BD-RE、蓝光或光盘存储器、硬盘驱动器(HDD)、固态硬盘(SSD)、卡式存储器(诸如,多媒体卡、安全数字(SD)卡或极速数字(XD)卡)、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,所述任何其他装置被配置为以非暂时性方式存储计算机程序以及任何相关联的数据、数据文件和数据结构并将所述计算机程序以及任何相关联的数据、数据文件和数据结构提供给处理器或计算机使得处理器或计算机能执行所述计算机程序。上述计算机可读存储介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,此外,在一个示例中,计算机程序以及任何相关联的数据、数据文件和数据结构分布在联网的计算机***上,使得计算机程序以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式方式存储、访问和执行。
在示例性实施例中,还可提供一种计算机程序产品,该计算机程序产品包括计算机指令,计算机指令被处理器执行时实现如上述示例性实施例所述的音频播放方法或音视频流同步播放方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (12)
1.一种音视频流同步播放方法,其特征在于,应用于第一终端,所述音视频流同步播放方法包括:
从第一服务端获取音频流,其中,所述音频流与第二终端正在播放的视频流对应,所述第二终端从所述第一服务端接收所述视频流,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;
从所述第一服务端接收由第二终端确定的所述第二终端播放视频流的视频延迟时间,其中,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差;
基于所述标准时间戳与所述第一终端的本地时间戳之差,确定所述第一终端播放所述音频流的音频延迟时间;
基于所述视频延迟时间和所述音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,
其中,所述音视频流同步播放方法还包括:
对所述音频延迟时间与所述视频延迟时间进行差值处理,得到音画异步时间;
响应于所述音画异步时间满足第一预设条件,以第一时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第二预设条件,以第二时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第三预设条件,以第三时间间隔,从所述第一服务端接收所述视频延迟时间,
所述第一预设条件为:所述音画异步时间处于第一预设区间,或者,在预定时长内,所述音画异步时间处于所述第一预设区间之外的次数为一次,
所述第二预设条件为:连续两次得到的音画异步时间大于或等于所述第一预设区间的上限值且小于第一阈值,或者小于或等于所述第一预设区间的下限值且大于第二阈值,
所述第三预设条件为:连续两次得到的音画异步时间大于或等于所述第一阈值,或者小于或等于所述第二阈值,所述第一阈值大于所述第一预设区间的上限值,所述第二阈值小于所述第一预设区间的下限值,
其中,所述第一时间间隔大于所述第二时间间隔,所述第二时间间隔大于所述第三时间间隔。
2.根据权利要求1所述的音视频流同步播放方法,其特征在于,所述基于所述视频延迟时间和所述第一终端播放所述音频流的音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,包括:
对所述音频延迟时间与所述视频延迟时间进行差值处理,得到音画异步时间;
响应于所述音画异步时间大于0,在等待与所述音频延迟时间等长的时间后,播放所述音频流,
响应于所述音画异步时间小于0,从所述音频流中丢弃与所述音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
3.根据权利要求1所述的音视频流同步播放方法,其特征在于,所述音视频流同步播放方法还包括:
响应于接收到用户输入的音频等待指令,在等待与所述音频等待指令中的等待时间对应的时长后,播放所述音频流;
响应于接收到用户输入的音频丢弃指令,从所述音频流中丢弃与所述音频丢弃指令中的丢弃时间对应时长的音频数据,播放丢弃音频数据后的音频流。
4.根据权利要求1所述的音视频流同步播放方法,其特征在于,通过以下方式从第一服务端获取所述音频流:
获取所述第二终端正在播放的所述视频流的视频身份标识;
将所述视频身份标识发送到所述第一服务端,并且从所述第一服务端获取与所述视频身份标识对应的音频流的音频播放地址;
基于所述音频播放地址,从所述第一服务端获取所述音频流。
5.一种音视频流同步播放方法,其特征在于,应用于第一服务端,所述音视频流同步播放方法包括:
将音频流发送到第一终端,将视频流发送到第二终端,其中,所述视频流与所述音频流对应,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;
将由第二终端确定的所述第二终端播放视频流的视频延迟时间发送到所述第一终端,以供所述第一终端基于所述视频延迟时间和所述第一终端播放所述音频流的音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差,所述音频延迟时间为所述标准时间戳与所述第一终端的本地时间戳之差,
其中,所述音视频流同步播放方法还包括:
所述第一终端对所述音频延迟时间与所述视频延迟时间进行差值处理,得到音画异步时间;
响应于所述音画异步时间满足第一预设条件,所述第一终端以第一时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第二预设条件,所述第一终端以第二时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第三预设条件,所述第一终端以第三时间间隔,从所述第一服务端接收所述视频延迟时间,
所述第一预设条件为:所述音画异步时间处于第一预设区间,或者,在预定时长内,所述音画异步时间处于所述第一预设区间之外的次数为一次,
所述第二预设条件为:连续两次得到的音画异步时间大于或等于所述第一预设区间的上限值且小于第一阈值,或者小于或等于所述第一预设区间的下限值且大于第二阈值,
所述第三预设条件为:连续两次得到的音画异步时间大于或等于所述第一阈值,或者小于或等于所述第二阈值,所述第一阈值大于所述第一预设区间的上限值,所述第二阈值小于所述第一预设区间的下限值,
其中,所述第一时间间隔大于所述第二时间间隔,所述第二时间间隔大于所述第三时间间隔。
6.根据权利要求5所述的音视频流同步播放方法,其特征在于,所述第一终端基于所述视频延迟时间和所述第一终端播放所述音频流的音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,包括:
对所述音频延迟时间与所述视频延迟时间进行差值处理,得到音画异步时间;
响应于所述音画异步时间大于0,在等待与所述音频延迟时间等长的时间后,播放所述音频流,
响应于所述音画异步时间小于0,从所述音频流中丢弃与所述音频延迟时间等长的时间的音频数据,并且播放丢弃音频数据后的音频流。
7.根据权利要求5所述的音视频流同步播放方法,其特征在于,所述音视频流同步播放方法还包括:
所述第一终端响应于接收到用户输入的音频等待指令,在等待与所述音频等待指令中的等待时间对应的时长后,播放所述音频流;
所述第一终端响应于接收到用户输入的音频丢弃指令,从所述音频流中丢弃与所述音频丢弃指令中的丢弃时间对应时长的音频数据,播放丢弃音频数据后的音频流。
8.根据权利要求5所述的音视频流同步播放方法,其特征在于,所述音视频流同步播放方法还包括:
从所述第一终端接收由所述第一终端获取的所述第二终端正在播放的所述视频流的视频身份标识;
将与所述视频身份标识对应的音频流的音频播放地址发送到所述第一终端;
基于所述音频播放地址,执行将所述音频流发送到所述第一终端的步骤。
9.一种音视频流同步播放装置,应用于第一终端,其特征在于,所述音视频流同步播放装置包括:
获取单元,被配置为从第一服务端获取音频流,其中,所述音频流与第二终端正在播放的视频流对应,所述第二终端从所述第一服务端接收所述视频流,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;
接收单元,被配置为从所述第一服务端接收由第二终端确定的所述第二终端播放视频流的视频延迟时间,其中,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差;
确定单元,被配置为基于所述标准时间戳与所述第一终端的本地时间戳之差,确定所述第一终端播放所述音频流的音频延迟时间;
播放单元,被配置为基于所述视频延迟时间和所述音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,
其中,所述接收单元还被配置为:
对所述音频延迟时间与所述视频延迟时间进行差值处理,得到音画异步时间;
响应于所述音画异步时间满足第一预设条件,以第一时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第二预设条件,以第二时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第三预设条件,以第三时间间隔,从所述第一服务端接收所述视频延迟时间,
所述第一预设条件为:所述音画异步时间处于第一预设区间,或者,在预定时长内,所述音画异步时间处于所述第一预设区间之外的次数为一次,
所述第二预设条件为:连续两次得到的音画异步时间大于或等于所述第一预设区间的上限值且小于第一阈值,或者小于或等于所述第一预设区间的下限值且大于第二阈值,
所述第三预设条件为:连续两次得到的音画异步时间大于或等于所述第一阈值,或者小于或等于所述第二阈值,所述第一阈值大于所述第一预设区间的上限值,所述第二阈值小于所述第一预设区间的下限值,
其中,所述第一时间间隔大于所述第二时间间隔,所述第二时间间隔大于所述第三时间间隔。
10.一种音视频流同步播放装置,应用于第一服务端,其特征在于,所述音视频流同步播放装置包括:
流发送单元,被配置为将音频流发送到第一终端,将视频流发送到第二终端,其中,所述视频流与所述音频流对应,所述音频流包括音频数据和标准时间戳,所述视频流包括视频数据和所述标准时间戳;
时间发送单元,被配置为将由第二终端确定的所述第二终端播放视频流的视频延迟时间发送到所述第一终端,以供所述第一终端基于所述视频延迟时间和所述第一终端播放所述音频流的音频延迟时间,与所述第二终端播放所述视频流同步地播放所述音频流,所述视频延迟时间为所述标准时间戳与所述第二终端的本地时间戳之差,所述音频延迟时间为所述标准时间戳与所述第一终端的本地时间戳之差,
其中,所述第一终端对所述音频延迟时间与所述视频延迟时间进行差值处理,得到音画异步时间;
响应于所述音画异步时间满足第一预设条件,所述第一终端以第一时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第二预设条件,所述第一终端以第二时间间隔,从所述第一服务端接收所述视频延迟时间;
响应于所述音画异步时间满足第三预设条件,所述第一终端以第三时间间隔,从所述第一服务端接收所述视频延迟时间,
所述第一预设条件为:所述音画异步时间处于第一预设区间,或者,在预定时长内,所述音画异步时间处于所述第一预设区间之外的次数为一次,
所述第二预设条件为:连续两次得到的音画异步时间大于或等于所述第一预设区间的上限值且小于第一阈值,或者小于或等于所述第一预设区间的下限值且大于第二阈值,
所述第三预设条件为:连续两次得到的音画异步时间大于或等于所述第一阈值,或者小于或等于所述第二阈值,所述第一阈值大于所述第一预设区间的上限值,所述第二阈值小于所述第一预设区间的下限值,
其中,所述第一时间间隔大于所述第二时间间隔,所述第二时间间隔大于所述第三时间间隔。
11.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器,
其中,所述处理器可执行指令在被所述处理器运行时,促使所述处理器执行根据权利要求1至8中任一项所述的音视频流同步播放方法。
12.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由服务器的处理器执行时,使得所述服务器能够执行根据权利要求1至8中任一项所述的音视频流同步播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310142484.2A CN115942021B (zh) | 2023-02-17 | 2023-02-17 | 音视频流同步播放方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310142484.2A CN115942021B (zh) | 2023-02-17 | 2023-02-17 | 音视频流同步播放方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115942021A CN115942021A (zh) | 2023-04-07 |
CN115942021B true CN115942021B (zh) | 2023-06-27 |
Family
ID=86656077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310142484.2A Active CN115942021B (zh) | 2023-02-17 | 2023-02-17 | 音视频流同步播放方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115942021B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3742742A1 (en) * | 2019-04-04 | 2020-11-25 | Wangsu Science & Technology Co., Ltd. | Method, apparatus and system for synchronously playing message stream and audio/video stream |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106792073B (zh) * | 2016-12-29 | 2019-09-17 | 北京奇艺世纪科技有限公司 | 跨设备的音视频数据同步播放的方法、播放设备及*** |
CN108462896B (zh) * | 2018-03-23 | 2020-10-02 | 北京潘达互娱科技有限公司 | 直播数据流处理方法、装置及电子设备 |
CN110177294A (zh) * | 2019-06-11 | 2019-08-27 | 亦非云互联网技术(上海)有限公司 | 播放器音视频同步方法及***、存储介质及终端 |
CN111757158A (zh) * | 2020-06-29 | 2020-10-09 | 北京百度网讯科技有限公司 | 音视频同步播放方法、装置、设备和存储介质 |
CN112261461B (zh) * | 2020-10-20 | 2022-08-02 | 深圳创维-Rgb电子有限公司 | 蓝牙音画同步方法、装置、显示设备和可读存储介质 |
CN112995730A (zh) * | 2021-03-30 | 2021-06-18 | 闻泰通讯股份有限公司 | 音画同步调整方法、装置、电子设备及介质 |
CN114040237A (zh) * | 2021-09-30 | 2022-02-11 | 茂佳科技(广东)有限公司 | 音频视频同步播放方法、终端、多媒体播放***及介质 |
-
2023
- 2023-02-17 CN CN202310142484.2A patent/CN115942021B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3742742A1 (en) * | 2019-04-04 | 2020-11-25 | Wangsu Science & Technology Co., Ltd. | Method, apparatus and system for synchronously playing message stream and audio/video stream |
Also Published As
Publication number | Publication date |
---|---|
CN115942021A (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11252444B2 (en) | Video stream processing method, computer device, and storage medium | |
WO2019205872A1 (zh) | 视频流处理方法、装置、计算机设备及存储介质 | |
CN110784758B (zh) | 投屏处理方法、装置、电子设备及计算机程序介质 | |
EP3562163B1 (en) | Audio-video synthesis method and system | |
CN112261416A (zh) | 基于云的视频处理方法、装置、存储介质与电子设备 | |
EP2369836A2 (en) | Object-based 3-dimensional audio service system using preset audio scenes | |
KR102469142B1 (ko) | 미디어 스트림 재생들 사이를 트랜지션하는 동안 트랜지션 프레임들의 동적 재생 | |
US11683567B2 (en) | Apparatus and method for providing audio description content | |
US11956497B2 (en) | Audio processing method and electronic device | |
KR101624904B1 (ko) | 휴대용 단말기에서 디엔엘에이를 이용하여 멀티 사운드 채널 컨텐츠를 재생하기 위한 장치 및 방법 | |
KR20050102858A (ko) | 참여방송 시스템 | |
JP6809463B2 (ja) | 情報処理装置、および情報処理方法、並びにプログラム | |
CN112383794B (zh) | 直播方法、直播***、服务器和计算机存储介质 | |
CN114554277B (zh) | 多媒体的处理方法、装置、服务器及计算机可读存储介质 | |
CN112449208B (zh) | 语音处理方法及其装置 | |
CN112055227B (zh) | 云游戏交互方法、***、装置、存储介质与电子设备 | |
CN115942021B (zh) | 音视频流同步播放方法、装置、电子设备及存储介质 | |
CN116112722B (zh) | 音频播放方法、装置、电子设备及存储介质 | |
JP2016189613A (ja) | 動画データ編集装置、動画データ編集方法、再生装置、及びプログラム | |
CN116347140A (zh) | 视频同步播放方法及装置、存储介质、电子设备 | |
CN114422840A (zh) | 音轨切换的方法及装置 | |
CN115550705A (zh) | 一种音频播放方法及装置 | |
CN115695843B (zh) | 预制视频播放方法、服务器、终端、介质及*** | |
CN113301410A (zh) | 音频画面同步方法、装置和***以及发送控制器 | |
CN113948054A (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 |