一种视频播放方法、装置、设备及存储介质制造方法及图纸

技术编号:22367065 阅读:44 留言:0更新日期:2019-10-23 05:39
本申请涉及一种视频播放方法、装置、设备及存储介质,所述方法包括:响应于视频播放指令,获取待播放资源,将所述待播放资源存入第一缓存队列;从所述第一缓存队列中确定当前读取的图像帧为目标图像帧;将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码;当对所述目标图像帧解码失败时,将所述第二缓存队列中的各图像帧插入到所述第一缓存队列的头部;获取相应的目标音频数据;重复执行图像帧缓存和图像帧解码操作,直至对所述目标图像帧解码成功;显示解码成功后的图像以及播放所述目标音频数据。本发明专利技术避免了在视频播放过程中由于解码失败导致的画面和声音不同步的现象,加快了画面的显示速度。

A video playing method, device, equipment and storage medium

【技术实现步骤摘要】
一种视频播放方法、装置、设备及存储介质
本申请涉及视频处理
,尤其涉及一种视频播放方法、装置、设备及存储介质。
技术介绍
视频解码是对已编码的数字视频进行还原解码操作的过程,在对视频数据进行播放时,需要通过视频解码器对待播放的视频数据进行解码,当解码成功时,才可以播放待播放视频数据。视频解码可分为硬解码和软解码,软解码是指使用CPU进行解码的操作过程,硬解码是指使用非CPU进行解码的操作过程。在使用硬解码进行视频解码时,由于各种原因可能会出现硬解失败的情况,从而导致视频画面卡住不动而声音继续播放的现象,在此情况下如果不处理解码失败错误而继续解码会导致后续解码失败。
技术实现思路
本申请所要解决的技术问题在于,提供一种视频播放方法、装置、设备及存储介质,能够通过将正在解码的图像帧放入缓存队列中,当解码器对当前的图像帧解码失败时,重启解码器并从缓存队列中拿出图像帧进行重新解码,以实现对解码失败的视频的继续播放。为了解决上述技术问题,一方面,本申请提供了一种视频播放方法,所述方法包括:响应于视频播放指令,获取待播放资源,将所述待播放资源存入第一缓存队列;所述待播放资源包括若干图像组以及相应的音频数据,每个图像组包括若干图像帧;从所述第一缓存队列中确定当前读取的图像帧为目标图像帧;将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码;当对所述目标图像帧解码失败时,将所述第二缓存队列中的各图像帧插入到所述第一缓存队列的头部;确定所述目标图像帧所在的图像组为目标图像组,获取与所述目标图像组对应的目标音频数据;以所述第一缓存队列的头部的图像帧作为所述目标图像帧,重复执行步骤:将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码,直至对所述目标图像帧解码成功;显示解码成功后的图像以及播放所述目标音频数据。另一方面,本申请提供了一种视频播放装置,所述装置包括:播放指令响应模块,用于响应于视频播放指令,获取待播放资源,将所述待播放资源存入第一缓存队列;所述待播放资源包括若干图像组以及相应的音频数据,每个图像组包括若干图像帧;目标图像帧确定模块,用于从所述第一缓存队列中确定当前读取的图像帧为目标图像帧;缓存解码模块,用于将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码;循环执行模块,用于当对所述目标图像帧解码失败时,将所述第二缓存队列中的各图像帧插入到所述第一缓存队列的头部;确定所述目标图像帧所在的图像组为目标图像组,获取与所述目标图像组对应的目标音频数据;以所述第一缓存队列的头部的图像帧作为所述目标图像帧,重复执行步骤:将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码,直至对所述目标图像帧解码成功;显示解码成功后的图像以及播放所述目标音频数据。另一方面,本申请还提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述的视频播放方法。另一方面,本申请还提供了一种计算机存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行如上述的视频播放方法。本申请通过确定从第一缓存队列中读取的当前图像帧为目标图像帧,将目标图像帧存入第二缓存队列并对目标图像帧进行解码;当对目标图像帧解码失败时,将第二缓存队列中的各图像帧插入第一缓存队列的头部,获取与目标图像帧所在的图像组对应的目标音频数据;以第一缓存队列头部的图像帧为目标图像帧,重复执行缓存和解码步骤,直至对目标图像帧解码成功;并显示解码成功后的图像以及播放所述目标音频数据。本专利技术避免了在视频播放过程中由于解码失败导致的画面和声音不同步的现象,加快了画面的显示速度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。图1是本申请实施例提供的应用场景示意图;图2是本申请实施例提供的一种视频播放方法流程图;图3是本申请实施例提供的一种图像帧读取方法流程图;图4是本申请实施例提供的一种目标图像帧缓存方法流程图;图5是本申请实施例提供的一种音频数据获取方法流程图;图6是本申请实施例提供的第一示例示意图;图7是本申请实施例提供的第二示例示意图;图8是本申请实施例提供的第三示例示意图;图9是本申请实施例提供的一种视频播放装置示意图;图10是本申请实施例提供的目标图像帧确定模块示意图;图11是本申请实施例提供的缓存解码模块示意图;图12是本申请实施例提供的循环执行模块示意图;图13是本申请实施例提供的音频处理模块示意图;图14是本申请实施例提供的一种设备结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。在本申请的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。而且,术语“第一”、“第二”等适用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。请参见图1,其示出了本申请实施例提供的应用场景示意图,该场景包括:至少一个视频播放终端110和视频播放服务器120,所述视频播放终端110和所述视频播放服务器120可通过网络进行数据通信。具体地,所述视频播放终端110可接收视频播放服务器120发送的待播放资源,视频播放终端110可对待播放资源进行解码播放;或者视频播放服务器120对待播放资源进行解码,并将解码后的视频数据发送给视频播放终端110进行播放。所述视频播放终端110可以基于浏览器/服务器模式(Browser/Server,B/S)或客户端/服务器模式(Client/Server,C/S)与视频播放服务器120进行通信。所述视频播放终端110可以包括:智能手机、平板电脑、笔记本电脑、数字助理、智能可穿戴设备、车载终端等类型的实体设备,也可以包括运行于实体设备中的软体,例如应用程序等。比如,所述终端可以运行视频播放器软体,带有视频播放功能的社交软体等。本申请实施例中视频播放终端110上运行的操作系统可以包括但不限于安卓系统、IOS系统、linux、windows等。所述视频播放服务器120与所述视频播放终端110可以通过有线或者无线建立通信连接,该视频播放服务器120可以包括一个独立运行的服务器,或者分布式服务器,或者由多个服务器组成的服务器集群,其中服务器可以是云端服务器。在视频播放过程中,由于某些原因可能会导致视本文档来自技高网...

【技术保护点】
1.一种视频播放方法,其特征在于,包括:响应于视频播放指令,获取待播放资源,将所述待播放资源存入第一缓存队列;所述待播放资源包括若干图像组以及相应的音频数据,每个图像组包括若干图像帧;从所述第一缓存队列中确定当前读取的图像帧为目标图像帧;将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码;当对所述目标图像帧解码失败时,将所述第二缓存队列中的各图像帧插入到所述第一缓存队列的头部;确定所述目标图像帧所在的图像组为目标图像组,获取与所述目标图像组对应的目标音频数据;以所述第一缓存队列的头部的图像帧作为所述目标图像帧,重复执行步骤:将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码,直至对所述目标图像帧解码成功;显示解码成功后的图像以及播放所述目标音频数据。

【技术特征摘要】
1.一种视频播放方法,其特征在于,包括:响应于视频播放指令,获取待播放资源,将所述待播放资源存入第一缓存队列;所述待播放资源包括若干图像组以及相应的音频数据,每个图像组包括若干图像帧;从所述第一缓存队列中确定当前读取的图像帧为目标图像帧;将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码;当对所述目标图像帧解码失败时,将所述第二缓存队列中的各图像帧插入到所述第一缓存队列的头部;确定所述目标图像帧所在的图像组为目标图像组,获取与所述目标图像组对应的目标音频数据;以所述第一缓存队列的头部的图像帧作为所述目标图像帧,重复执行步骤:将所述目标图像帧存入第二缓存队列,对所述目标图像帧进行解码,直至对所述目标图像帧解码成功;显示解码成功后的图像以及播放所述目标音频数据。2.根据权利要求1所述的一种视频播放方法,其特征在于,所述从所述第一缓存队列中确定当前读取的图像帧为目标图像帧包括:每次从所述第一缓存队列的头部读取一个图像帧,并确定读取的所述图像帧为所述目标图像帧;将已被读取的图像帧从所述第一缓存队列中删除。3.根据权利要求1所述的一种视频播放方法,其特征在于,所述方法还包括:当对所述目标图像帧解码成功时,显示解码成功后的图像以及播放与所述目标图像帧对应的音频数据。4.根据权利要求1所述的一种视频播放方法,其特征在于,每个图像组均包括一个关键帧,所述关键帧处于所述图像组的第一帧的位置;所述将所述目标图像帧存入第二缓存队列包括:判断所述目标图像帧是否为所述关键帧;当所述目标图像帧为所述关键帧时,清空所述第二缓存队列,将所述目标图像帧存入清空后的所述第二缓存队列;当所述目标图像帧不为所述关键帧时,将所述目标图像帧存到所述第二缓存队列的尾部。5.根据权利要求4所述的一种视频播放方法,其特征在于,所述第二缓存队列中至少包括所述目标图像组中的关键帧;所述当对所述目标图像帧解码失败时,将所述第二缓存队列中的各图像帧插入到所述第一缓存队列的头部包括:从所述第二缓存队列的尾...

【专利技术属性】
技术研发人员:冯星
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1