欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 用于视频清晰度切换的方法、设备及电子设备独创技术23562字

用于视频清晰度切换的方法、设备及电子设备

2021-02-27 18:14:57

用于视频清晰度切换的方法、设备及电子设备

  技术领域

  本发明涉及视频处理技术领域,更具体地,涉及一种用于视频清晰度切换的方法、设备及客户端电子设备。

  背景技术

  目前,当用户通过播放器观看视频时,对于同一个视频,往往会提供多个清晰度的视频数据供用户选择。所述播放器例如是浏览器中的媒体播放器或者诸如短视频应用的视频应用中的媒体播放器。

  用户可以根据自己的当前网络状况,选择适当的清晰度来播放视频,从而达到用户自己所认可的卡顿和清晰程度的平衡。

  在很多情况下,在当前视频正在播放的过程中,用户选择切换视频清晰度。当用户切换视频清晰度时,正在播放视频的当前播放器会被关闭,并且重新创建一个新的播放器,以切换后的清晰度重新播放所述视频。某些应用软件可以记录当前播放器在关闭时的播放位置,并在新的播放器中移动到所述播放位置。在这个过程中,由于没有内容可供播放,因此,电子设备的屏幕可能处于空白、停止或黑屏状态。此外,由于新的播放器无法准确从切换的时刻开始播放,因此,新的播放器往往会重复播放一段已经播放过的内容。这些都给用户带来不好的使用体验。

  在播放器播放媒体数据时,播放器可以通过渲染线程对媒体数据中的音频和视频进行处理,以播放所述音频并显示所述视频的画面。

  在现有技术中,例如还可以通过m3u8格式的数据来实现视频清晰度的切换。然而,这种方式需要服务器将视频数据编码为m3u8格式的数据,而无法对其他格式的数据进行切换操作。类似地,还可以基于HTTP的动态自适应流技术(DASH)来来实现视频清晰度的切换。但是,同样地,它需要服务器将视频数据编码为DASH格式的数据,而无法对其他格式的数据进行切换操作。这给播放器的应用范围带来挑战。

  发明内容

  本发明的一个目的是提供一种用于用于视频清晰度切换的新技术方案。

  根据本发明的第一方面,提供了一种用于视频清晰度切换的方法,包括:由当前播放器使用第一渲染线程以第一清晰度来播放当前视频;以及在用于视频清晰度切换的切换时刻,由新播放器使用相同的第一渲染线程以第二清晰度来播放该当前视频,其中,第二清晰度是从第一清晰度切换后的清晰度。

  根据本发明的第二方面,提供了一种用于视频清晰度切换的设备,包括用于执行根据本公开的实施例的方法中的步骤的装置。

  根据本发明的第三方面,提供了一种客户端电子设备,包括存储器和处理器,其中,所述存储器存储可执行指令,以及当由处理器执行所述可执行指令时,所述处理器执行根据本公开的实施例的方法中的步骤。

  根据本发明的一个实施例,可以使得视频清晰度的切换更加平滑。

  通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

  附图说明

  被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

  图1是可用于实现本公开的实施例的计算系统的硬件配置的例子的示意性框图。

  图2是根据本公开的一个实施例的用于视频清晰度切换的方法的示意性流程图。

  图3是根据本公开的一个例子的切换视频清晰度的示意性过程。

  图4是根据本公开的一个例子的有客户端电子设备的示意图。

  具体实施方式

  现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

  以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

  对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

  在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

  应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

  下面,参照附图描述根据本发明的各个实施例和例子。

  <硬件配置>

  图1是显示可用于实现本发明的实施例的计算系统1000的硬件配置的例子的框图。

  如图1所示,计算系统包括计算装置1110。计算装置1110包含通过系统总线1121连接的处理器1120、系统存储器1130、不可拆卸非易失性存储器接口1140、可拆卸非易失性存储器接口1150、用户输入接口1160、网络接口1170、视频接口1190和输出外设接口1195。

  系统存储器1130包含ROM(只读存储器)1131和RAM(随机存取存储器)1132。BIOS(基本输入输出系统)1133驻留于ROM 1131中。操作系统1134、应用程序1135、其它的程序模块1136和一些程序数据1137驻留于RAM 1132中。

  诸如硬盘的不可拆卸非易失性存储器1141与不可拆卸非易失性存储器接口1140连接。例如,不可拆卸非易失性存储器1141可存储操作系统1144、应用程序1145、其它的程序模块1146和一些程序数据1147。

  诸如软盘驱动器1151和CD-ROM驱动器1155的可拆卸非易失性存储器与可拆卸非易失性存储器接口1150连接。例如,软盘可被插入软盘驱动器1151中,并且,CD(光盘)可被插入CD-ROM驱动器1155中。

  诸如鼠标1161和键盘1162的输入设备与用户输入接口1160连接。

  计算装置1110可通过网络接口1170与远程计算装置1180连接。例如,网络接口1170可通过局域网络1171与远程计算装置1180连接。作为替代方案,网络接口1170可与调制解调器(调制器-解调器)1172连接,并且调制解调器1172通过广域网络1173与远程计算装置1180连接。

  远程计算装置1180可包含存储远程应用程序1185的诸如硬盘的存储器1181。

  视频接口1190与监视器1191连接。

  输出外设接口1195与打印机1196和扬声器1197连接。

  图1所示的计算系统仅是解释性的,并且决不是为了要限制本发明、其应用或用途。

  <方法>

  图2是根据本公开的一个实施例的用于视频清晰度切换的方法的示意性流程图。

  如图2所示,在步骤S2100,由当前播放器使用第一渲染线程以第一清晰度来播放当前视频。

  在步骤S2200,在用于视频清晰度切换的切换时刻,由新播放器使用相同的第一渲染线程以第二清晰度来播放该当前视频,其中,第二清晰度是从第一清晰度切换后的清晰度。

  在这里,从当前播放器切换到新播放器,从而实现清晰度的切换。在切换过程中,当前播放器和新播放器复用同一套渲染线程,从而使得切换过程更加平滑。通过这种方式可以实现无缝切换,使得用户感觉不到清晰度的变化。

  在这里,不需要特定的视频格式,并且也不需要服务器参与。可以仅通过客户端的播放器来实现视频清晰度的切换。在整个切换过程中,不中断视频的播放。此外,也可以较精确地在确定的切换时刻完成清晰度的切换。

  在执行切换之前,可以执行切换的设置操作,以将当前视频的播放清晰度从第一清晰度切换到第二清晰度。可以由用户手动选择期望的清晰度;也可以通过自适应的方式,根据当前网络状态自动选择合适的清晰度,无需用户操作。例如,

  例如,在安卓系统中,通过switchVideoPath设置将当前视频的播放清晰度从第一清晰度切换到第二清晰度。

  在一个例子中,还可以基于当前播放器的当前进度确定所述切换时刻。

  例如,获取正在播放当前视频的当前播放器的第一当前进度。初始化新播放器。新播放器将搜索到第一当前进度之后的一个时刻作为进行切换的期望时刻。由当前播放器将所述期望时刻设置为所述切换时刻。

  基于当前播放器的当前进度确定所述切换时刻还包括:新播放器从网络获取当前视频的视频数据并对其进行解码,以完成渲染之前的准备处理;新播放器将表示完成所述准备处理的准备完成信号和所述期望时刻通知给当前播放器;以及由当前播放器将收到所述准备完成信号时的第二当前进度与所述期望时刻进行比较。通过这种方式,可以确保切换直接的延续性,避免重复播放的情况。

  在第二当前进度小于所述期望时刻的情况下,由当前播放器将所述期望时刻设置为所述切换时刻。

  例如,在安卓系统中,所述准备完成信号是onSwitchVideoReady信号。可以通过prepareSwitchPlayer方法将所述期望时刻设置为所述切换时刻。

  在第二当前进度大于所述期望时刻的情况下,当前播放器通知新播放器重新进行搜索;以及新播放器将重新搜索到第二当前进度之后的另一个时刻作为更新后的期望时刻。当前播放器将所述更新后的期望时刻作为所述切换时刻。例如,更新后的期望时刻与第二当前进度之间的间隔大于原期望间隔与第一当前进度之间的间隔。例如,前者是后者的两倍。通过增大间隔的大小,可以提高第二次确定切换时刻的成功概率。应当注意,所述更新后的期望时刻仍然是第一当前进度之后的一个时刻。

  在当前播放器播放当前视频到达所述切换时刻时,当前播放器通知新播放器进行切换。由新播放器在收到所述进行切换的通知后使用相同的第一渲染线程以第二清晰度来播放该当前视频。例如,所述进行切换的通知是onSwitchVideo信号。

  在所述新播放器开始播放所述当前视频之后关闭所述当前播放器。接着,可以将新播放器设置为新的当前播放器。这样,可以在需要时重新上面所述的步骤,以再次执行清晰度的切换。例如,在安卓系统中,可以在所述新播放器发出onSwitchVideoDone信号之后关闭所述当前播放器。

  在这里,由于采用同一套渲染线程来执行清晰度的切换,可以确保切换时的连续性,避免切换时中断或重复给用户带来的不良体验。

  <设备>

  本领域技术人员应当理解,在电子技术领域中,可以通过软件、硬件以及软件和硬件结合的方式,将上述方法体现在产品中。本领域技术人员很容易基于上面公开的方法,产生一种用于视频清晰度切换的设备,包括用于执行根据上述实施例的方法中的步骤的装置。所述设备例如可以以软件的形式存在。此外,所述设备也可以是使用专门的硬件来实现的。专门的硬件可以是专门针对清晰度切换而设计的,并可以提高处理的运行效率。

  此外,例如,根据本公开的技术方案可以通过诸如图1所述的通用的计算系统的电子设备来实现。例如,所述技术方案可以通过基于诸如C语言、Java语言所编写的程序来体现。所述程序的指令例如被存储在不可拆卸非易失性存储器1141或可拆卸非易失性存储器中,当计算系统运行时,所述指令被读取到系统存储器1130中,当所述指令被处理器1120运行时,所述指令使得处理器1120实现所述技术方案。

  所述技术方案可以在一个计算装置中实现,也可以被分布在多个计算装置中。

  因此,在这里,还可以实现一种用于用于视频清晰度切换的电子设备。该设备包括存储器和处理器,其中,所述存储器存储可执行指令,以及当由处理器执行所述可执行指令时,所述处理器执行根据上述实施例所述的方法中的步骤。所述电子设备是客户端电子设备,例如,智能手机、平板电脑、智能电视、笔记本电脑、台式电脑等。

  <例子>

  图3是根据本公开的一个例子的切换视频清晰度的示意性过程。图4是根据本公开的一个例子的有客户端电子设备的示意图。例如,可以在图4所示的客户端电子设备中执行图3所示的流程,从而事实清晰度的切换。

  图4所示的客户端电子设备3000例如是智能手机。例如,智能手机3000正在使用当前播放器播放当前视频3100。当前的清晰度3201是360P。如图4中的参考标号3202所示,用户还可选择480P、720P、1080P的清晰度。此外,智能手机3000也可以根据网络状况自动切换到适当的清晰度。所述播放器可以是客户端电子设备的专用播放器,或者可以是客户端电子设备的浏览器网页中嵌入的播放器,或者可以是客户端电子设备中的媒体应用的播放器。

  例如,当用户选择从当前的分辨率360P切换到分辨率720P时,可以在客户端电子设备3000中执行图3所示的处理。例如,客户端电子设备3000的操作系统是安卓操作系统。

  如图3所示,入口表示进行切换控制的入口。媒体播放器A表示当前播放器。媒体播放器B表示新播放器。视频播放器A表示媒体播放器A中的用于渲染和播放视频的播放器。视频播放器B表示媒体播放器B中的用于渲染和播放视频的播放器。视频消费者表示缓存中的所要播放的视频数据。

  如图3所示,在操作1,在入口,外部调用switchVideoPath以设置不同清晰度视频的路径,从而启动清晰度的切换。

  在操作2,初始化媒体播放器B。

  在操作3,入口向正在播放视频的媒体播放器A请求获取当前进度。在操作4,媒体播放器A将当前进度返回给入口。

  在操作5,入口指示媒体播放器B搜索到当前进度之后的一个时刻作为准备进行渲染的期望时刻,例如,与当前进度间隔5s之后的一个时刻。

  在操作6,入口指示媒体播放器B进行播放。接着,在操作7,媒体播放器B指示其中的视频播放器B进行播放。

  媒体播放器B从网络获取媒体数据,并且对媒体数据进行分离,以得到视频流、音频流等。视频流被传递给视频播放器B以进行解码。在图3中,为了详细说明媒体数据处理的过程,而分别示出了媒体播放器A、B和视频播放器A、B。然而,这里公开的实施例所针对的视频的处理,因此,可以用播放器表示媒体播放器中视频处理的部分或视频播放器。

  在视频播放器B对视频流进行解码之后,视频播放器B完成了渲染之前的准备处理。接着,在操作8,视频播放器B向入口发送onSwitchVideoReady的信号以及准备进行渲染的期望时刻。

  媒体播放器A可以比较所述期望时刻和当前播放进度。如果当前播放进度大于所述期望时刻,则媒体播放器B会继续向前搜索一段时间,作为期望时刻。

  如果当前播放进度大于所述期望时刻,则在操作9、10,媒体播放器A通过prepareSwitchPlayer方法将所述期望时刻设置到自己的视频播放器A中,作为切换时刻,以准备进行清晰度的切换。

  当视频播放器A播放到所述切换时刻后,开始执行视频播放的切换。在操作11,视频播放器A发出onSwitchVideo信号。在操作12、13,视频播放器B开始视频播放的切换。这里,将原视频播放器A中的渲染对象设置到视频播放器B中。在操作14,视频播放器B开始使用视频消费者中的视频数据进行播放。

  在操作15,视频播放器B发出onSwitchVideoDone信号,表明视频播放器B已经完成切换并开始播放视频。

  在操作16,关闭媒体播放器A(及其视频播放器A)。

  在操作17,更新媒体播放器的设置。这里,将媒体播放器B设置为新的媒体播放器A。

  之后,当用户再次选择新的清晰度时,可以重新执行上面的操作,以切换到该新的清晰度。

  本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

  计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

  这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

  用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

  这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

  这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

  也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

  附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

  以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

《用于视频清晰度切换的方法、设备及电子设备.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)