CN113596545A - 音轨切换方法、装置、媒体播放设备和计算机存储介质 - Google Patents
音轨切换方法、装置、媒体播放设备和计算机存储介质 Download PDFInfo
- Publication number
- CN113596545A CN113596545A CN202110826544.3A CN202110826544A CN113596545A CN 113596545 A CN113596545 A CN 113596545A CN 202110826544 A CN202110826544 A CN 202110826544A CN 113596545 A CN113596545 A CN 113596545A
- Authority
- CN
- China
- Prior art keywords
- data
- node data
- audio
- audio track
- played
- 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.)
- Pending
Links
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
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72442—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality for playing music files
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/439—Processing of audio elementary streams
- H04N21/4392—Processing of audio elementary streams involving audio buffer management
-
- 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/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请实施例中提供了一种音轨切换方法、装置、媒体播放设备和计算机存储介质。该方法包括:将媒体数据中的多个音频数据分别缓存至对应的音轨队列中;其中,音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,目标音轨队列中缓存有目标音频数据,待切换音轨队列中缓存有待播音频数据;在当前播放使用的音轨队列为目标音轨队列时,将目标音频数据与待播音频数据进行播放同步处理;依据获取的音轨切换指令,将当前播放的音轨队列从目标音轨队列切换为转换音轨队列;其中,转换音轨队列为待切换音轨队列中的其中一个。采用本申请中的方案,能够解决在音轨切换后,视频画面存在的追帧播放问题,及解决在音轨切换时,视频等待加载的问题。
Description
技术领域
本申请涉及媒体播放技术领域,具体地,涉及一种音轨切换方法、装置、媒体播放设备和计算机存储介质。
背景技术
目前,为了满足用户对音频的不同需求,媒体数据通常包括多条音轨的音频数据,每条音轨对应于一条独立的音频流。在媒体数据中,不同语言类型的音频流(如中文和英文等)对应于不同的音轨。不同的音质的音频流(如杜比、立体声、AAC和MP3等)也对应于不同的音轨。用户可以通过媒体播放器完成多音轨的切换,以满足不同的音效需求。
现有技术存在的问题:
用户在音轨切换时,会出现视频等待加载的情况。且在音轨切换完成后,播放的视频画面会存在追帧播放的问题。
发明内容
本申请实施例中提供了一种音轨切换方法、装置、媒体播放设备和计算机存储介质,以解决现有技术存在的问题。
根据本申请实施例的第一个方面,提供了一种音轨切换方法,所述方法包括:
将媒体数据中的多个音频数据分别缓存至对应的音轨队列中;其中,所述音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,所述目标音轨队列中缓存有目标音频数据,所述待切换音轨队列中缓存有待播音频数据;
在当前播放使用的音轨队列为所述目标音轨队时,将所述目标音频数据与所述待播音频数据进行播放同步处理;
获取音轨切换指令;
依据所述音轨切换指令,将当前播放的音轨队列从所述目标音轨队列切换为转换音轨队列;其中,所述转换音轨队列为所述待切换音轨队列中的其中一个。
根据本申请实施例的第二个方面,提供了一种音轨切换装置,所述装置包括:
缓存模块,用于将媒体数据中的多个音频数据分别缓存至对应的音轨队列中;其中,所述音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,所述目标音轨队列中缓存有目标音频数据,所述待切换音轨队列中缓存有待播音频数据;
同步模块,用于在当前播放使用的音轨队列为所述目标音轨队时,将所述目标音频数据与所述待播音频数据进行播放同步处理;
获取模块,用于获取音轨切换指令;
切换模块,用于依据所述音轨切换指令,将当前播放的音轨队列从所述目标音轨队列切换为转换音轨队列;其中,所述转换音轨队列为所述待切换音轨队列中的其中一个;
播放模块,用于播放所述转换音轨队列中的待播音频数据。
根据本申请实施例的第三个方面,提供了一种媒体播放器,包括存储器以及一个或多个处理器,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如上所述音轨切换方法的步骤。
根据本申请实施例的第四个方面,提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述音轨切换方法的步骤。
采用本申请实施例中提供的音轨切换方法、装置、媒体播放设备和计算机存储介质,通过将媒体数据中的多个音频数据缓存至对应的音轨队列中,在播放使用目标音轨队列时,可将目标音频数据与待播音频数据进行播放同步处理。通过在音轨切换前缓存待切换音轨队列的音频数据,在音轨切换时,无需等待待播音频数据缓存至转换音轨队列中,就能获得待播音频数据进行播放,减少了视频等待加载时间。同时,通过播放同步处理,保证播放中的目标音频数据与待播音频数据保持同步性,使得切换后的转换音轨队列中的待播音频数据能够与视频数据同步,从而解决了切换后视频画面追帧播放的问题。实现了用户无感知流畅切换,极大提升了用户体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种应用场景的示意图;
图2为本申请实施例提供的一种媒体播放器的结构示意图;
图3为本申请实施例提供的一种音轨切换方法的流程示意图;
图4a为本申请实施例提供的一种音轨切换方法的处理流程示意图;
图4b为本申请实施例提供的另一种音轨切换方法的处理流程示意图;
图5为本申请实施例提供的另一种音轨切换方法的流程示意图;
图6为本申请实施例提供的又一种音轨切换方法的流程示意图;
图7为本申请实施例提供的又一种音轨切换方法的流程示意图;
图8为本申请实施例提供的一种音轨切换装置的结构框图。
具体实施方式
在实现本申请的过程中,发明人发现,现有的媒体播放器只有一个音轨缓冲队列和一个视频缓冲队列。若媒体播放器包括第一音轨和第二音轨,在媒体播放器播放音视频时,会将当前播放的第一音轨的音频数据缓存至音轨缓冲队列,未选中的第二音轨的音频数据则丢弃,视频数据正常缓存至视频缓冲队列中。当用户将当前播放音轨从第一音轨切换至第二音轨时,媒体播放器响应音轨切换指令,将第一音轨的音频数据从音轨缓冲队列中清除,并将第二音轨的音频数据缓存至音轨缓冲队列。
因为音轨切换时,音轨缓冲队列之前缓存的第一音轨的音频数据会被清空,重新缓存第二音轨的音频数据。根据第二音轨的当前码率,当前网络情况,重新缓存第二音轨的音频数据至音轨缓冲队列中,会需要500ms~2s之间的缓存时间。由于视频数据会同步音频数据,故在这个时间段内,视频数据会暂停播放,造成视频数据等待加载现象。
且因为第一音轨的音频数据清空,而视频数据没有清空,故视频数据的时间戳与当前播放的时间戳对应。而清空的第一音轨的音频数据存在着未播的音频数据,所以重新缓存的第二音轨的音频数据的当前播放时间戳,是与未播的第一音轨的音频数据的时间戳对应。第二音轨的音频数据的当前播放时间戳会大于视频数据的当前播放时间戳,视频数据与音频数据同步时,默认以音频时钟为准,故会造成视频数据追帧播放的问题。
为了便于理解视频数据追帧播放,现举例进行阐述。若一段音视频播放到第10秒时,进行音轨切换(假设此时音轨缓冲队列有3秒时长的未播音视频数据),视频数据时间戳会保持不变(10秒)。因为音轨切换,会进行之前音频数据清除动作(之前缓存的未播音频数据会清除,视频数据不会),那么重新加载的音频数据的时间戳则从第13秒开始,导致新的音频数据时间戳大于视频数据时间戳。为了保证音频数据和视频数据同步,视频数据会加速播放(可能会以1.1倍数播放)直至音视频同步,视频数据加速播放的这部分画面即为追帧画面。
针对上述问题,本申请实施例中提供了一种音轨切换方法、装置、媒体播放设备和计算机存储介质,通过将媒体数据中的多个音频数据缓存至对应的音轨队列中,在播放使用目标音轨队列时,可将目标音频数据与待播音频数据进行播放同步处理。通过在音轨切换前缓存待切换音轨队列的音频数据,在音轨切换时,无需等待待播音频数据缓存至转换音轨队列中,就能获得待播音频数据进行播放,减少了视频等待加载时间。同时,通过播放同步处理,保证播放中的目标音频数据与待播音频数据保持同步性,使得切换后的转换音轨队列中的待播音频数据能够与视频数据同步,从而解决了切换后视频画面追帧播放的问题。实现了用户无感知流畅切换,极大提升了用户体验。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
请参照图1,为本申请实施例提供的一种应用场景示意图,媒体播放器100与服务器200通过多种通信方式进行数据通信。这里可允许媒体播放器100通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器200可以用于向媒体播放器100发送媒体数据,媒体播放器100用于依据媒体数据进行音视频播放,媒体播放器100还用于进行音轨切换。
如图2所示,为本申请实施例提供的一种媒体播放器100的结构示意图,该媒体播放器100包括存储器101、处理器102和通信接口103。该存储器101、处理器102和通信接口103相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器101可用于存储软件程序及模块,如本申请实施例所提供的音轨切换方法对应的程序指令/模块,处理器102通过执行存储在存储器101内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口103可用于与其他节点设备和服务器200进行信令或数据的通信。在本申请中该媒体播放器100可以具有多个通信接口103。
其中,存储器101可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器102可以是一种集成电路芯片,具有信号处理能力。该处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(NetworkProcessor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
媒体播放器100可以实现本申请提供的任一种音轨切换方法。该媒体播放器100可以是,但不限于手机、平板电脑、可穿戴设备、车载设备、增强现实(AugmentedReality,AR)/虚拟现实(Virtual Reality,VR)设备、笔记本电脑、超级移动个人计算机(Ultra-MobilePersonal Computer,UMPC)等,本申请实施例对媒体播放器100的具体类型不作任何限制。
下面在图2示出的媒体播放器100的基础上,本申请实施例提供一种音轨切换方法,请参见图3,图3为本申请实施例提供的一种音轨切换方法的流程示意图,该音轨切换方法可以包括以下步骤:
S301,将媒体数据中的多个音频数据分别缓存至对应的音轨队列中。
该媒体数据可以为直播媒体数据,也可以为录播媒体数据和点播媒体数据。即该媒体播放器100可以应用在直播环境中,也可以应用在录播和点播环境中,在此并不作限定。
音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,目标音轨队列中缓存有目标音频数据,待切换音轨队列中缓存有待播音频数据。该目标音轨队列可以理解为媒体播放器100默认播放的音轨队列,待切换音轨队列可以理解为媒体播放器100中可被切换的音轨队列。目标音频数据和待播音频数据均为媒体数据中的音频数据。
媒体数据中的多个音频数据可以为媒体数据中的所有音频数据,也可以为部分音频数据。换言之,在进行缓存时,可以将需要进行切换的音轨队列对应的音频数据进行缓存,不需要进行切换的音轨队列对应的音频数据不进行缓存,该方式可以减少内存;也可以将所有音频数据进行缓存,该方式比缓存部分音频数据操作更简单。在此不作限定,可以根据实际情况进行选择。
该音频数据为解复用线程对媒体数据进行解封装和音视频分离操作而获得,依据音频流索引将多个音频数据分别缓存至对应的音轨队列中。音频流索引在音视频格式探测阶段生成,该探测阶段可以理解为,一般一个媒体数据可以包含一个独立视频数据和多个独立音频数据,在媒体播放器100初始化流程中,首先会读取少量音频数据和视频数据,用于音频数据或视频数据格式探测。
若一个媒体数据中包含一个视频数据和两个音频数据,如果视频数据在前面,则视频数据的索引为0,音频数据的索引分别为1和2;如果音频数据在前面,则音频数据索引为0和1,视频数据索引为2。
S302,在当前播放使用的音轨队列为目标音轨队列时,将目标音频数据与待播音频数据进行播放同步处理。
该目标音频数据包括当前播放节点数据和第一已播节点数据,待播音频数据包括第二已播节点数据,第一已播节点数据与第二已播节点数据对应。媒体播放器100依据当前播放节点数据确定并丢弃第二已播节点数据,以使目标音频数据与待播音频数据保持同步。
应理解,音轨队列为链表结构实现的队列,音频数据由多个节点数据组成,音频数据缓存至音轨队列时,采用先进先出的方式。第一已播节点数据为目标音频数据中已经被播放过的节点数据,当前播放节点数据为目标音频数据中正在被播放的节点数据。第一已播节点数据与第二已播节点数据对应可以理解为:第一已播节点数据与第二已播节点数据的音频内容相同。例如,若第一已播节点数据为目标音轨队列中第一个节点至第n个节点上的节点数据,对应的,第二已播节点数据则为待切换音轨队列中第一节点至第n个节点上的节点数据。其中,n为大于1的整数。
其中,若当前播放的音轨队列不为目标音轨队列,媒体播放器100也会进行播放同步处理。即媒体播放器100会将当前播放的音频数据与未播放的音频数据进行播放同步处理,当前播放的音频数据为当前播放的音轨队列中的音频数据,未播放的音频数据为当前未播放的音轨队列中的音频数据。
S303,获取音轨切换指令。
该音轨切换指令可以通过用户触发产生,即用户可以在媒体播放器100的显示屏上进行鼠标点击或触控点击操作生成,也可以是用户对遥控器上按键进行按压操作生成,还可以是用户在媒体播放器100的按键操作区进行按压操作生成。音轨切换指令也可以是媒体播放器100自动触发产生,例如,媒体播放器100可以依据预设时间,自动触发产生音轨切换指令。
S304,依据音轨切换指令,将当前播放的音轨队列从目标音轨队列切换为转换音轨队列。
转换音轨队列为待切换音轨队列中的其中一个。可以理解,若媒体数据中的多个音频数据为两个音频数据,音轨队列包括一个目标音轨队列和一个待切换音轨队列,转换音轨队列即为待切换音轨队列;若媒体数据中的多个音频数据为两个以上音频数据,音轨队列包括一个目标音轨队列和多个待切换音轨队列,转换音轨队列即为待切换音轨队列中的其中一个。
为了便于理解上述实施例中的音轨切换方法,在图2示出的媒体播放器100的基础上,以该媒体播放器100为智能手机为例进行说明。请参照图4a,图4a为本申请实施例提供的一种音轨切换方法的处理流程示意图。其中,媒体数据中的多个音频数据为三个,分别为杜比音频数据、立体声音频数据和AAC音频数据;媒体播放器100预先设置有三个音轨队列,分别为杜比音轨队列、立体声音轨队列和AAC音轨队列;杜比音频数据与杜比音轨队列对应,立体声音频数据与立体声音轨队列对应,AAC音频数据与AAC音轨队列对应;若杜比音轨队列为目标音轨队列,立体声音轨队列和AAC音轨队列则为待切换音轨队列;对应的,杜比音频数据为目标音频数据,立体声音频数据和AAC音频数据则为待播音频数据。
请继续参照图4a,媒体播放器100将杜比音频数据缓存至杜比音轨队列,将立体声音频数据缓存至立体声音轨队列,将AAC音频数据缓存至AAC音轨队列。媒体播放器100播放杜比音轨队列中的杜比音频数据时,将杜比音频数据与立体声音频数据和AAC音频数据进行播放同步处理。若用户进行杜比音轨至立体声音轨的切换操作,请参照图4b,媒体播放器100响应用户触发的音轨切换指令,将当前播放的音轨队列从杜比音轨队列切换为立体声音轨队列。
应理解,媒体数据中还包括视频数据,媒体播放器100还预先设置有视频队列,视频数据缓存至视频队列中。在媒体播放器100播放杜比音轨队列中的杜比音频数据时,杜比音频数据与视频数据进行音视频同步后,送入显示设备进行显示。在当前播放的音轨队列从杜比音轨队列切换为立体声音轨队列后,进行播放同步处理后的立体声音轨队列与视频数据进行音视频同步后,送入显示设备进行显示。
可见,通过将每个音频数据缓存至对应的音轨队列中,在播放使用目标音轨队列时,可将目标音频数据与待播音频数据进行播放同步处理。在音轨切换时,无需等待待播音频数据缓存至转换音轨队列中,就能获得待播音频数据进行播放,减少了视频等待加载时间。同时,通过播放同步处理,保证播放中的目标音频数据与待播音频数据保持同步性,使得切换后的转换音轨队列中的待播音频数据能够与视频数据同步,从而解决了切换后视频画面追帧播放的问题。实现了用户无感知流畅切换,极大提升了用户体验。
为了便于理解上述实施例如何将目标音频数据与待播音频数据进行播放同步处理,请参照图5,图5为本申请实施例提供的另一种音轨切换方法的流程示意图,上述的S302可以包括:
S302a,获取每个节点数据对应的时间戳和当前播放节点数据对应的时间戳。
S302b,针对每个节点数据,将节点数据对应的时间戳与当前播放节点数据对应的时间戳进行比较。
S302c,若节点数据对应的时间戳小于当前播放节点数据对应的时间戳,则确定为第二已播节点数据。
应理解,待播音频数据包括多个节点数据,每个节点数据对应设置有时间戳。对应的,目标音频数据也包括多个节点数据,其每个节点数据也对应设置有时间戳。
该时间戳在解复用阶段会自动解析生成,根据流信息的时间基计算每个节点数据各自的时间戳。时间基是时间戳的单位,时间戳对应的值乘以时间基,可以得到实际的时刻值(以秒、毫秒等为单位)。例如,如果一个视频帧的dts(解码时间戳)是40,pts(显示时间戳)是160,时间基是1/1000(把1秒分成1000份),那么可以计算出此视频帧的解码时刻值是40毫秒(40/1000),显示时刻是160毫秒(160/1000)。即,可以将时间基看作一个时钟脉冲,则可以把时间戳看作时钟脉冲的计数。
为了便于理解上述的播放同步处理过程,现以媒体播放器100当前播放的音频数据为杜比音频数据,将杜比音频数据切换为立体声音频数据进行播放为例进行说明。
获取立体声音频数据的每个节点数据对应的时间戳和杜比音频数据的当前播放节点数据对应的时间戳。将立体声音频数据的第一节点数据对应的时间戳与当前播放节点数据对应的时间戳进行比较,第一节点数据为第一个缓存至立体声音轨队列中的节点数据;若第一节点数据对应的时间戳小于当前播放节点数据对应的时间戳,则确定第一节点数据为第二已播节点数据。继续将立体声音频数据的第二节点数据对应的时间戳与当前播放节点数据对应的时间戳进行比较,第二节点数据为第二个缓存至立体声音轨队列中的节点数据;若第二节点数据对应的时间戳小于当前播放节点数据对应的时间戳,则确定第二节点数据为第二已播节点数据。重复上述操作,依次将立体声音频数据的节点数据对应的时间戳与当前播放节点数据对应的时间戳进行比较,将时间戳小于当前播放节点数据对应的时间戳的节点数据,均确定为第二已播节点数据。
换言之,第二已播节点数据已经“同等”播放过,将第二已播节点数据丢弃,可以达到杜比音频数据与立体声音频数据同步的作用。故在音轨切换后,能够解决音频数据与视频数据不同步的问题,还可以减少内存占用。
由于不同音频数据的持续时间不一样,如果每次只丢弃一个节点数据,丢弃不及时,是达不到同步效果。为了使同步效果更佳,请参照图6,图6为本申请实施例提供的又一种音轨切换方法的流程示意图,上述的S302还可以包括:
S302d,将第一已播节点数据对应的时间戳与第二已播节点数据对应的时间戳进行比较。
S302e,若第一已播节点数据对应的时间戳大于第二已播节点数据对应的时间戳,则连续丢弃第二已播节点数据。
应理解,连续丢弃表征丢弃第二已播节点数据的速度快于丢弃第一已播节点数据的速度。
若第一已播节点数据对应的时间戳大于第二已播节点数据对应的时间戳,则表明在相同的时间内,第一已播节点数据的数量是小于第二已播节点数据的数量,为了保证播放同步,则应连续快速丢弃第二已播节点数据。
例如,待播音频数据的格式为:0,4543612736,50484.585956,4543612736,0484.585956,1920,0.021333,N/A,N/A,388,168260,K_side_data,MPEGTS Stream ID。目标音频数据的格式为:4543613246,50484.591622,4543613246,50484.591622,2880,0.032000,N/A,N/A,1536,168824,K_side_data,MPEGTS Stream ID。待播音频数据的一个节点数据显示时长为21.333毫秒,目标音频数据的一个节点数据显示时长为32.00毫秒。1秒时间内,待播音频的节点数据数量为1*1000/21.33=46.876;目标音频数据的节点数据数量为1*1000/32.00=31.25。所以,当前播放目标音频数据时,需连续快速丢弃待播音频数据的节点数据,才能达到同步的效果。
S302f,若第一已播节点数据对应的时间戳小于第二已播节点数据对应的时间戳,则延时丢弃第二已播节点数据。
应理解,延时丢弃表征丢弃第二已播节点数据的速度慢于丢弃第一已播节点数据的速度。
若第一已播节点数据对应的时间戳小于第二已播节点数据对应的时间戳,则表明在相同的时间内,第一已播节点数据的数量是大于第二已播节点数据的数量,为了保证播放同步,则应连续延时丢弃第二已播节点数据。
在可选的实施方式中,为了确定目标音轨队列,在图3的基础上,给出一种可能的实现方式,请参见图7,图7为本申请实施例提供的又一种音轨切换方法的流程示意图,该音轨切换方法还包括:
S305,依据预设规则,选择音轨队列中的其中一个为目标音轨队列。
该预设规则可以理解为择优方式,可以依据音频数据的帧数和/或码率确定目标音轨队列。
如,可依据音频数据的帧数和/或码率确定目标音轨队列。在音频数据格式探测阶段,可以解析出音频数据的帧数和码率,音频数据的帧数多和/或码率高的音频数据,优先播放。即,帧数多和/或码率高的音频数据对应的音轨队列确定为目标音轨队列。
该探测阶段探测的音频数据或视频数据格式,包括音视频编码格式(如:h264、h265、aac、mp3等)和封装格式(如:mp4、ts、flv等),视频数据码率、分辨率、帧率等,音频数据采样率、采样位数、通道数等,传输协议file,http(Hypertext Transfer Protocol,超文本传送协议),rtmp等,以及视频数据,音频数据个数等。
该预设规则还可以理解为默认方式,可以依据默认设置,选择音轨队列中的其中一个为目标音轨队列。
若媒体播放器100预先设置有三个音轨队列,分别为第一音轨队列、第二音轨队列和第三音轨队列。可以默认设置第一音轨队列为目标音轨队列,对应的,第二音轨队列和第三音轨队列即为待切换音轨队列。
在可选的实施方式中,在确认目标音轨队列后,需进行时钟初始化操作。应理解,可将媒体播放器的时钟与目标音轨队列关联,以表示同一序列数据,以便音频数据与视频数据同步。
在可选的实施方式中,在将当前播放的音轨队列从目标音轨队列切换为转换音轨队列前,会先关闭目标音轨队列,清空目标音轨队列中缓存的目标音频数据,并销毁目标音轨队列对应的音频解码器;再打开切换到的转换音轨队列,初始化转换音轨队列对应的音频解码器,音频解码器初始化时,会将转换音轨队列对应的缓冲区进行关联,在后续的解码线程中,就会从对应的缓冲区读取待播音频数据。
在可选的实施方式中,在将当前播放的音轨队列从目标音轨队列切换为转换音轨队列后,会将转换音轨队列中的待播音频数据与视频数据同步处理,将同步后的音频数据和视频数据送入显示设备进行显示。
为了实现上述S301~S305及其可能的子步骤对应的音轨切换方法,本申请实施例提供一种音轨切换装置,请参见图8,图8为本申请实施例提供的一种音轨切换装置的方框示意图,该音轨切换装置400包括:缓存模块401、同步模块402、获取模块403、切换模块404和确定模块405。
缓存模块401用于将媒体数据中的多个音频数据分别缓存至对应的音轨队列中;其中,音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,目标音轨队列中缓存有目标音频数据,待切换音轨队列中缓存有待播音频数据。
同步模块402用于在当前播放使用的音轨队列为目标音轨队时,将目标音频数据与待播音频数据进行播放同步处理。
在可选的实施方式中,同步模块402还用于依据当前播放节点数据确定并丢弃第二已播节点数据,以使目标音频数据与待播音频数据保持同步。
在可选的实施方式中,同步模块402还用于获取每个节点数据对应的时间戳和当前播放节点数据对应的时间戳;同步模块402还用于针对每个节点数据,将节点数据对应的时间戳与当前播放节点数据对应的时间戳进行比较;同步模块402还用于若节点数据对应的时间戳小于当前播放节点数据对应的时间戳,则确定为第二已播节点数据。
在可选的实施方式中,同步模块402还用于将第一已播节点数据对应的时间戳与第二已播节点数据对应的时间戳进行比较;若第一已播节点数据对应的时间戳大于第二已播节点数据对应的时间戳,则连续快速丢弃第二已播节点数据;其中,所述连续丢弃表征丢弃所述第二已播节点数据的速度快于丢弃所述第一已播节点数据的速度。若第一已播节点数据对应的时间戳小于第二已播节点数据对应的时间戳,则延时丢弃第二已播节点数据;其中,延时丢弃表征丢弃第二已播节点数据的速度慢于丢弃第一已播节点数据的速度。
获取模块403用于获取音轨切换指令。
切换模块404用于依据音轨切换指令,将当前播放的音轨队列从目标音轨队列切换为转换音轨队列;其中,转换音轨队列为待切换音轨队列中的其中一个。
确定模块405用于依据预设规则,选择音轨队列中的其中一个为目标音轨队列。
在可选的实施方式中,确定模块405还用于依据音频数据的帧数和/或码率确定目标音轨队列,或还用于依据默认设置,选择音轨队列中的其中一个为目标音轨队列。
应理解,缓存模块401、同步模块402、获取模块403、切换模块404和确定模块405可以协同实现上述S301~S305及其可能的子步骤。
综上,本申请提供了一种音轨切换方法、装置、媒体播放设备和计算机存储介质,通过将媒体数据中的多个音频数据缓存至对应的音轨队列中,在播放使用目标音轨队列时,可将目标音频数据与待播音频数据进行播放同步处理。通过在音轨切换前缓存待切换音轨队列的音频数据,在音轨切换时,无需等待待播音频数据缓存至转换音轨队列中,就能获得待播音频数据进行播放,减少了视频等待加载时间。同时,通过播放同步处理,保证播放中的目标音频数据与待播音频数据保持同步性,使得切换后的转换音轨队列中的待播音频数据能够与视频数据同步,从而解决了切换后视频画面追帧播放的问题。实现了用户无感知流畅切换,极大提升了用户体验。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (16)
1.一种音轨切换方法,其特征在于,所述方法包括:
将媒体数据中的多个音频数据分别缓存至对应的音轨队列中;其中,所述音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,所述目标音轨队列中缓存有目标音频数据,所述待切换音轨队列中缓存有待播音频数据;
在当前播放使用的音轨队列为所述目标音轨队列时,将所述目标音频数据与所述待播音频数据进行播放同步处理;
获取音轨切换指令;
依据所述音轨切换指令,将当前播放的音轨队列从所述目标音轨队列切换为转换音轨队列;其中,所述转换音轨队列为所述待切换音轨队列中的其中一个。
2.根据权利要求1所述的方法,其特征在于,所述目标音频数据包括当前播放节点数据和第一已播节点数据,所述待播音频数据包括第二已播节点数据,所述第一已播节点数据与所述第二已播节点数据对应;
所述将所述目标音频数据与所述待播音频数据进行播放同步处理的步骤包括:
依据所述当前播放节点数据确定并丢弃所述第二已播节点数据,以使所述目标音频数据与所述待播音频数据保持同步。
3.根据权利要求2所述的方法,其特征在于,所述待播音频数据包括多个节点数据,每个所述节点数据对应设置有时间戳;
所述依据所述当前播放节点数据确定所述第二已播节点数据的步骤包括:
获取每个所述节点数据对应的时间戳和所述当前播放节点数据对应的时间戳;
针对每个所述节点数据,将所述节点数据对应的时间戳与所述当前播放节点数据对应的时间戳进行比较;
若所述节点数据对应的时间戳小于所述当前播放节点数据对应的时间戳,则确定为所述第二已播节点数据。
4.根据权利要求2所述的方法,其特征在于,所述丢弃所述第二已播节点数据的步骤包括:
将所述第一已播节点数据对应的时间戳与所述第二已播节点数据对应的时间戳进行比较;
若所述第一已播节点数据对应的时间戳大于所述第二已播节点数据对应的时间戳,则连续丢弃所述第二已播节点数据;其中,所述连续丢弃表征丢弃所述第二已播节点数据的速度快于丢弃所述第一已播节点数据的速度。
5.根据权利要求2所述的方法,其特征在于,所述丢弃所述第二已播节点数据的步骤包括:
将所述第一已播节点数据对应的时间戳与所述第二已播节点数据对应的时间戳进行比较;
若所述第一已播节点数据对应的时间戳小于所述第二已播节点数据对应的时间戳,则延时丢弃所述第二已播节点数据;其中,所述延时丢弃表征丢弃所述第二已播节点数据的速度慢于丢弃所述第一已播节点数据的速度。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
依据预设规则,选择所述音轨队列中的其中一个为所述目标音轨队列。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
依据音频数据的帧数和/或码率确定所述目标音轨队列;
或依据默认设置,选择所述音轨队列中的其中一个为所述目标音轨队列。
8.一种音轨切换装置,其特征在于,所述装置包括:
缓存模块,用于将媒体数据中的多个音频数据分别缓存至对应的音轨队列中;其中,所述音轨队列包括一个目标音轨队列和至少一个待切换音轨队列,所述目标音轨队列中缓存有目标音频数据,所述待切换音轨队列中缓存有待播音频数据;
同步模块,用于在当前播放使用的音轨队列为所述目标音轨队时,将所述目标音频数据与所述待播音频数据进行播放同步处理;
获取模块,用于获取音轨切换指令;
切换模块,用于依据所述音轨切换指令,将当前播放的音轨队列从所述目标音轨队列切换为转换音轨队列;其中,所述转换音轨队列为所述待切换音轨队列中的其中一个。
9.根据权利要求8所述的装置,其特征在于,所述目标音频数据包括当前播放节点数据和第一已播节点数据,所述待播音频数据包括第二已播节点数据,所述第一已播节点数据与所述第二已播节点数据对应;
所述同步模块,还用于依据所述当前播放节点数据确定并丢弃所述第二已播节点数据,以使所述目标音频数据与所述待播音频数据保持同步。
10.根据权利要求9所述的装置,其特征在于,所述待播音频数据包括多个节点数据,每个所述节点数据对应设置有时间戳;
所述同步模块,还用于获取每个所述节点数据对应的时间戳和所述当前播放节点数据对应的时间戳;
所述同步模块,还用于针对每个所述节点数据,将所述节点数据对应的时间戳与所述当前播放节点数据对应的时间戳进行比较;
所述同步模块,还用于若所述节点数据对应的时间戳小于所述当前播放节点数据对应的时间戳,则确定为所述第二已播节点数据。
11.根据权利要求9所述的装置,其特征在于,所述同步模块,还用于将所述第一已播节点数据对应的时间戳与所述第二已播节点数据对应的时间戳进行比较;
所述同步模块,还用于若所述第一已播节点数据对应的时间戳大于所述第二已播节点数据对应的时间戳,则连续丢弃所述第二已播节点数据;其中,所述连续丢弃表征丢弃所述第二已播节点数据的速度快于丢弃所述第一已播节点数据的速度。
12.根据权利要求9所述的装置,其特征在于,所述同步模块,还用于将所述第一已播节点数据对应的时间戳与所述第二已播节点数据对应的时间戳进行比较;
所述同步模块,还用于若所述第一已播节点数据对应的时间戳小于所述第二已播节点数据对应的时间戳,则延时丢弃所述第二已播节点数据;其中,所述延时丢弃表征丢弃所述第二已播节点数据的速度慢于丢弃所述第一已播节点数据的速度。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述装置还包括:
确定模块,用于依据预设规则,选择所述音轨队列中的其中一个为所述目标音轨队列。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
确定模块,还用于依据音频数据的帧数和/或码率确定所述目标音轨队列;
或还用于依据默认设置,选择所述音轨队列中的其中一个为所述目标音轨队列。
15.一种媒体播放器,其特征在于,包括存储器以及一个或多个处理器,所述存储器用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器执行时,实现如权利要求1至7任意一项所述的方法。
16.一种计算机存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110826544.3A CN113596545A (zh) | 2021-07-21 | 2021-07-21 | 音轨切换方法、装置、媒体播放设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110826544.3A CN113596545A (zh) | 2021-07-21 | 2021-07-21 | 音轨切换方法、装置、媒体播放设备和计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113596545A true CN113596545A (zh) | 2021-11-02 |
Family
ID=78248894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110826544.3A Pending CN113596545A (zh) | 2021-07-21 | 2021-07-21 | 音轨切换方法、装置、媒体播放设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113596545A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422840A (zh) * | 2022-01-04 | 2022-04-29 | 海信视像科技股份有限公司 | 音轨切换的方法及装置 |
CN114630170A (zh) * | 2022-03-24 | 2022-06-14 | 北京字节跳动网络技术有限公司 | 一种音视频同步方法、装置、电子设备及存储介质 |
WO2023165371A1 (zh) * | 2022-03-02 | 2023-09-07 | 北京字节跳动网络技术有限公司 | 音频播放方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967901A (zh) * | 2015-06-29 | 2015-10-07 | 腾讯科技(北京)有限公司 | 媒体播放中的音轨切换方法和媒体播放设备 |
FR3026544A1 (zh) * | 2014-09-30 | 2016-04-01 | Theater Ears Llc | |
CN105933800A (zh) * | 2016-04-29 | 2016-09-07 | 联发科技(新加坡)私人有限公司 | 一种视频播放方法及其控制终端 |
CN105979347A (zh) * | 2015-12-03 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种视频的播放方法和装置 |
CN106921885A (zh) * | 2017-03-02 | 2017-07-04 | 深圳创维数字技术有限公司 | 一种多媒体数据流的切换播放方法及装置 |
CN109599133A (zh) * | 2018-12-18 | 2019-04-09 | 青岛海信电器股份有限公司 | 语言音轨的切换方法、装置、计算机设备及存储介质 |
-
2021
- 2021-07-21 CN CN202110826544.3A patent/CN113596545A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3026544A1 (zh) * | 2014-09-30 | 2016-04-01 | Theater Ears Llc | |
CN104967901A (zh) * | 2015-06-29 | 2015-10-07 | 腾讯科技(北京)有限公司 | 媒体播放中的音轨切换方法和媒体播放设备 |
CN105979347A (zh) * | 2015-12-03 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种视频的播放方法和装置 |
CN105933800A (zh) * | 2016-04-29 | 2016-09-07 | 联发科技(新加坡)私人有限公司 | 一种视频播放方法及其控制终端 |
CN106921885A (zh) * | 2017-03-02 | 2017-07-04 | 深圳创维数字技术有限公司 | 一种多媒体数据流的切换播放方法及装置 |
CN109599133A (zh) * | 2018-12-18 | 2019-04-09 | 青岛海信电器股份有限公司 | 语言音轨的切换方法、装置、计算机设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422840A (zh) * | 2022-01-04 | 2022-04-29 | 海信视像科技股份有限公司 | 音轨切换的方法及装置 |
WO2023165371A1 (zh) * | 2022-03-02 | 2023-09-07 | 北京字节跳动网络技术有限公司 | 音频播放方法、装置、电子设备及存储介质 |
CN114630170A (zh) * | 2022-03-24 | 2022-06-14 | 北京字节跳动网络技术有限公司 | 一种音视频同步方法、装置、电子设备及存储介质 |
CN114630170B (zh) * | 2022-03-24 | 2023-10-31 | 抖音视界有限公司 | 一种音视频同步方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113596545A (zh) | 音轨切换方法、装置、媒体播放设备和计算机存储介质 | |
CN109963184B (zh) | 一种音视频网络播放的方法、装置以及电子设备 | |
CN113423018B (zh) | 一种游戏数据处理方法、装置及存储介质 | |
CN109714634B (zh) | 一种直播数据流的解码同步方法、装置及设备 | |
CN109168078B (zh) | 一种视频清晰度切换方法及装置 | |
US10129587B2 (en) | Fast switching of synchronized media using time-stamp management | |
KR100929073B1 (ko) | 휴대 방송 시스템에서 다중 스트림 수신 장치 및 방법 | |
EP3850859B1 (en) | Dynamically adjusting video to improve synchronization with audio | |
WO2016015670A1 (zh) | 一种音频流解码方法及装置 | |
CN111601136B (zh) | 一种视频数据处理方法、装置、计算机设备及存储介质 | |
KR20080014843A (ko) | 쌍방향 미디어 응답 시스템에서 시각 단서를 제공하는 방법 | |
JP2015515208A (ja) | 相関したメディアプレゼンテーションの同期のためのバッファ管理方法 | |
WO2020155964A1 (zh) | 音视频的切换方法、装置、计算机设备及可读存储介质 | |
CN112822502A (zh) | 直播去抖动的智能缓存与直播方法、设备及存储介质 | |
CN105187896A (zh) | 多分段的媒体文件播放方法和系统 | |
CN112929713B (zh) | 数据同步方法、装置、终端及存储介质 | |
CN111669645A (zh) | 视频的播放方法、装置、电子设备及存储介质 | |
CN110519627B (zh) | 一种音频数据的同步方法和装置 | |
CN105187897B (zh) | 多分段的媒体文件跨段播放方法和系统 | |
CN114257857B (zh) | 显示设备及视频倍速播放方法 | |
CN114827679A (zh) | 显示设备和音画同步方法 | |
EP4040794A1 (en) | Systems and methods for adaptive output | |
US10321184B2 (en) | Electronic apparatus and controlling method thereof | |
WO2018076899A1 (zh) | 一种数据切换方法、装置、终端及计算机可读存储介质 | |
US20190387271A1 (en) | Image processing apparatus, image processing method, and program |
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 |