CN103780943B - 一种音轨切换的方法、设备及系统 - Google Patents
一种音轨切换的方法、设备及系统 Download PDFInfo
- Publication number
- CN103780943B CN103780943B CN201410036198.9A CN201410036198A CN103780943B CN 103780943 B CN103780943 B CN 103780943B CN 201410036198 A CN201410036198 A CN 201410036198A CN 103780943 B CN103780943 B CN 103780943B
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- video
- decoder
- track data
- 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
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明提供一种音轨切换的方法、设备及系统,其中,方法包括接收音轨切换的请求;停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;从文件或网络流中读取音轨切换过程中的新音轨数据发送给音频解码器的流缓冲区。该方法节省了内存的空间,对于内存配置较低的低端产品来说比较适用。并且可以保证音频的正常输出,避免卡顿的现象。由于读取的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,因此,不会出现音轨切换过程中有卡顿的现象,也不会出现短时间内没有音频输出。因此,可以实现音轨切换的平滑过渡。
Description
技术领域
本发明涉及信息处理技术领域,特别涉及一种音轨切换的方法、设备及系统。
背景技术
随着技术的发展,目前很多人使用电脑或者移动终端观看视频或者电影。为了满足更多用户的需求,现在同一部电影的媒体文件都包括多个音轨,每个音轨使用不同语言进行配音,例如,即包括中文的音轨,又包括英文的音轨。
当使用媒体播放器播放这种媒体文件时,用户选择不同的音轨时,将会涉及到音轨的切换,但是音轨切换时媒体文件播放的流畅度将直接影响用户的体验。
现有技术中,解码器包括流缓冲区和帧缓冲区。其中,流缓冲区用于存放待解码的数据;帧缓冲区用于存放解码后的数据。当媒体文件正常播放时,还需要用内存同时缓存其他所有音轨的数据。当切换音轨时,重启解码器并清空流缓冲区和帧缓冲区,将新音轨数据送入流缓冲区进行播放。
现有技术存在以下缺点,一是由于采用内存缓存所有音轨数据,这种方法将占用更多的内存,对于内存低的产品来说并不适用;二是,由于音轨切换时,视频处于正常的播放状态,当清空流缓冲区和帧缓冲区时,将造成音轨数据的暂时缺失,如果等待新音轨数据解码,音频和视频同步将可能造成卡顿现象,如果不等待新音轨数据,将造成短时间内没有音频输出。
因此,本领域技术人员需要提供一种音轨切换的方法,能够在音轨切换时,保证平滑切换,并且不会占用内存来缓存音轨数据。
发明内容
本发明实施例提供一种音轨切换的方法、设备及系统,能够在音轨切换时,保证平滑切换,并且不会占用内存来缓存音轨数据,释放了内存空间。
本发明实施例提供一种音轨切换的方法,包括以下步骤:
接收音轨切换的请求;
停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;
清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;
从文件或网络流中读取音轨切换过程中的新音轨数据发送给音频解码器的流缓冲区。
优选地,所述从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区,具体包括:
从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;
记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;
从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止读取的新音轨数据。
优选地,所述从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;之前,还包括:
从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
本发明实施例还提供一种音频切换设备,包括:接收单元、控制单元和数据读取单元;
所述接收单元,用于接收音频切换请求;
所述控制单元,用于当接收单元接收到音频切换请求后,停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;控制所述数据读取单元从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区。
优选地,所述数据读取单元包括:音轨数据显示时间戳读取子单元、视频数据显示时间戳读取子单元和发送子单元;
所述音轨数据显示时间戳读取子单元,用于从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;
所述视频数据显示时间戳读取子单元,用于记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;
所述发送子单元,从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止的新音轨数据。
优选地,所述数据读取单元还包括:数据读取子单元和丢弃子单元;
所述数据读取子单元,用于从所述文件或网络流中重新读取所述APTS与VPTS之间的视频数据和音轨数据;
所述丢弃子单元,用于从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
本发明实施例还提供一种音轨切换的系统,包括:播放器、音频解码器、视频解码器;
所述音频解码器包括音频流缓冲区和音频帧缓冲区,所述音频流缓冲区存放待解码的音轨数据,所述音频帧缓冲区存放解码后的音轨数据;
所述视频解码器包括视频流缓冲区和视频帧缓冲区,所述视频流缓冲区存放待解码的视频数据,所述视频帧缓冲区存放解码后的视频数据;
所述播放器,用于接收音轨切换的请求,停止发送视频数据给所述视频解码器和停止发送音轨数据给所述音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;还用于从文件或网络流读取切换过程中的新音轨数据发送给所述音频解码器的流缓冲区。
优选地,所述播放器还用于从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区,具体为:
从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止读取的新音轨数据。
优选地,所述播放器将从所述文件或网络流中读取的APTS和VPTS之间的新音轨数据发送给所述音频解码器的流缓冲区之前;
还用于:从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
以上技术方案,没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取新音轨数据,因此,节省了内存的空间,对于内存配置较低的低端产品来说比较适用。并且,本发明中没有清空音频解码器的帧缓冲区,可以继续输出音频解码器的帧缓冲区中的音轨数据,可以保证音频的正常输出,避免卡顿的现象。本实施例中将切换过程中的新音轨数据从文件或网络流中读取到音频解码器的流缓冲区。由于读取的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,因此,不会出现音轨切换过程中有卡顿的现象,也不会出现短时间内没有音频输出。因此,可以实现音轨切换的平滑过渡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的音轨切换的方法实施例一流程图;
图2是本发明提供的音轨切换的方法实施例二流程图;
图3是本发明提供的音轨切换的方法实施例三流程图;
图4是本发明提供的音轨切换设备实施例一示意图;
图5是本发明提供的音轨切换设备实施例二示意图;
图6是本发明提供的音轨切换设备实施例三意图;
图7是本发明提供的音轨切换系统实施例一示意图;
图8是本发明提供的用电设备结构示意图。
具体实施方式
需要说明的是,本发明实施例提供的一种音轨切换的方法、设备及系统,其中,方法包括接收音轨切换的请求;停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;从文件或网络流中读取音轨切换过程中的新音轨数据发送给音频解码器的流缓冲区。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
方法实施例一:
参见图1,该图为本发明提供的音轨切换的方法实施例一流程图。
本实施例提供的音轨切换的方法,包括以下步骤:
S101:接收音轨切换的请求;
可以理解的是,音轨切换的请求,一般都是由用户来触发的,例如,用户在观看影片时,点击按钮或者选项来选择自己需要的音轨,这样播放器就会接收到用户触发的音轨切换的请求,例如将音轨由中文切换为英文。
S102:停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;
当播放器接收到音轨切换的请求后,就会暂停分别向音频解码器和视频解码器发送音轨数据和视频数据,可以理解的是,该暂停是很短的,对于用户来说,人耳是辨别不出来有停顿的。
S103:清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;
与现有技术不同的,本发明实施例中并没有清空音频解码器的帧缓冲区,仅清空了音频解码器的流缓冲区,这是为了在音轨切换期间,继续输出音频解码器的帧缓冲区的音轨数据,可以保证音频的正常输出,避免卡顿的现象。当然,由于音频解码器的帧缓冲区很小,这样被切换前的音轨数据输出时间较短,用户不会感觉到有明显的延迟现象。
另外,可以理解的是,对于视频解码器的流缓冲区和帧缓冲区没有做任何改变,因为,音轨切换时,视频不受影响,视频数据一直在照常输出进行播放。
S104:从文件或网络流中读取音轨切换过程中的新音轨数据发送给音频解码器的流缓冲区。
需要说明的是,新音轨数据指的是切换后的目的音轨数据。切换前的音轨数据指的是旧音轨数据。
本实施例中是将音轨切换过程中的新音轨数据重新读取到音频解码器的流缓冲区进行播放。因为音轨切换过程中的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,这样对于用户来说就没有停顿。
本发明中并没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取视频数据和音轨数据。这样就避免了内存的占用,释放了内存空间,对于内存配置小的低端产品来说比较适用。
本发明实施例提供的音轨切换的方法,没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取新音轨数据,因此,节省了内存的空间,对于内存配置较低的低端产品来说比较适用。并且,本发明中没有清空音频解码器的帧缓冲区,可以继续输出音频解码器的帧缓冲区中的音轨数据,可以保证音频的正常输出,避免卡顿的现象。本实施例中将切换过程中的新音轨数据从文件或网络流中读取到音频解码器的流缓冲区。由于读取的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,因此,不会出现音轨切换过程中有卡顿的现象,也不会出现短时间内没有音频输出。因此,可以实现音轨切换的平滑过渡。
下面结合方法实施例二具体介绍从文件或网络流中读取切换过程中的新音轨数据的过程。
方法实施例二:
参见图2,该图为本发明提供的音轨切换的方法实施例二流程图。
本实施例中的S201-S203与方法实施例一中的S101-S103分别相同,在此不再赘述。
S204:从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;
由于本发明实施例中不清空音频解码器帧缓冲区中的音轨数据,因此,需要补充的新音轨数据就是在音频解码器流缓冲区中将要解码的下一帧音轨数据,因此,已经解码的音轨数据都会存放在帧缓冲区,只要补充流缓冲区中将要解码的下一帧音轨数据即可。
需要说明的是,当获取到音频解码器的流缓冲区中将要解码的下一帧音轨数据的APTS,便可以清空音频解码器的流缓冲区。
S205:记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;
此处的最后是指接收到音轨切换请求时,送入视频解码器的流缓冲区的最后一帧视频数据。
由于音频解码器和视频解码器是独立的,并且视频解码器在切换音轨时是不间断地播放视频的,因此,需要通过视频数据来判断需要补充的新音轨数据的截止时间戳。
并且,由于音轨数据和视频数据是交错读取的,因此,送入音频解码器的显示时间戳在APTS和VPTS之间的新音轨数据和视频数据是同步的。
S206:从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止读取的新音轨数据。
本实施例提供的方法利用显示时间戳从文件或网络流中重新读取APTS到VPTS之间的新音轨数据,例如原来是第一条音轨,现在切换为第二条音轨,则将APTS与VPTS之间的新音轨数据读取到音频解码器的流缓冲区。音轨切换过程完毕以后,播发器开始正常发送音轨数据和视频数据。
方法实施例三:
参见图3,该图为本发明提供的音轨切换的方法实施例三流程图。
本实施例中的S301-S305与方法实施例二中的S201-S205相同,区别是本实施例中增加S306;
即在S206从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;之前增加S306;
S306:从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
由于播放器从文件或网络流中读取音轨数据和视频数据是交错读取的,即读取一帧音轨时间,再读取一帧视频数据。因此,会将读取指针所对应的从APTS到VPTS之间的音轨数据和视频数据一起读取,由于现在需要补充的仅是读取指针从APTS到VPTS之间的新音轨数据,因此,将读取过来的视频数据和其他音轨数据直接丢弃即可,仅保留新音轨数据即可。
S307和S206相同,在此不再赘述。
综上,本发明提供的音轨切换方法实施例,可以实现减少音频数据和视频数据占用的内存,不需要专门的内存来缓存,而是直接从文件或网络流中读取音频数据和视频数据。另外,在音轨切换时,不清空音频解码器的帧缓冲区,继续播放音频解码器的帧缓冲区中的已经解码的音频数据。同时重新从文件或网络读取切换过程中还未播放的音频数据,进行新音轨的播放。这样可以避免音轨切换时,视频播放卡顿现象,提升用户的体验。
基于以上实施例提供的一种音轨切换的方法,本发明实施例还提供了一种音轨切换设备,下面结合附图来详细介绍。
设备实施例一:
参见图4,该图为本发明提供的音轨切换设备实施例一示意图。
本实施例提供的音轨切换设备,包括:接收单元400、控制单元500和数据读取单元600;
所述接收单元400,用于接收音频切换请求;
可以理解的是,音轨切换的请求,一般都是由用户来触发的,例如,用户在观看影片时,点击按钮或者选项来选择自己需要的音轨,这样播放器就会接收到用户触发的音轨切换的请求,例如将音轨由中文切换为英文。
所述控制单元500,用于当接收单元接收到音频切换请求后,停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;控制所述数据读取单元600从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区。
当播放器接收到音轨切换的请求后,就会暂停分别向音频解码器和视频解码器发送音轨数据和视频数据,可以理解的是,该暂停是很短的,对于用户来说,人耳是辨别不出来有停顿的。
与现有技术不同的,本发明实施例中并没有清空音频解码器的帧缓冲区,仅清空了音频解码器的流缓冲区,这是为了在音轨切换期间,继续输出音频解码器的帧缓冲区的音轨数据,可以保证音频的正常输出,避免卡顿的现象。当然,由于音频解码器的帧缓冲区很小,这样被切换前的音轨数据输出时间较短,用户不会感觉到有明显的延迟现象。
另外,可以理解的是,对于视频解码器的流缓冲区和帧缓冲区没有做任何改变,因为,音轨切换时,视频不受影响,视频数据一直在照常输出进行播放。
需要说明的是,新音轨数据指的是切换后的目的音轨数据。切换前的音轨数据指的是旧音轨数据。
本实施例中是将音轨切换过程中的新音轨数据重新读取到音频解码器的流缓冲区进行播放。因为音轨切换过程中的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,这样对于用户来说就没有停顿。
本发明中并没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取视频数据和音轨数据。这样就避免了内存的占用,释放了内存空间,对于内存配置小的低端产品来说比较适用。
本发明实施例提供的音轨切换的方法,没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取新音轨数据,因此,节省了内存的空间,对于内存配置较低的低端产品来说比较适用。并且,本发明中没有清空音频解码器的帧缓冲区,可以继续输出音频解码器的帧缓冲区中的音轨数据,可以保证音频的正常输出,避免卡顿的现象。本实施例中将切换过程中的新音轨数据从文件或网络流中读取到音频解码器的流缓冲区。由于读取的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,因此,不会出现音轨切换过程中有卡顿的现象,也不会出现短时间内没有音频输出。因此,可以实现音轨切换的平滑过渡。
设备实施例二:
参见图5,该图为本发明提供的音轨切换设备实施例二示意图。
本实施例提供的音频切换设备,所述数据读取单元600包括:音轨数据显示时间戳读取子单元601、视频数据显示时间戳读取子单元602和发送子单元603;
所述音轨数据显示时间戳读取子单元601,用于从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;
由于本发明实施例中不清空音频解码器帧缓冲区中的音轨数据,因此,需要补充的新音轨数据就是在音频解码器流缓冲区中将要解码的下一帧音轨数据,因此,已经解码的音轨数据都会存放在帧缓冲区,只要补充流缓冲区中将要解码的下一帧音轨数据即可。
需要说明的是,当获取到音频解码器的流缓冲区中将要解码的下一帧音轨数据的APTS,便可以清空音频解码器的流缓冲区。
所述视频数据显示时间戳读取子单元602,用于记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;
此处的最后是指接收到音轨切换请求时,送入视频解码器的流缓冲区的最后一帧视频数据。
由于音频解码器和视频解码器是独立的,并且视频解码器在切换音轨时是不间断地播放视频的,因此,需要通过视频数据来判断需要补充的新音轨数据的截止时间戳。
并且,由于音轨数据和视频数据是交错读取的,因此,送入音频解码器的显示时间戳在APTS和VPTS之间的新音轨数据和视频数据是同步的。
所述发送子单元603,从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止的新音轨数据。
本实施例提供的设备利用显示时间戳从文件或网络流中重新读取APTS到VPTS之间的新音轨数据,例如原来是第一条音轨,现在切换为第二条音轨,则将APTS与VPTS之间的新音轨数据读取到音频解码器的流缓冲区。音轨切换过程完毕以后,播放器开始正常发送音轨数据和视频数据。
设备实施例三:
参见图6,该图为本发明提供的音轨切换设备实施例三意图。
本发明实施例提供的音轨切换的设备,所述数据读取单元600还包括:数据读取子单元604和丢弃子单元605;
所述数据读取子单元604,用于从所述文件或网络流中重新读取所述APTS与VPTS之间的视频数据和音轨数据;
所述丢弃子单元605,用于从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
由于播放器从文件或网络流中读取音轨数据和视频数据是交错读取的,即读取一帧音轨时间,再读取一帧视频数据。因此,会将读取指针所对应的从APTS到VPTS之间的音轨数据和视频数据一起读取,由于现在需要补充的仅是读取指针从APTS到VPTS之间的新音轨数据,因此,将读取过来的视频数据和其他音轨数据直接丢弃即可,仅保留新音轨数据即可。
综上,本发明提供的音轨切换设备实施例,可以实现减少音频数据和视频数据占用的内存,不需要专门的内存来缓存,而是直接从文件或网络流中读取音频数据和视频数据。另外,在音轨切换时,不清空音频解码器的帧缓冲区,继续播放音频解码器的帧缓冲区中的已经解码的音频数据。同时重新从文件或网络读取切换过程中还未播放的音频数据,进行新音轨的播放。这样可以避免音轨切换时,视频播放卡顿现象,提升用户的体验。
基于以上实施例提供的音轨切换方法和设备,本发明还提供了一种音轨切换系统,下面结合附图对该音轨切换系统进行介绍。
系统实施例一:
参见图7,该图为本发明提供的音轨切换系统实施例一示意图。
本实施例提供的音轨切换的系统,包括:播放器700、音频解码器800、视频解码器900;
所述音频解码器800包括音频流缓冲区和音频帧缓冲区,所述音频流缓冲区存放待解码的音轨数据,所述音频帧缓冲区存放解码后的音轨数据;
所述视频解码器900包括视频流缓冲区和视频帧缓冲区,所述视频流缓冲区存放待解码的视频数据,所述视频帧缓冲区存放解码后的视频数据;
所述播放器700,用于接收音轨切换的请求,停止发送视频数据给所述视频解码器900和停止发送音轨数据给所述音频解码器800;清空音频解码器800的流缓冲区,不清空音频解码器800的帧缓冲区;还用于从文件或网络流读取切换过程中的新音轨数据发送给所述音频解码器的流缓冲区。
可以理解的是,音轨切换的请求,一般都是由用户来触发的,例如,用户在观看影片时,点击按钮或者选项来选择自己需要的音轨,这样播放器就会接收到用户触发的音轨切换的请求,例如将音轨由中文切换为英文。
当播放器接收到音轨切换的请求后,就会暂停分别向音频解码器和视频解码器发送音轨数据和视频数据,可以理解的是,该暂停是很短的,对于用户来说,人耳是辨别不出来有停顿的。
与现有技术不同的,本发明实施例中并没有清空音频解码器的帧缓冲区,仅清空了音频解码器的流缓冲区,这是为了在音轨切换期间,继续输出音频解码器的帧缓冲区的音轨数据,可以保证音频的正常输出,避免卡顿的现象。当然,由于音频解码器的帧缓冲区很小,这样被切换前的音轨数据输出时间较短,用户不会感觉到有明显的延迟现象。
另外,可以理解的是,对于视频解码器的流缓冲区和帧缓冲区没有做任何改变,因为,音轨切换时,视频不受影响,视频数据一直在照常输出进行播放。
需要说明的是,新音轨数据指的是切换后的目的音轨数据。切换前的音轨数据指的是旧音轨数据。
本实施例中是将音轨切换过程中的新音轨数据重新读取到音频解码器的流缓冲区进行播放。因为音轨切换过程中的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,这样对于用户来说就没有停顿。
本发明中并没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取视频数据和音轨数据。这样就避免了内存的占用,释放了内存空间,对于内存配置小的低端产品来说比较适用。
本发明实施例提供的音轨切换系统,没有设置专门的内存来缓存视频数据和音轨数据,而是直接从文件或网络流中来读取新音轨数据,因此,节省了内存的空间,对于内存配置较低的低端产品来说比较适用。并且,本发明中没有清空音频解码器的帧缓冲区,可以继续输出音频解码器的帧缓冲区中的音轨数据,可以保证音频的正常输出,避免卡顿的现象。本实施例中将切换过程中的新音轨数据从文件或网络流中读取到音频解码器的流缓冲区。由于读取的新音轨数据可以与音频解码器的帧缓冲区的音轨数据衔接上,因此,不会出现音轨切换过程中有卡顿的现象,也不会出现短时间内没有音频输出。因此,可以实现音轨切换的平滑过渡。
在本发明提供的另一种音轨切换系统中,所述播放器还用于从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区,具体为:
从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止读取的新音轨数据。
由于本发明实施例中不清空音频解码器帧缓冲区中的音轨数据,因此,需要补充的新音轨数据就是在音频解码器流缓冲区中将要解码的下一帧音轨数据,因此,已经解码的音轨数据都会存放在帧缓冲区,只要补充流缓冲区中将要解码的下一帧音轨数据即可。
需要说明的是,当获取到音频解码器的流缓冲区中将要解码的下一帧音轨数据的APTS,便可以清空音频解码器的流缓冲区。
此处的最后是指接收到音轨切换请求时,送入视频解码器的流缓冲区的最后一帧视频数据。
由于音频解码器和视频解码器是独立的,并且视频解码器在切换音轨时是不间断地播放视频的,因此,需要通过视频数据来判断需要补充的新音轨数据的截止时间戳。
并且,由于音轨数据和视频数据是交错读取的,因此,送入音频解码器的显示时间戳在APTS和VPTS之间的新音轨数据和视频数据是同步的。
本实施例提供的系统利用显示时间戳从文件或网络流中重新读取APTS到VPTS之间的新音轨数据,例如原来是第一条音轨,现在切换为第二条音轨,则将APTS与VPTS之间的新音轨数据读取到音频解码器的流缓冲区。音轨切换过程完毕以后,播发器开始正常发送音轨数据和视频数据。
在本发明提供另一种音轨切换系统中,所述播放器将从所述文件或网络流中读取的APTS和VPTS之间的新音轨数据发送给所述音频解码器的流缓冲区之前;
还用于:从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
由于播放器从文件或网络流中读取音轨数据和视频数据是交错读取的,即读取一帧音轨时间,再读取一帧视频数据。因此,会将读取指针所对应的从APTS到VPTS之间的音轨数据和视频数据一起读取,由于现在需要补充的仅是读取指针从APTS到VPTS之间的新音轨数据,因此,将读取过来的视频数据和其他音轨数据直接丢弃即可,仅保留新音轨数据即可。
综上,本发明提供的音轨切换系统实施例,可以实现减少音频数据和视频数据占用的内存,不需要专门的内存来缓存,而是直接从文件或网络流中读取音频数据和视频数据。另外,在音轨切换时,不清空音频解码器的帧缓冲区,继续播放音频解码器的帧缓冲区中的已经解码的音频数据。同时重新从文件或网络读取切换过程中还未播放的音频数据,进行新音轨的播放。这样可以避免音轨切换时,视频播放卡顿现象,提升用户的体验。
本发明实施例还提供了一种用电设备,下面结合附图来详细介绍其组成。
参见图8,本发明提供的用电设备结构示意图。
本发明实施例涉及的用电设备,所述用电设备可以包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑等。
以用电设备为手机为例,图8示出的是与本发明实施例相关的手机1000的部分结构的框图。
参考图8,手机1000包括处理器1000a、输入单元1000b、显示单元1000c、存储器1000d和电池1000e。
处理器1000a是手机1000的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1000d内的软件程序和/或模块,以及调用存储在存储器100d内的数据,执行手机1000的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1000a可包括一个或多个处理单元;优选的,处理器1000a可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1000a中。
本实施例中,处理器1000a接收音轨切换的请求;停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;从文件或网络流中读取音轨切换过程中的新音轨数据发送给音频解码器的流缓冲区。
输入单元1000b可用于接收用户发送的切换音轨的请求。
具体地,输入单元1000b可包括触控面板1000b1以及其他输入设备1000b2。触控面板1000b1,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1000b1上或在触控面板1000b1附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1000b1可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1000a,并能接收处理器1000a发来的命令并加以执行。
此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1000b1。
除了触控面板1000b1,输入单元1000b还可以包括其他输入设备1000b2。具体地,其他输入设备1000b2可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
用户可以通过显示单元1000c来观看影片的播放。
显示单元1000c可包括显示面板1000c1,可选的,可以采用LCD(Liquid CrystalDisplay,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板1000c1。
进一步的,触控面板1000b1可覆盖显示面板1000c1,当触控面板1000b1检测到在其上或附近的触摸操作后,传送给处理器1000a以确定触摸事件的类型,随后处理器1000a根据触摸事件的类型在显示面板1000c1上提供相应的视觉输出。
虽然在图8中,触控面板1000b1与显示面板1000c1是作为两个独立的部件来实现手机1000的输入和输入功能,但是在某些实施例中,可以将触控面板1000b1与显示面板1000c1集成而实现手机100的输入和输出功能。
在上述实施例中,中央处理器203具体可以是英特尔公司生产的奔腾系列处理器或安腾处理器等。
在上述发明实施例中,移动终端包括但不限于手机、个人数字助理(PersonalDigital Assistant,PDA)、平板电脑等移动通讯设备。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (9)
1.一种音轨切换的方法,其特征在于,包括以下步骤:
接收音轨切换的请求;
停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;
清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;
从文件或网络流中读取音轨切换过程中的新音轨数据发送给音频解码器的流缓冲区。
2.根据权利要求1所述的音轨切换的方法,其特征在于,所述从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区,具体包括:
从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;
记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;
从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止读取的新音轨数据。
3.根据权利要求2所述的音轨切换的方法,其特征在于,所述从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;之前,还包括:
从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
4.一种音频切换设备,其特征在于,包括:接收单元、控制单元和数据读取单元;
所述接收单元,用于接收音频切换请求;
所述控制单元,用于当接收单元接收到音频切换请求后,停止发送视频数据给视频解码器和停止发送音轨数据给音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;控制所述数据读取单元从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区。
5.根据权利要求4所述的音频切换设备,其特征在于,所述数据读取单元包括:音轨数据显示时间戳读取子单元、视频数据显示时间戳读取子单元和发送子单元;
所述音轨数据显示时间戳读取子单元,用于从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;
所述视频数据显示时间戳读取子单元,用于记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;
所述发送子单元,从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止的新音轨数据。
6.根据权利要求5所述的音频切换设备,其特征在于,所述数据读取单元还包括:数据读取子单元和丢弃子单元;
所述数据读取子单元,用于从所述文件或网络流中重新读取所述APTS与VPTS之间的视频数据和音轨数据;
所述丢弃子单元,用于从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
7.一种音轨切换的系统,其特征在于,包括:播放器、音频解码器、视频解码器;
所述音频解码器包括音频流缓冲区和音频帧缓冲区,所述音频流缓冲区存放待解码的音轨数据,所述音频帧缓冲区存放解码后的音轨数据;
所述视频解码器包括视频流缓冲区和视频帧缓冲区,所述视频流缓冲区存放待解码的视频数据,所述视频帧缓冲区存放解码后的视频数据;
所述播放器,用于接收音轨切换的请求,停止发送视频数据给所述视频解码器和停止发送音轨数据给所述音频解码器;清空音频解码器的流缓冲区,不清空音频解码器的帧缓冲区;还用于从文件或网络流读取切换过程中的新音轨数据发送给所述音频解码器的流缓冲区。
8.根据权利要求7所述的音轨切换的系统,其特征在于,所述播放器还用于从文件或网络流读取切换过程中的新音轨数据发送给音频解码器的流缓冲区,具体为:
从所述音频解码器的流缓冲区中获取将要解码的下一帧音轨数据的显示时间戳APTS;记录最后发送给视频解码器的流缓冲区的一帧视频数据的显示时间戳VPTS;从所述文件或网络流中读取新音轨数据发送给所述音频解码器的流缓冲区;所述新音轨数据为读取指针从所述APTS对应的位置开始,直到读取指针等于VPTS为止读取的新音轨数据。
9.根据权利要求8所述的音轨切换的系统,其特征在于,所述播放器将从所述文件或网络流中读取的APTS和VPTS之间的新音轨数据发送给所述音频解码器的流缓冲区之前;
还用于:从所述文件或网络流中利用读取指针重新读取所述APTS对应的位置开始直到等于VPTS为止的视频数据和音轨数据,将所述APTS与VPTS之间的视频数据丢弃,将所述APTS与VPTS之间的新音轨数据之外的音轨数据丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410036198.9A CN103780943B (zh) | 2014-01-24 | 2014-01-24 | 一种音轨切换的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410036198.9A CN103780943B (zh) | 2014-01-24 | 2014-01-24 | 一种音轨切换的方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103780943A CN103780943A (zh) | 2014-05-07 |
CN103780943B true CN103780943B (zh) | 2017-04-12 |
Family
ID=50572702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410036198.9A Active CN103780943B (zh) | 2014-01-24 | 2014-01-24 | 一种音轨切换的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103780943B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967901B (zh) * | 2015-06-29 | 2018-05-04 | 腾讯科技(北京)有限公司 | 媒体播放中的音轨切换方法和媒体播放设备 |
CN105979347A (zh) * | 2015-12-03 | 2016-09-28 | 乐视致新电子科技(天津)有限公司 | 一种视频的播放方法和装置 |
CN106210927A (zh) * | 2016-09-05 | 2016-12-07 | 青岛海信电器股份有限公司 | 一种音轨切换方法和装置 |
CN106559572B (zh) * | 2016-11-15 | 2020-12-01 | 泾县谷声信息科技有限公司 | 杂音定位方法及装置 |
CN108459837A (zh) * | 2017-02-22 | 2018-08-28 | 深圳市中兴微电子技术有限公司 | 一种音频数据处理方法和装置 |
CN106921885B (zh) * | 2017-03-02 | 2020-03-03 | 深圳创维数字技术有限公司 | 一种多媒体数据流的切换播放方法及装置 |
CN107071549A (zh) * | 2017-05-05 | 2017-08-18 | 深圳Tcl数字技术有限公司 | 单解码器下多播放器快速切换方法、装置及存储介质 |
CN107861707B (zh) * | 2017-12-08 | 2021-07-20 | 北京酷我科技有限公司 | 一种全景音效的数据同步提供方法 |
CN109445739B (zh) * | 2018-09-30 | 2020-05-19 | Oppo广东移动通信有限公司 | 音频播放方法、装置、电子设备及计算机可读介质 |
CN109599133B (zh) * | 2018-12-18 | 2020-11-24 | 海信视像科技股份有限公司 | 语言音轨的切换方法、装置、计算机设备及存储介质 |
CN111601158B (zh) * | 2020-05-14 | 2021-11-02 | 青岛海信传媒网络技术有限公司 | 一种流媒体管道切音轨的优化方法及显示设备 |
CN114422840A (zh) * | 2022-01-04 | 2022-04-29 | 海信视像科技股份有限公司 | 音轨切换的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483782A (zh) * | 2008-01-11 | 2009-07-15 | 株式会社日立制作所 | 数字广播接收装置以及数字广播接收方法 |
CN103179450A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、系统及音轨服务器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9762774B2 (en) * | 2011-08-12 | 2017-09-12 | Samsung Electronics Co., Ltd. | Receiving apparatus and receiving method thereof |
-
2014
- 2014-01-24 CN CN201410036198.9A patent/CN103780943B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101483782A (zh) * | 2008-01-11 | 2009-07-15 | 株式会社日立制作所 | 数字广播接收装置以及数字广播接收方法 |
CN103179450A (zh) * | 2011-12-23 | 2013-06-26 | 腾讯科技(深圳)有限公司 | 一种视频播放方法、装置、系统及音轨服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN103780943A (zh) | 2014-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103780943B (zh) | 一种音轨切换的方法、设备及系统 | |
US9554186B2 (en) | Method and an electronic device for playback of video | |
TWI558146B (zh) | Screen sharing methods and related equipment and communication systems | |
CN108737908B (zh) | 一种媒体播放方法、装置及存储介质 | |
CN105979355A (zh) | 一种播放视频的方法及装置 | |
CN102073403B (zh) | 触摸感应装置和用于提供侧触摸板的方法 | |
US9906692B2 (en) | Media stream sharing method and terminal | |
US20160191997A1 (en) | Method and an electronic device for browsing video content | |
CN103024490A (zh) | 一种支持音频和视频独立播放的方法及设备 | |
EP2863606B1 (en) | Electronic apparatus and communication control method | |
WO2011124075A1 (zh) | 一种视频处理方法及终端 | |
CN103544977B (zh) | 基于触摸控制的视频定位装置和方法 | |
WO2018036352A1 (zh) | 视频数据的编解码方法、装置、系统及存储介质 | |
CN103151057A (zh) | 音乐播放方法及第三方应用 | |
CN101090490B (zh) | 用于无中断媒体改变的方法和系统 | |
CN110248233B (zh) | 一种音视频播放方法、装置、设备及存储介质 | |
US20160337429A1 (en) | Method and device for resumed playback of streamed media | |
CN104811812A (zh) | 音视频播放进度的控制方法、装置、和系统 | |
CN103533437A (zh) | 一种智能电视的频道切换方法及装置 | |
CN103686335A (zh) | 一种信息处理方法及电子设备 | |
CN102768840A (zh) | 一种视频播放控制方法和终端设备 | |
CN101783864A (zh) | 一种手持式无线多功能播演系统 | |
CN103686248A (zh) | 背景音乐播放方法及系统 | |
CN113873187B (zh) | 跨终端录屏方法、终端设备及存储介质 | |
CN103179277A (zh) | 手机音视频播放模式切换方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |