CN115643454A - 显示设备、视频播放方法及其装置 - Google Patents
显示设备、视频播放方法及其装置 Download PDFInfo
- Publication number
- CN115643454A CN115643454A CN202110815395.0A CN202110815395A CN115643454A CN 115643454 A CN115643454 A CN 115643454A CN 202110815395 A CN202110815395 A CN 202110815395A CN 115643454 A CN115643454 A CN 115643454A
- Authority
- CN
- China
- Prior art keywords
- video
- target
- frame
- played
- timestamp
- 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
Abstract
本申请提供实施例,属于显示技术,提供一种显示设备、视频播放方法及其装置,显示设备包括控制器和显示器;控制器被配置为:在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;清空视频基本流队列中视频帧;以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码;将解码后的视频帧发送给显示器显示。在本申请中,以目标关键帧为第一个视频帧进行解码,避免了显示出现花屏的问题,提高了显示设备的显示质量。此外,在确定目标关键帧的时候,对视频基本流队列中的视频帧进行解码播放,在用户跳转视频时,不会出现播放暂停的问题,提高了用户的观看视频体验。
Description
技术领域
本申请涉及显示技术。更具体地讲,涉及一种显示设备、视频播放方法及其装置。
背景技术
目前,当显示设备正在播放视频时,用户会对播放视频具有一些特殊要求,例如:跳转播放、快进播放或者快退播放。其中,跳转播放是指将视频跳转到用户指定的时间开始播放视频;快进播放、快退播放是指抽取部分帧进行播放。
但发明人在研究过程中发现,采用上述方式播放视频,会存在显示花屏的问题。
发明内容
本申请示例性的实施方式提供一种显示设备、视频播放方法及其装置,可有效的解决视频在跳转播放时,出现花屏的问题。
第一方面,本申请实施例一种显示设备,包括:控制器和显示器;控制器被配置为:
在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;
清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;
以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;
将解码后的视频帧发送给显示器显示。
在一些可能的实现方式中,控制器在根据目标时间戳,确定待播放的目标关键帧时,具体用于:
基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,索引表中包含关键帧的时间戳与关键帧的偏移地址;
确定第一时间戳对应的偏移地址为目标偏移地址;
确定目标偏移地址对应的关键帧为目标关键帧。
在一些可能的实现方式中,基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,包括:
采用二分法,在索引表中确定与目标时间戳的时间差小于预设阈值的第一时间戳。
在一些可能的实现方式中,控制器在播放视频之前,还用于:
获取视频文件,对视频文件进行解复用,得到多个视频帧;
遍历多个视频帧,确定多个视频帧中的关键帧;
基于各关键帧的时间戳和偏移地址,创建索引表。
在一些可能的实现方式中,若播放指令为快进播放指令或快退播放指令,则播放指令还携带播放倍速,目标时间戳为当前播放的视频帧对应的时间戳;
控制器在以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码之前,还用于:
根据播放倍速以及目标时间戳,在索引表中确定多个第二时间戳;
确定第二时间戳对应的待播放关键帧;
根据播放倍速,确定相邻待播放关键帧之间的普通视频帧;
将待播放关键帧和普通视频帧作为待播放的视频帧。
在一些可能的实现方式中,述播放指令包括:跳转播放指令,待播放的视频帧为时间戳大于或等于目标关键帧的时间戳的各个视频帧。
第二方面,本申请实施例提供一种视频播放方法,应用于显示设备,该视频播放方法包括:
在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;
清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;
以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;
将解码后的视频帧发送给显示器显示。
在一些可能的实现方式中,根据目标时间戳,确定待播放的目标关键帧,包括:
基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,索引表中包含关键帧的时间戳与关键帧的偏移地址;
确定第一时间戳对应的偏移地址为目标偏移地址;
确定目标偏移地址对应的关键帧为目标关键帧。
在一些可能的实现方式中,基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,包括:
采用二分法,在索引表中确定与目标时间戳的时间差小于预设阈值的第一时间戳。
在一些可能的实现方式中,在播放视频之前,还包括:
获取视频文件,对视频文件进行解复用,得到多个视频帧;
遍历多个视频帧,确定多个视频帧中的关键帧;
基于各关键帧的时间戳和偏移地址,创建索引表。
在一些可能的实现方式中,若播放指令为快进播放指令或快退播放指令,则播放指令还携带播放倍速,目标时间戳为当前播放的视频帧对应的时间戳;
以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码之前,还包括:
根据播放倍速以及目标时间戳,在索引表中确定多个第二时间戳;
确定第二时间戳对应的待播放关键帧;
根据播放倍速,确定相邻待播放关键帧之间的普通视频帧;
将待播放关键帧和普通视频帧作为待播放的视频帧。
在一些可能的实现方式中,播放指令包括:跳转播放指令,待播放的视频帧为时间戳大于或等于目标关键帧的时间戳的各个视频帧。
第三方面,本申请实施例提供一种视频播放装置,应用于显示设备,视频播放装置包括:
确定模块,用于在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;
清空模块,用于清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;
缓存解码模块,用于以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;
发送模块,用于将解码后的视频帧发送给显示器显示。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序指令,计算机程序指令被执行时,实现如本申请第二方面的任一视频播放方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如本申请第二方面的任一视频播放方法。
本申请提供的显示设备、视频播放方法及装置,显示设备包括控制器和显示器;控制器被配置为:在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;将解码后的视频帧发送给显示器显示。在本申请中,以目标关键帧为第一个视频帧进行解码,可以使解码器能够获取到目标关键帧中的关键信息进行解码器的配置,进而对目标关键帧以及目标关键帧后的视频帧进行正确解码,避免了显示出现花屏的问题,提高了显示设备的显示质量。此外,在确定目标关键帧的时候,依旧对视频基本流队列中的视频帧进行解码播放,在用户跳转视频时,不会出现播放暂停的问题,提高了用户的观看视频体验。
附图说明
为了更清楚地说明本申请实施例或相关技术中的实施方式,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1中示例性示出了根据实施例中显示设备与用户之间操作场景的示意图;
图2中示例性示出了根据示例性实施例中显示设备的硬件配置框图;
图3为本申请一实施例提供的控制器的结构框图;
图4为本申请一实施例提供的查找跳转视频帧的流程图;
图5为本申请一实施例提供的在多个视频帧中确定跳转视频帧的示意图;
图6为本申请一实施例提供的视频播放方法的流程图;
图7为本申请一实施例提供的视频播放方法的界面示意图;
图8为本申请另一实施例提供的视频播放方法的流程图;
图9为本申请一实施例提供的索引表中确定第二时间戳的流程图;
图10为本申请一实施例提供的索引表中确定第二时间戳的示意图;
图11为本申请一实施例提供的视频文件的各个视频帧的示意图;
图12为本申请一实施例提供的视频播放装置的结构示意图。
具体实施方式
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
基于本申请描述的示例性实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请所附权利要求保护的范围。此外,虽然本申请中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语″第一″、″第二″、″第三″等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明(Unless otherwise indicated)。应该理解这样使用的用语在适当情况下可以互换,例如能够根据本申请实施例图示或描述中给出那些以外的顺序实施。
此外,术语″包括″和″具有″以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的那些组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
本申请中使用的术语″模块″,是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
图1中示例性示出了根据实施例中显示设备与用户之间操作场景的示意图。如图1中示出,用户可通过触摸笔100在显示设备200的电容触摸屏上进行书写操作,显示设备200的处理器根据电容触摸屏上的触摸操作,确定触摸点。
如图1中还示出,显示设备200还与服务器400通过多种通信方式进行数据通信。可允许显示设备200通过局域网(LAN)、无线局域网(WLAN)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。示例的,显示设备200通过发送和接收信息,以及电子节目指南(EPG)互动,接收软件程序更新,或访问远程储存的数字媒体库。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。通过服务器400提供视频点播和广告服务等其他网络服务内容。
本申请实施例不对具体显示设备200的类型,尺寸大小和分辨率等不作限定,本领技术人员可以理解的是,显示设备200可以根据需要做性能和配置上一些改变。
图2中示例性示出了根据示例性实施例中显示设备200的硬件配置框图。
在一些实施例中,显示设备200中包括控制器250、调谐解调器210、通信器220、检测器230、输入/输出接口255、显示器275,音频输出接口285、存储器260、供电电源290、用户接口265、外部装置接口240中的至少一种。
在一些实施例中,显示器275,用于接收源自第一处理器输出的图像信号,进行显示视频内容和图像以及菜单操控界面的组件。
在一些实施例中,显示器275,包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件。
在一些实施例中,显示视频内容,可显示来自网络通信协议接收来自网络服务器端发送的各种图像内容。
在一些实施例中,显示器275用于呈现显示设备200中产生且用于控制显示设备200的用户操控UI界面。
在一些实施例中,根据显示器275类型不同,还包括用于驱动显示的驱动组件。
在一些实施例中,通信器220是用于根据各种通信协议类型与外部设备或外部服务器进行通信的组件。例如:通信器可以包括Wifi芯片,蓝牙通信协议芯片,有线以太网通信协议芯片等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。
在一些实施例中,显示设备200可以通过通信器220与外部控制设备或内容提供设备之间建立控制信号和数据信号发送和接收。
在一些实施例中,用户接口265,可用于接收控制装置(如:红外遥控器等)红外控制信号。
在一些实施例中,检测器230是显示设备200用于采集外部环境或与外部交互的信号。
在一些实施例中,检测器230包括光接收器,用于采集环境光线强度的传感器,可以通过采集环境光可以自适应性显示参数变化等。
在一些实施例中,检测器230还可以包括温度传感器等,如通过感测环境温度。
在一些实施例中,显示设备200可自适应调整图像的显示色温。如当温度偏高的环境时,可调整显示设备200显示图像色温偏冷色调,或当温度偏低的环境时,可以调整显示设备200显示图像偏暖色调。
在一些实施例中,检测器230还可声音采集器等,如麦克风,可以用于接收用户的声音。示例性的,包括用户控制显示设备200的控制指令的语音信号,或采集环境声音,用于识别环境场景类型,使得显示设备200可以自适应适应环境噪声。
在一些实施例中,如图2所示,输入/输出接口255被配置为,可进行控制器250与外部其他设备或其他控制器250之间的数据传输。如接收外部设备的视频信号数据和音频信号数据、或命令指令数据等。
在一些实施例中,外部装置接口240可以包括,但不限于如下:可以高清多媒体接口HDMI接口、模拟或数据高清分量输入接口、复合视频输入接口、USB输入接口、RGB端口等任一个或多个接口。也可以是上述多个接口形成复合性的输入/输出接口。
在一些实施例中,如图2所示,调谐解调器210被配置为,通过有线或无线接收方式接收广播电视信号,可以进行放大、混频和谐振等调制解调处理,从多多个无线或有线广播电视信号中解调出音视频信号,该音视频信号可以包括用户所选择电视频道频率中所携带的电视音视频信号,以及EPG数据信号。
在一些实施例中,调谐解调器210解调的频点受到控制器250的控制,控制器250可根据用户选择发出控制信号,以使的调制解调器响应用户选择的电视信号频率以及调制解调该频率所携带的电视信号。
在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250可以控制显示设备200的整体操作。例如:响应于接收到用于选择在显示器275上显示UI对象的用户命令,控制器250便可以执行与由用户命令选择的对象有关的操作。
在一些实施例中,对象可以是可选对象中的任何一个,例如超链接或图标。与所选择的对象有关操作,例如:显示连接到超链接页面、文档、图像等操作,或者执行与图标相对应程序的操作。用于选择UI对象用户命令,可以是通过连接到显示设备200的各种输入装置(例如,鼠标、键盘、触摸板等)输入命令或者与由用户说出语音相对应的语音命令。
如图2所示,控制器250包括随机存取存储器251(Random Access Memory,RAM)、只读存储器252(Read-Only Memory,ROM)、视频播放器270、音频处理器280、其他处理器253(例如:图形处理器(Graphics Processing Unit,GPU)、处理器254(Central ProcessingUnit,CPU)、通信接口(Communication Interface),以及通信总线256(Bus)中的至少一种。其中,通信总线连接各个部件。
在一些实施例中,RAM 251用于存储操作系统或其他正在运行中的程序的临时数据在一些实施例中,ROM 252用于存储各种系统启动的指令。
在一些实施例中,ROM 252用于存储一个基本输入输出系统,称为基本输入输出系统(Basic Input Output System,BIOS)。用于完成对系统的加电自检、系统中各功能模块的初始化、系统的基本输入/输出的驱动程序及引导操作系统。
在一些实施例中,在收到开机信号时,显示设备200电源开始启动,CPU运行ROM252中系统启动指令,将存储在存储器的操作系统的临时数据拷贝至RAM 251中,以便于启动或运行操作系统。当操作系统启动完成后,CPU再将存储器中各种应用程序的临时数据拷贝至RAM 251中,然后,以便于启动或运行各种应用程序。
在一些实施例中,CPU处理器254,用于执行存储在存储器中操作系统和应用程序指令。以及根据接收外部输入的各种交互指令,来执行各种应用程序、数据和内容,以便最终显示和播放各种音视频内容。
在一些示例性实施例中,CPU处理器254,可以包括多个处理器。多个处理器可包括一个主处理器以及一个或多个子处理器。主处理器,用于在预加电模式中执行显示设备200一些操作,和/或在正常模式下显示画面的操作。一个或多个子处理器,用于在待机模式等状态下一种操作。
在一些示例性实施例中,显示设备200的显示器275为红外触摸屏,则显示器275会将触摸操作对应的触摸点的信息实时地发送给处理器254,处理器254接收触摸点的信息,确定有效触摸点。
在一些实施例中,图形处理器253,用于产生各种图形对象,如:图标、操作菜单、以及用户输入指令显示图形等。
在一些实施例中,视频处理器270被配置为将接收外部视频信号,根据输入信号的标准编解码协议,进行解压缩、解码、缩放、降噪、帧率转换、分辨率转换、图像合成等等视频处理,可得到直接可显示设备200上显示或播放的信号。
在一些实施例中,视频处理器270,包括解复用模块、视频解码模块、图像合成模块、帧率转换模块、显示格式化模块等。
其中,解复用模块,用于对输入音视频数据流进行解复用处理,如输入MPEG-2,则解复用模块进行解复用成视频信号和音频信号等。
视频解码模块,则用于对解复用后的视频信号进行处理,包括解码和缩放处理等。
图像合成模块,如图像合成器,其用于将图形生成器根据用户输入或自身生成的GUI信号,与缩放处理后视频图像进行叠加混合处理,以生成可供显示的图像信号。
帧率转换模块,用于对转换输入视频帧率,如将60Hz帧率转换为120Hz帧率或240Hz帧率,通常的格式采用如插帧方式实现。
显示格式化模块,则用于将接收帧率转换后视频输出信号,改变信号以符合显示格式的信号,如输出RGB数据信号。
在一些实施例中,图形处理器253可以和视频处理器可以集成设置,也可以分开设置,集成设置的时候可以执行输出给显示器的图形信号的处理,分离设置的时候可以分别执行不同的功能,例如GPU+FRC(Frame Rate Conversion))架构。
在一些实施例中,音频处理器280,用于接收外部的音频信号,根据输入信号的标准编解码协议,进行解压缩和解码,以及降噪、数模转换、和放大处理等处理,得到可以在扬声器中播放的声音信号。
在一些实施例中,视频处理器270可以包括一颗或多颗芯片组成。音频处理器,也可以包括一颗或多颗芯片组成。
在一些实施例中,视频处理器270和音频处理器280,可以单独的芯片,也可以于控制器一起集成在一颗或多颗芯片中。
在一些实施例中,音频输出,在控制器250的控制下接收音频处理器280输出的声音信号,如:扬声器286,以及除了显示设备200自身携带的扬声器之外,可以输出至外接设备的发生装置的外接音响输出端子,如:外接音响接口或耳机接口等,还可以包括通信接口中的近距离通信模块,例如:用于进行蓝牙扬声器声音输出的蓝牙模块。
供电电源290,在控制器250控制下,将外部电源输入的电力为显示设备200提供电源供电支持。供电电源290可以包括安装显示设备200内部的内置电源电路,也可以是安装在显示设备200外部电源,在显示设备200中提供外接电源的电源接口。
用户接口265,用于接收用户的输入信号,然后,将接收用户输入信号发送给控制器250。用户输入信号可以是通过网络通信模块接收各种用户控制信号。
在一些实施例中,用户通过控制装置或移动终端300输入用户命令,用户输入接口则根据用户的输入,显示设备200则通过控制器250响应用户的输入。
在一些实施例中,用户可在显示器275上显示的图形用户界面(GUI)输入用户命令,则用户输入接口通过图形用户界面(GUI)接收用户输入命令。
在一些实施例中,″用户界面″,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示器中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
存储器260,包括存储用于驱动显示设备200的各种软件模块。如:第一存储器中存储的各种软件模块,包括:基础模块、检测模块、通信模块、显示控制模块、浏览器模块、和各种服务模块等中的至少一种。
基础模块用于显示设备200中各个硬件之间信号通信、并向上层模块发送处理和控制信号的底层软件模块。检测模块用于从各种传感器或用户输入接口中收集各种信息,并进行数模转换以及分析管理的管理模块。
显示控制模块用于控制显示器进行显示图像内容的模块,可以用于播放多媒体图像内容和UI界面等信息。通信模块,用于与外部设备之间进行控制和数据通信的模块。浏览器模块,用于执行浏览服务器之间数据通信的模块。服务模块,用于提供各种服务以及各类应用程序在内的模块。同时,存储器260还用存储接收外部数据和用户数据、各种用户界面中各个项目的图像以及焦点对象的视觉效果图等。
触摸屏是一个可以检测到在显示区域内触摸的存在和位置的电子系统,它简化了人机交互方法。其中,触摸屏包括电容触摸屏。在当前触控技术中,针对电容触摸屏的电容触控技术在中小尺寸产品上具有良好的体验,应用也越来越广泛。随着电容触摸屏的成本降低和电容触控技术的发展,电容触摸一体机正在往更大尺寸发展普及,例如86寸、110寸等。
电容触摸屏的原理为:在玻璃表面使用氧化铟锡(Indium Tin Oxide,ITO)或者金属网格(metal mesh)或者纳米银制作横向发射电极与纵向感应电极,两组电极垂直相交的地方(即节点)将会形成电容,也即这两组电极分别构成了电容的两极;示例性地,图3为本申请一实施例提供的电容触摸屏电极分布的示意图,如图3所示,横向发射电极包括TX1至TXm共m个发射电极,纵向感应电极包括RX1至RXn共n个感应电极,m个发射电极分别与n个感应电极垂直相交的地方(即节点)将会形成电容;当手指或者触摸笔触摸到电容触摸屏时,影响了触摸点附近两个电极之间的耦合,从而改变了这两个电极之间的电容量;比如,检测电容触摸屏的互电容大小时,每一个发射电极依次发出驱动信号,所有感应电极同时接收感应信号,可以得到所有发射电极和感应电极相交点的电容值大小,即整个电容触摸屏的二维平面的电容大小;根据电容触摸屏二维平面的电容变化量数据,可以获得每一个触摸点的坐标,即确定了每一个触摸点。
电容触摸屏的扫描通道分为驱动通道(对应发射电极)和感应通道(对应感应电极),触摸微控制单元(Microcontroller Unit,MCU)模块按照预设的扫描规则向每条驱动信号线(即驱动通道)发送驱动信号,感应通道依次接收每个节点的感应信号,最终得到电容触摸屏整面的感应信号,当手指或者触摸笔触摸到电容触摸屏时,影响了触摸点附近两个电极之间的耦合,从而造成这两个电极之间的电容量的微弱变化,触摸MCU模块根据电容触摸屏整面的感应信号的变化量,结合算法处理最终定位出有效触摸物的坐标位置。
参照图3示出一种控制器250的结构示意图,本申请实施例是基于图3所示的控制器250执行相应的步骤,具体的,该控制器包括下载模块11,解封装模块12,音频解码模块13,视频解码模块14,音视频同步模块15,音频输出模块16,视频输出模块17。其中,解封装模块12包括:解复用单元121,至少一个音频基本流队列122、视频基本流队列123、音频选择单元124。
其中,下载模块11用于从服务器上下载视频文件。解复用单元121,用于对视频文件进行解复用处理,解复用出视频数据和/或音频数据。音频基本流队列122用于存储解复用出的多路音频数据,其中,一路音频数据对应存储在一个音频基本流队列122中。视频基本流队列123用于存储解复用出的视频数据。音频选择单元124用于对多路音频数据进行选择。音频解码模块13用于对选择后的音频数据进行解码。视频解码模块14用于对视频基本流队列123中的视频数据进行解码。音视频同步模块15用于将解码后的视频数据和音频数据进行同步。音频输出模块16用于对音频数据进行渲染输出。视频输出模块17用于对视频数据进行渲染输出。最后传输给显示器,通过显示器显示。
目前,对于封装方式是串流的视频文件,该视频文件不同于MP4封装格式的视频文件,串流封装格式的视频文件中并没有音视频索引。例如:TS(传输流)文件和flv(flashvideo,幻灯片视频)文件。由于这些视频文件并没有音视频索引,因此当需要对这些视频文件进行快进、快退以及跳播操作时,无法定位到每一帧的偏移地址,进而无法定位到对应的关键帧。而视频控制器的解码单元无法获取到关键帧中的信息,会出现无法准确配置解码器,进而会导致对关键帧后续的视频帧出现解码错误,进而导致播放的视频出现花屏的问题。
在一些实施例中,参照图4,为查找用户跳播的目标视频帧的方式,具体包括如下步骤:
S101,使初始偏移地址pos_Start为0,结尾偏移地址pos_end为视频文件大小值file_size。
示例性的,参照图5,该视频文件包括21个视频帧,每个视频帧中携带有偏移地址和时间戳。刚打开视频时,初始偏移地址pos_Start为0,结尾偏移地址pos_end为20,视频指针①指向第一帧视频帧,当用户需要跳播至目标时间戳为37s的视频帧时,执行以下操作。
S102,确定中间偏移地址pos为初始偏移地址pos_Start与结尾偏移地址pos_end的中间值。
示例性的,参照图5,确定中间偏移地址pos为10,则将视频指针②指向中间偏移地址为10的视频帧。
S103,读取pos对应的视频帧,获取该视频帧的时间戳ts。
示例性的,参照图5,读取中间偏移地址为10的初频帧的时间戳ts为28s。
S104,确定用户要跳转播放的目标时间戳target_ts。
示例性的,参照图5,用户要跳转播放的目标时间戳target_ts为37s。
S105,判断时间戳ts与目标时间戳target_ts差值是否小于阈值,即确定时间戳ts与目标时间戳target_ts是否最接近。
其中,若是结束流程,时间戳ts对应的视频帧即为要跳转播放的目标视频帧,若否执行S106。
S106,判断时间戳ts与目标时间戳target_ts的大小。
示例性的,可以设置阈值为1s,参照图5,比较时间戳ts为28s与目标时间戳37s,大于阈值1s,且目标时间戳37s大于时间戳28s。
S107,若时间戳ts大于目标时间戳target_ts,使结尾偏移地址为中间偏移地址pos减去1,继续执行S102。
S108,若时间戳ts小于目标时间戳target_ts,使初始偏移地址为中间偏移地址pos加上1,继续执行S102。
示例性的,参照图5,目标时间戳37s大于时间戳28s,则初始偏移地址为中间偏移地址10加上1为11,继续执行S105,则结尾偏移地址pos_end仍为20,继续得到中间偏移地址为15,则将视频指针③指向偏移地址15对应的视频帧,获取该视频帧的时间戳为38s,判断38s与目标时间戳37秒的差值为1,则可以将时间戳为38s的视频帧作为要跳转的视频帧。
其中,在上述步骤中是在整个视频文件中采用二分法查找目标视频帧,但是这种查找方式并不能保证查找到的视频帧是关键帧,但是对于一个GOP(画面组),控制器中的解码器第一帧解码的如果不是关键帧,就会存在显示花屏的问题,进而影响显示设备的显示质量。
示例性的,参照图5,最终查找的视频帧为偏移地址为15的视频帧,该视频帧并非是关键帧,如果从该视频帧开始播放,会出现花屏的问题。
基于上述问题,本申请提供一种显示设备、视频播放方法及装置,在接收到用户的特殊播放指令后,确定目标关键帧,以关键帧为第一个视频帧进行解码,则可以保证解码器能够获取到目标关键帧中的关键信息进行解码器的配置,进而对目标关键帧以及目标关键帧后的视频帧进行正确解码,避免了显示出现花屏的问题,提高了显示设备的显示质量。此外,在确定目标关键帧的时候,依旧可以对视频基本流队列中的视频帧进行解码播放,进而能够在用户跳转视频时,不会出现播放暂停的问题,提高了用户的观看视频体验。
下面采用详细的实施例,来说明本申请如何进行。
图6为本申请一实施例提供的视频播放方法的流程图,本申请实施例提供的一视频播放方法应用于如上的显示设备,该显示设备包括:控制器和显示器。如图6所示,显示设备中控制器被配置为执行以下步骤:
在S201中,在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧。
其中,在播放视频时,可以是正在播放视频,还可以是刚开始播放视频,对此不加以限定。
具体的,播放指令包括:跳转播放指令、快进播放指令、快退播放指令等等。其中,跳转播放指令指示的是用户从当前播放位置跳转到另一播放位置,例如,当前视频播放的时间是23分46秒,用户从23分46秒跳至46分8秒,或者跳到13分24秒。快进播放指令指示的是从当前播放时间开始,从大于当前播放时间的时间中抽取部分视频帧进行播放,例如,当前视频播放的时间是23分46秒,则依次播放23分49秒、23分54秒、23分58秒等视频帧。快退播放指令指示的是从当前播放时间开始,从小于当前播放时间的时间中抽取部分视频帧进行播放,例如,当前视频播放的时间是23分46秒,则依次从23分43秒,23分39秒,23分35秒等倒序播放视频帧。
在一些实施例中,用户可通过遥控器,语音或者触摸等方式触发播放指令。
此外,播放指令中包含目标时间戳。其中,当播放指令是跳转播放指令,则目标时间戳表示用户要将视频跳转至的时间。例如,跳转播放指令指示跳转到46分8秒,则目标时间戳为46分8秒,若跳转播放指令指示跳转到13分24秒,则目标时间戳为13分24秒。当播放指令是快进播放指令或者快退播放指令,则目标时间戳为当前播放视频帧的时间戳,例如,当前播放视频帧的时间戳是23分46秒,则目标时间戳为23分46秒。
示例性的,参照图7,显示设备200的显示器210上正在显示视频画面。显示器210还显示有进度条211,进度标识212、快退标识213和快进标识214。在图7中,该视频的总长为80min50s显示设备正从0s的时间播放视频帧,当用户需要视频跳转至46min8s,则在跳转指令中携带目标时间46min8s,然后进度标识根据跳转指令中携带的目标时间跳转至46min8s的位置,从46min8s的位置开始,继续播放视频帧。
此外,在快进或者快退时,用户可以触发快退标识213和快进标识214,例如,在图7中,当前播放视频帧的时间戳为46min8s,当用户触发快退标识213时,则目标时间戳为当前播放视频帧的时间戳46min8s,显示设备从时间戳46min8s开始快退播放视频帧。当用户触发快进标识214时,则目标时间戳为当前播放视频帧的时间戳46min8s,显示设备从时间戳46min8s开始快进播放视频帧。
在本申请实施例中,播放指令中携带的目标时间戳可能是GOP中普通帧的时间戳,则目标时间戳对应的目标关键帧,是指视频文件中的关键帧的时间戳与目标时间戳的距离最近的关键帧。示例性的,一个视频文件包括多个GOP,一个GOP中的第一个视频帧为关键帧I,后续的视频帧为普通帧。其中,普通帧包括:P帧(参考帧)和B帧(过渡帧)。则当目标时间戳的视频帧为P帧或B帧,则可以根据该P帧或B帧所属的GOP的I帧(a)的时间戳,或后一个GOP的I帧(b)的时间戳,确定选择I帧(a)或I帧(b)为目标时间戳对应的目标关键帧。
此外,也可以选择其他方式确定目标时间戳对应的目标关键帧,在此不加以限定。
在本申请实施例中,通过确定目标关键帧,可以使解码器第一帧解码的是关键帧,进而能够保证后续播放时,不会出现花屏的问题,提高显示设备的显示质量。
在S202中,清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧。
参照图3,在接收到播放指令前,如果视频已经在播放,则在图3的视频基本流队列中保存有一些视频帧,这些视频帧经过视频解码模块解码后可以播放。在本申请中,当确定目标关键帧后,则可以将该视频基本流队列中保存的待解码的视频中清空,以便目标关键帧和其他待播放的视频帧保存在视频基本流队列中,待解码。
其中,在执行在S201时,视频解码模块依旧对视频基本流队列中的视频帧进行解码,然后输出显示,在S201执行结束后,将视频基本流队列中的视频帧清空,这样可以保证在执行S201时,不会对视频暂停播放,进而不会影响到用户观看视频体验,给用户提供更为流畅的观赏体验。
在S203中,以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧。
其中,目标关键帧作为第一个视频帧,则在视频基本流队列中第一个保存的是目标关键帧,视频解码模块第一个解码的也是目标关键帧,这样可以保证视频解码模块正常配置,使最终显示不会出现花屏的问题。
此外,除目标关键帧之外的待播放的视频帧是根据播放指令确定的。如果播放指令包括:跳转播放指令,则待播放的视频帧为时间戳大于或等于目标关键帧的时间戳的各个视频帧。其中,待播放的视频帧为时间戳等于目标关键帧的时间戳,则待播放的视频帧就是目标关键帧,其他待播放的视频帧的时间戳大于目标关键帧的时间戳。示例性的,当播放指令是跳转播放指令,则显示设备在跳转后,第一帧播放的是目标关键帧,后续播放的是视频文件中,时间戳在目标关键帧的时间戳之后的每一个视频帧。则视频基本流队列中是按照时间戳先后顺序,依次缓存的各个视频帧。
在一些实施例中,如果播放指令包括快进播放指令,则在视频基本流队列中缓存的第一个视频帧为目标关键帧,之后缓存的待播放的视频帧为视频文件中,时间戳大于目标关键帧的时间戳的视频帧;其中,待播放的视频帧并非目标关键帧之后的所有视频帧,而是抽取部分视频帧作为待播放的视频帧,当播放指令包括快进播放指令时,待播放的视频帧也是按照时间戳的先后顺序在视频基本流队列缓存的。如果播放指令包括快退播放指令,则在视频基本流队列中缓存的第一个视频帧为目标关键帧,之后缓存的待播放的视频帧为视频文件中,时间戳小于目标关键帧的时间戳的视频帧;其中,待播放的视频帧并非目标关键帧之前的所有视频帧,而是抽取部分视频帧作为待播放的视频帧,当播放指令包括快退播放指令时,待播放的视频帧也是按照时间戳顺序在视频基本流队列倒序缓存的。
在S204中,将解码后的视频帧发送给显示器显示。
参照图3,当待播放的视频帧在视频基本流队列缓存后,视频解码模块依次读取视频基本流队列中的待播放的视频帧进行解码,然后和音频解码模块解码出的音频帧同步后,又视频输出模块传输给显示器进行显示。
本申请提供的显示设备、视频播放方法及装置,显示设备包括控制器和显示器;控制器被配置为:在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;将解码后的视频帧发送给显示器显示。在本申请中,以目标关键帧为第一个视频帧进行解码,可以使解码器能够获取到目标关键帧中的关键信息进行解码器的配置,进而对目标关键帧以及目标关键帧后的视频帧进行正确解码,避免了显示出现花屏的问题,提高了显示设备的显示质量。此外,在确定目标关键帧的时候,依旧对视频基本流队列中的视频帧进行解码播放,在用户跳转视频时,不会出现播放暂停的问题,提高了用户的观看视频体验。
下面结合具体步骤,对本申请实施例提供的视频播放方法进行详细说明。图8为本申请另一实施例提供的视频播放方法的流程图。如图8所示,显示设备中控制器被配置为执行以下步骤:
在S301中,获取视频文件,对视频文件进行解复用,得到多个视频帧。
具体的,参照图3,控制器的下载模块11先下载道视频文件,解复用模块121对视频文件进行解复用处理,得到多个音频帧,和多个视频帧。
在S302中,遍历多个视频帧,确定多个视频帧中的关键帧。
其中,视频文件中包括多个GOP,每个GOP中包括一个I帧、多个P帧和多个B帧,该I帧为一个GOP中的第一个视频帧。S302的目的是确定各个GOP中的I帧。
具体的,关键帧是视频文件中表现关键状态的帧,能够独立解码。此外,可以通过解析视频帧的帧头判断是否为关键帧,或者通过关键帧的帧内标识进行判断,也可以通过关键帧的数据量判断是否为关键帧。通常情况下,关键帧的数据量大于普通帧的数据量。
在S303中,基于各关键帧的时间戳和偏移地址,创建索引表。
在本申请实施例中,每个关键帧中携带有自身的时间戳和偏移地址,因此,在确定视频文件中的各个关键帧时,可以读取关键帧中的时间戳和偏移地址,然后创建索引表。其中,索引表中保存的是同一关键帧的时间戳与偏移地址的对应关系,以使在后续查找关键帧时,可以先确定时间戳,根据索引表确定对应的偏移地址,根据偏移地址在视频文件中定位到对应的关键帧。
在S304中,在播放视频时,响应于检测到携带有目标时间戳的播放指令,基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,索引表中包含关键帧的时间戳与关键帧的偏移地址。
其中,预设阈值可以根据一个GOP的时间跨度确定,可以确定预设阈值为一个GOP的时间跨度的一半。示例性的,当一个GOP的时间跨度为10秒,则预设阈值为5s。一个GOP中的关键帧(第一个视频帧)的时间戳为24分2秒,则该GOP后一个GOP的关键帧的时间戳为24分12秒,当目标时间戳为24分6秒时,可以判断第一时间戳为24分2秒。
此外,基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,包括:采用二分法,在索引表中确定与目标时间戳的时间差小于预设阈值的第一时间戳。
具体的,参照图9,二分法查找目标关键帧的具体步骤如下:
S3041,pos_start2为第一个关键帧的偏移地址;pos_end2为最后一个关键帧的偏移地址。
具体的,pos_start2是索引表中,第一个关键帧的偏移地址;pos_end2是索引表中最后一个关键帧的偏移地址。
S3042,pos2=(pos_start2+pos_end2)/2。
其中,pos2为索引表中处于中间位置的关键帧的偏移地址。当中间位置的关键帧为两个时,读取两个关键帧的偏移地址,均进行对应时间戳与目标时间戳的比较。如果中间位置没有关键帧,则将pos_start2和pos_end2的关键帧的时间戳与目标时间戳进行比较。
S3043,读取pos对应时间戳ts2。
其中,可以在索引表中直接确定pos对应时间戳ts2。
S3044,确定用户要跳转播放的目标时间戳target_ts2。
S3045判断(ts2-target_ts2)是否小于预设阈值。
如果ts2-target_ts2小于预设阈值,则ts2为第一时间戳,结束流程,如果ts2-target_ts2不小于预设阈值,则执行S3046。
S3046,判断ts2是否大于target_ts2。
S3047,如果ts2大于target_ts2,则将pos_end2为pos对应的前一个关键帧的偏移地址,继续执行S3042。
S3048,如果ts2小于target_ts2,则将pos_start2为pos对应的后一个关键帧的偏移地址,继续执行S3042。
示例性的,参照图10,为索引表中关键帧的偏移地址与时间戳的对应关系,当用户想要跳转至目标时间戳为67s的视频帧,设置预设阈值为5s,则在索引表中查找与目标时间戳最近的时间戳对应的关键帧。其中,在图10的索引表中,pos_start2为1,pos_end2为68,则中间关键帧的偏移地址为33,将指针从①移到②,在索引表中读取该偏移地址33对应的时间戳为78s,78s与目标时间戳67s的时间差为11s,大于预设阈值5s,则将偏移地址33前一个偏移地址28作为pos_end2,继续查找到中间关键帧的偏移地址为18,将指针从②移到③,偏移地址18对应的时间戳为47s,该47s与目标时间戳57s的时间差为10s,大于预设阈值5s,则将偏移地址18的后一个关键帧的偏移地址作为pos_start2,继续查找没有中间偏移地址,则将pos_start2和pos_end2的时间戳与目标时间戳为67s进行比较,最后确定关键帧的偏移地址为28,将指针从③移到④,则在视频文件中定位到偏移地址为28的关键帧,开始播放。
可见,上述只需要在索引表中,基于关键帧进行二分法计算查找第一时间戳,并不需要在整个视频文件中进行二分法计算,因此能够提高查找目标关键帧的效率,并且能够准确的确定目标关键帧。
在S305中,确定第一时间戳对应的偏移地址为目标偏移地址。
在S306中,确定目标偏移地址对应的关键帧为目标关键帧。
其中,在索引表中存储有视频文件的所有关键帧的时间戳和偏移地址的一一映射的对应关系,则在确定第一时间戳后,就可以基于索引表确定目标偏移地址,然后根据目标偏移地址,在视频文件中查找到目标关键帧。
示例性的,索引表中存储的时间戳为28秒,对应的偏移地址为100,时间戳为50秒对应的偏移地址为200。则当第一时间戳为28秒时,目标偏移地址为100。
在S307中,根据播放倍速以及目标时间戳,在索引表中确定多个第二时间戳。
其中,若播放指令为快进播放指令或快退播放指令,播放指令还携带播放倍速,目标时间戳为当前播放的视频帧对应的时间戳。
具体的,播放倍速快进倍速和快退倍速,快进倍速为正值,快退倍速为负值。示例性的,当播放倍速为快进倍速时,播放倍速可以是2倍速、3倍速或4倍速等。当播放倍速为快退倍速时,播放倍速可以是-2倍速、-3倍速或-4倍速等。
此外,在索引表中存储的都是关键帧的时间戳,则第二时间戳都是关键帧对应的时间戳。如果播放倍速为快进倍速,则第二时间戳大于目标时间戳。如果播放倍速为快退倍速,则第二时间戳小于目标时间戳。
示例性的,当索引表中的时间戳为,1s、4s、7s、11s、18s、23s、28s、32s、37s、43s。当目标时间戳为15s,播放倍速为快进倍速时,确定第二时间戳为18s、23s、28s、32s、37s、43s,其中,第一时间戳为18s,第一时间戳可以是多个第二时间戳中的第一个时间戳。当目标时间戳为15s,播放倍速为快退倍速时,确定第二时间戳为11s、7s、4s、1s,其中,第一时间戳为18s,第一时间戳可以大于第二时间戳中的第一个时间戳。
此外,也可以根据播放倍速在索引表中抽取部分时间戳作为第二时间戳。例如,当播放倍速为4倍速时,在索引表中可以每隔一个时间戳抽取一个时间戳为第二时间戳,基于上述示例,则第二时间戳为18s、28s、37s。这样当快进倍速较大时,可以选择其中部分第二时间戳对应的关键帧进行播放即可满足用户的需要,避免对每个关键帧的确定,提高控制器的处理效率。
在S308中,确定第二时间戳对应的待播放关键帧。
其中,确定第二时间戳对应的待播放关键帧,包括:基于索引表,确定第二时间戳对应的第二偏移地址;根据第二偏移地址确定待播放关键帧。其中,待播放关键帧包括:目标关键帧。
在S309中,根据播放倍速,确定相邻待播放关键帧之间的普通视频帧。
其中,一个GOP包括一个I帧,和I后续的多个P帧和B帧。在这里可以根据倍速将关键帧之后预设数量的P帧和B帧作为普通视频帧。
示例性的,参照图11,视频文件中包括60个视频帧,其中,I代表关键帧。当视频帧23为目标关键帧,当播放倍速为2倍速时,则待播放关键帧为视频帧23、视频帧28、视频帧33、视频帧38、视频帧44、视频帧49、视频帧54和视频帧60。抽取的普通视频帧是以待播放关键帧I为第一帧依次抽取的视频帧。在相邻待播放关键帧之间可以抽取约一半数量的视频帧,比如在待播放关键帧23和待播放关键帧28之间抽取视频帧24和视频帧25,在待播放关键帧28和33之间抽取视频帧29、视频帧30作为普通视频帧,其中视频帧31可抽取也可不抽取,根据实际设定确定。按照这种方式依次确定其他普通视频帧。
当播放倍速为3倍速时,抽取的普通视频帧是以待播放关键帧I为第一帧依次抽取的视频帧。在相邻待播放关键帧之间可以抽取约三分之一数量的视频帧,比如在待播放关键帧23和待播放关键帧28之间抽取视频帧24在待播放关键帧28和33之间抽取视频帧29、视频帧30作为普通视频帧,按照这种方式依次确定其他普通视频帧。
当播放倍速为4倍速时,抽取的普通视频帧是以待播放关键帧I为第一帧依次抽取的视频帧。在相邻待播放关键帧之间可以约四分之一数量的视频帧,如果相邻待播放关键帧之间没有四帧视频帧,则不抽取普通视频帧。比如在待播放关键帧23和待播放关键帧28之间不抽取视频帧,在待播放关键帧28和33之间抽取视频帧29作为普通视频帧,按照这种方式依次确定其他普通视频帧。
此外,当播放倍速为-2倍速时,则待播放关键帧为视频帧23、视频帧18、视频帧11、视频帧6、视频帧1。抽取的普通视频帧是以待播放关键帧I为第一帧依次抽取的视频帧。在相邻待播放关键帧之间可以抽取一半数量的视频帧,比如在待播放关键帧23和18之间抽取视频帧22和视频帧21。在待播放关键帧18和待播放关键帧11之间抽取视频帧17、视频帧16和视频帧15。按照这种方式依次确定其他普通视频帧。
在本申请实施例中,采用先确定待播放关键帧,可以使,在快进播放或快退播放时,不会丢失关键帧,保证每个画面组的变化都显示给用户。然后再确定待播放关键帧之间的普通帧,普通帧和关键帧是相邻的,则可以使显示器的显示画面清楚,不会因为丢失两帧之间的P帧而出现花屏的问题。此外,在本申请实施例中,快进播放或快退播放是对连续的一部分帧进行丢弃,保留关键帧即保留关键画面给用户显示,供用户快速定位到需要播放的视频帧。
在本申请实施例中,也可以通过其他方式确定普通视频帧,在此不加以限定。
在S310中,将待播放关键帧和普通视频帧作为待播放的视频帧。
其中,基于上述S309的示例,参照图8,当视频帧23为目标关键帧,当播放倍速为2倍速时,待播放的视频帧为视频帧23、视频帧24、视频帧25、视频帧28、视频帧29、视频帧30、视频帧33、视频帧34、视频帧35等。当视频帧23为目标关键帧,当播放倍速为-2倍速时,待播放的视频帧为23、视频帧22、视频帧21、视频帧18、视频帧17、视频帧16、视频帧15、视频帧11等。
当播放倍速为3倍速时,待播放的视频帧为视频帧23、视频帧24、视频帧28、视频帧29、视频帧30、视频帧33、视频帧34等。
在本申请实施例中,在播放待播放的视频帧时,还会接收到用户发送的停止快进播放或者停止快退播放的指令,则可以停止当前的快进或快退播放,以当前播放帧为第一帧,正常播放视频文件。
在S311中,清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧。
此步骤具体实现方式参照S202,在此不再赘述。需要补充说明的是,在视频基本流队列中缓存待播放视频帧前,先清空视频基本流队列中的已缓存的视频帧。
在S312中,以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧。
此步骤具体实现方式参照S203,在此不再赘述。
在S313中,将解码后的视频帧发送给显示器显示。
此步骤具体实现方式参照S204,在此不再赘述。
本申请提供的显示设备、视频播放方法及装置,显示设备包括控制器和显示器;控制器被配置为:在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;将解码后的视频帧发送给显示器显示。在本申请中,以目标关键帧为第一个视频帧进行解码,可以使解码器能够获取到目标关键帧中的关键信息进行解码器的配置,进而对目标关键帧以及目标关键帧后的视频帧进行正确解码,避免了显示出现花屏的问题,提高了显示设备的显示质量。此外,在确定目标关键帧的时候,依旧对视频基本流队列中的视频帧进行解码播放,在用户跳转视频时,不会出现播放暂停的问题,提高了用户的观看视频体验。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图12为本申请一实施例提供的视频播放装置的结构示意图。本申请实施例提供一种视频播放装置,应用于显示设备。如图12所示,该视频播放装置400包括:
确定模块401,用于在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据目标时间戳,确定待播放的目标关键帧;
清空模块402,用于清空视频基本流队列中视频帧,视频基本流队列用于保存待解码的视频帧;
缓存解码模块403,用于以目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含目标关键帧;
发送模块404,用于将解码后的视频帧发送给显示器显示。
在一些可能的实现方式中,确定模块401,具体用于:
基于索引表,确定与目标时间戳的时间差小于预设阈值的第一时间戳,索引表中包含关键帧的时间戳与关键帧的偏移地址;
确定第一时间戳对应的偏移地址为目标偏移地址;
确定目标偏移地址对应的关键帧为目标关键帧。
在一些可能的实现方式中,确定模块401,具体用于:
采用二分法,在索引表中确定与目标时间戳的时间差小于预设阈值的第一时间戳。
在一些可能的实现方式中,视频播放装置400还用于:
获取视频文件,对视频文件进行解复用,得到多个视频帧;
遍历多个视频帧,确定多个视频帧中的关键帧;
基于各关键帧的时间戳和偏移地址,创建索引表。
在一些可能的实现方式中,若播放指令为快进播放指令或快退播放指令,则播放指令还携带播放倍速,目标时间戳为当前播放的视频帧对应的时间戳;
视频播放装置400还用于:
根据播放倍速以及目标时间戳,在索引表中确定多个第二时间戳;
确定第二时间戳对应的待播放关键帧;
根据播放倍速,确定相邻待播放关键帧之间的普通视频帧;
将待播放关键帧和普通视频帧作为待播放的视频帧。
在一些可能的实现方式中,播放指令包括:跳转播放指令,待播放的视频帧为时间戳大于或等于目标关键帧的时间戳的各个视频帧。
需要说明的是,本实施例提供的装置可用于执行上述的视频播放方法,其实现方式和技术效果类似,本实施例此处不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,处理模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上处理模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个ASIC(Application Specific Integrated Circuit,特定集成电路),或,一个或多个DSP(Digital Signal Processor,数字信号处理器),或,一个或者多个FPGA(FieldProgrammable Gate Array,现场可编程门阵列)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如CPU或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以SOC(System-on-a-Chip,片上系统)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机程序。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机程序可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当计算机程序被处理器执行时实现如上任一方法实施例的视频播放方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中获取计算机程序,该至少一个处理器执行计算机程序时可实现如上任一方法实施例的视频播放方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
Claims (10)
1.一种显示设备,其特征在于,所述显示设备包括:控制器和显示器;所述控制器被配置为:
在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据所述目标时间戳,确定待播放的目标关键帧;
清空视频基本流队列中视频帧,所述视频基本流队列用于保存待解码的视频帧;
以所述目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含所述目标关键帧;
将解码后的视频帧发送给所述显示器显示。
2.根据权利要求1所述的显示设备,其特征在于,所述控制器在所述根据所述目标时间戳,确定待播放的目标关键帧时,具体用于:
基于索引表,确定与所述目标时间戳的时间差小于预设阈值的第一时间戳,所述索引表中包含关键帧的时间戳与关键帧的偏移地址;
确定所述第一时间戳对应的偏移地址为目标偏移地址;
确定所述目标偏移地址对应的关键帧为所述目标关键帧。
3.根据权利要求2所述的显示设备,其特征在于,所述基于索引表,确定与所述目标时间戳的时间差小于预设阈值的第一时间戳,包括:
采用二分法,在索引表中确定与所述目标时间戳的时间差小于预设阈值的第一时间戳。
4.根据权利要求2所述的显示设备,其特征在于,所述控制器在所述播放视频之前,还用于:
获取视频文件,对所述视频文件进行解复用,得到多个视频帧;
遍历所述多个视频帧,确定所述多个视频帧中的关键帧;
基于各关键帧的时间戳和偏移地址,创建所述索引表。
5.根据权利要求2至4任一项所述的显示设备,其特征在于,若所述播放指令为快进播放指令或快退播放指令,则所述播放指令还携带播放倍速,所述目标时间戳为当前播放的视频帧对应的时间戳;
所述控制器在所述以所述目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码之前,还用于:
根据所述播放倍速以及所述目标时间戳,在所述索引表中确定多个第二时间戳;
确定所述第二时间戳对应的待播放关键帧;
根据所述播放倍速,确定相邻所述待播放关键帧之间的普通视频帧;
将所述待播放关键帧和所述普通视频帧作为所述待播放的视频帧。
6.根据权利要求1至4任一项所述的显示设备,其特征在于,所述播放指令包括:跳转播放指令,所述待播放的视频帧为时间戳大于或等于所述目标关键帧的时间戳的各个视频帧。
7.一种视频播放方法,其特征在于,应用于显示设备,所述视频播放方法包括:
在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据所述目标时间戳,确定待播放的目标关键帧;
清空视频基本流队列中视频帧,所述视频基本流队列用于保存待解码的视频帧;
以所述目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含所述目标关键帧;
将解码后的视频帧发送给所述显示器显示。
8.根据权利要求7所述的视频播放方法,其特征在于,所述根据所述目标时间戳,确定待播放的目标关键帧,包括:
基于索引表,确定与所述目标时间戳的时间差小于预设阈值的第一时间戳,所述索引表中包含关键帧的时间戳与关键帧的偏移地址;
确定所述第一时间戳对应的偏移地址为目标偏移地址;
确定所述目标偏移地址对应的关键帧为所述目标关键帧。
9.根据权利要求8所述的视频播放方法,其特征在于,所述基于索引表,确定与所述目标时间戳的时间差小于预设阈值的第一时间戳,包括:
采用二分法,在索引表中确定与所述目标时间戳的时间差小于预设阈值的第一时间戳。
10.一种视频播放装置,其特征在于,应用于显示设备,所述视频播放装置包括:
确定模块,用于在播放视频时,响应于检测到携带有目标时间戳的播放指令,根据所述目标时间戳,确定待播放的目标关键帧;
清空模块,用于清空视频基本流队列中视频帧,所述视频基本流队列用于保存待解码的视频帧;
缓存解码模块,用于以所述目标关键帧为第一个视频帧,对待播放的视频帧进行缓存并解码,待播放的视频帧包含所述目标关键帧;
发送模块,用于将解码后的视频帧发送给所述显示器显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815395.0A CN115643454A (zh) | 2021-07-19 | 2021-07-19 | 显示设备、视频播放方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815395.0A CN115643454A (zh) | 2021-07-19 | 2021-07-19 | 显示设备、视频播放方法及其装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115643454A true CN115643454A (zh) | 2023-01-24 |
Family
ID=84940578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110815395.0A Pending CN115643454A (zh) | 2021-07-19 | 2021-07-19 | 显示设备、视频播放方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115643454A (zh) |
-
2021
- 2021-07-19 CN CN202110815395.0A patent/CN115643454A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5536785B2 (ja) | ビデオ分岐 | |
US8918737B2 (en) | Zoom display navigation | |
CN109640188A (zh) | 视频预览方法、装置、电子设备及计算机可读存储介质 | |
BR112018013301B1 (pt) | Método e dispositivo para facilitar acesso a itens de conteúdo, e meio de armazenamento legível por computador | |
CN113259741B (zh) | 一种剧集经典看点的展示方法及显示设备 | |
KR101436526B1 (ko) | 비디오 스트림들의 미리보기 및 재생 방법 그리고 그 시스템 | |
CN104081782A (zh) | 用于同步第二屏幕上的内容的方法和系统 | |
KR20100036664A (ko) | 영상 이동이 가능한 디스플레이 장치 및 그 방법 | |
CN102282841A (zh) | Tv教程微件 | |
US20150058893A1 (en) | Digital broadcasting receiver for magic remote control and method of controlling the receiver | |
CN107211181B (zh) | 显示装置 | |
CN112073798B (zh) | 一种数据传输方法及设备 | |
CN111726673B (zh) | 一种频道切换方法及显示设备 | |
US20150304714A1 (en) | Server device and client device for providing vod service and service providing methods thereof | |
KR101714661B1 (ko) | 영상표시기기의 데이터 입력 방법 및 그에 따른 영상표시기기 | |
CN115643454A (zh) | 显示设备、视频播放方法及其装置 | |
CN115460452A (zh) | 一种显示设备和频道播放方法 | |
CN113542900B (zh) | 媒资信息展示方法及显示设备 | |
KR102139331B1 (ko) | 영상 콘텐츠 재생을 위한 장치, 서버 및 방법 | |
CN112367550A (zh) | 一种媒资列表多标题动态展示的实现方法及显示设备 | |
US8538235B2 (en) | Reproducing device, reproducing method, program and recording medium | |
CN112261463A (zh) | 显示设备及节目推荐方法 | |
CN105916035A (zh) | 一种快速定位播放时间点的显示方法及装置 | |
JP4683095B2 (ja) | 表示制御装置、表示制御方法および通信システム | |
CN113473175B (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 |