CN110166810B - 视频渲染引擎切换方法、装置、设备及可读存储介质 - Google Patents

视频渲染引擎切换方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110166810B
CN110166810B CN201910347589.5A CN201910347589A CN110166810B CN 110166810 B CN110166810 B CN 110166810B CN 201910347589 A CN201910347589 A CN 201910347589A CN 110166810 B CN110166810 B CN 110166810B
Authority
CN
China
Prior art keywords
rendering engine
video
view
rendering
switching
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
Application number
CN201910347589.5A
Other languages
English (en)
Other versions
CN110166810A (zh
Inventor
李玉宽
翁名为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910347589.5A priority Critical patent/CN110166810B/zh
Publication of CN110166810A publication Critical patent/CN110166810A/zh
Application granted granted Critical
Publication of CN110166810B publication Critical patent/CN110166810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明实施例公开了视频渲染引擎切换方法,包括:通过第一渲染引擎对解码后的视频数据进行渲染,并通过第一视图展示所述第一渲染引擎渲染输出的视频;接收切换指令;根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图;在根据所述切换指令完成解码切换的情况下,将解码后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎;通过第二渲染引擎对解码后的视频数据进行渲染,在所述第二渲染引擎与所述第一渲染引擎完成同步渲染时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频,解决现有技术中由于视频渲染引擎切换时容易引起视频播放卡顿,破坏了原有无缝切换逻辑的技术问题。

Description

视频渲染引擎切换方法、装置、设备及可读存储介质
技术领域
本发明涉及计算机领域,尤其涉及一种视频渲染引擎切换方法、一种视频 渲染引擎切换装置、一种视频渲染引擎切换设备及一种计算机可读存储介质。
背景技术
随着电子科技以及互联网技术的发展,电子终端(特别是智能移动终端) 的功能越来越强大,只要用户按照自身的需求在电子终端上安装各种应用程序 安装包,便可以通过各种应用程序来完成各种事务或满足各种需求。例如,用 户可以在电子终端上通过多媒体播放器进行视频播放,具体可以包括视频的下 载、解码音视频并将视频输出到屏幕、音频输出到扬声器等。
当用户需要对正在播放的视频进行清晰度切换时,现有技术中一般只涉及 解码部分的无缝切换。然而,在将视频数据输出到屏幕的过程涉及到视频渲染 技术,并且往往需要对渲染引擎进行切换,比如当用户在对视频进行清晰度切 换时需要对视频做增强处理,需要在视频渲染阶段经过一系列较复杂的运算, 那么需要切换渲染引擎,切换渲染引擎容易引起视频播放卡顿,并对原有的无 缝切换逻辑造成破坏,满足不了无缝切换,甚至导致播放器的重启。
发明内容
本发明实施例提供一种视频渲染引擎切换方法、一种视频渲染引擎切换装 置、一种视频渲染引擎切换设备及一种计算机可读存储介质,以解决现有技术 中在视频渲染引擎切换时容易引起视频播放卡顿,破坏了原有无缝切换逻辑的 技术问题。
为了解决上述技术问题,本发明实施例一方面公开了一种视频渲染引擎切 换方法,包括
通过第一渲染引擎对解码后的视频数据进行渲染,并通过第一视图展示所 述第一渲染引擎渲染输出的视频;
接收切换指令;
根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲 染输出的视频的第二视图;
在根据所述切换指令完成解码切换的情况下,将解码后的视频数据同时输 入到所述第一渲染引擎和所述第二渲染引擎;
通过第二渲染引擎对解码后的视频数据进行渲染,在所述第二渲染引擎与 所述第一渲染引擎完成同步渲染时,切换到所述第二视图来展示所述第二渲染 引擎渲染输出的视频。
在其中一种实施方式中,所述切换指令指示将所述视频从第一清晰度切换 到第二清晰度,所述第二清晰度要求在图像渲染的过程中进行后处理。
在其中一种实施方式中,所述根据所述切换指令创建第二渲染引擎,包括: 创建用于渲染所述第二清晰度的视频数据的第二渲染引擎。
在其中一种实施方式中,所述在所述第二渲染引擎与所述第一渲染引擎完 成同步渲染时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频, 包括:
在所述第二渲染引擎完成第一帧画面的渲染时,切换到所述第二视图来展 示所述第二渲染引擎渲染输出的视频。
在其中一种实施方式中,所述根据所述切换指令创建第二渲染引擎,以及 用于展示所述第二渲染引擎渲染输出的视频的第二视图,包括:
根据所述切换指令通过用户界面UI层控制播放器层创建第二渲染引擎,以 及通过所述UI层创建用于展示所述第二渲染引擎渲染输出的视频的第二视图;
通过所述UI层向所述播放器层传递所述第二视图。
在其中一种实施方式中,所述方法还包括:
所述根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引 擎渲染输出的视频的第二视图之后,将所述第二视图置于所述第一视图的下方, 在所述切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频之前,保 持通过第一视图展示所述第一渲染引擎渲染输出的视频。
在其中一种实施方式中,所述切换到所述第二视图来展示所述第二渲染引 擎渲染输出的视频,包括:
通过播放器层向UI层发送首帧事件;所述首帧事件用于触发所述UI层执 行切换;
通过所述UI层控制所述播放器层删除所述第一渲染引擎,并移除所述第一 视图。
本发明实施例另一方面公开了一种视频渲染引擎切换装置,包括:
第一渲染单元,用于通过第一渲染引擎对解码后的视频数据进行渲染,并 通过第一视图展示所述第一渲染引擎渲染输出的视频;
指令接收单元,用于接收切换指令;
创建单元,用于根据所述切换指令创建第二渲染引擎,以及用于展示所述 第二渲染引擎渲染输出的视频的第二视图;
解码输入单元,用于在根据所述切换指令完成解码切换的情况下,将解码 后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎;
第二渲染单元,用于通过第二渲染引擎对解码后的视频数据进行渲染,在 所述第二渲染引擎与所述第一渲染引擎完成同步渲染时,切换到所述第二视图 来展示所述第二渲染引擎渲染输出的视频。
本发明实施例另一方面公开了视频渲染引擎切换设备,包括处理器,所述 处理器被配置用于调用存储的程序代码,执行上述视频渲染引擎切换方法。
本发明实施例另一方面公开了一种计算机可读存储介质,所述计算机可读 存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行 上述视频渲染引擎切换方法。
本发明实施例另一方面公开了一种计算机程序产品,所述计算机程序产品 包含程序指令,所述程序指令当被处理器执行时使所述处理器执行上述视频渲 染引擎切换方法。
实施本发明实施例,通过第一渲染引擎对解码后的视频数据进行渲染,并 通过第一视图展示第一渲染引擎渲染输出的视频;根据接收的切换指令创建第 二渲染引擎,以及用于展示第二渲染引擎渲染输出的视频的第二视图;在根据 所述切换指令完成解码切换的情况下,将解码后的视频数据同时输入到所述第 一渲染引擎和所述第二渲染引擎,即在创建第二渲染引擎时,暂时保留普通渲 染引擎;通过第二渲染引擎对解码后的视频数据进行渲染,并在第二渲染引擎 与第一渲染引擎完成同步渲染时,切换到第二视图来展示第二渲染引擎渲染输 出的视频,由于第二视图与第一视图是同步展示视频,因此切换到第二视图的 过程用户是无感知,解决了现有技术中在视频渲染引擎切换时容易引起视频播 放卡顿,破坏了原有无缝切换逻辑的技术问题,并避免了播放器的重启,实现 了在两个渲染引擎切换的情况下,依然能够做到无缝切换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的视频渲染引擎切换方法的整体架构图;
图2是本发明实施例提供的视频渲染引擎切换方法的流程示意图;
图3是本发明实施例提供的切换指令输入的示意图;
图4是本发明实施例提供的创建第二渲染引擎和第二视图的原理示意图;
图5是本发明实施例提供的解码视频数据传输的原理示意图;
图6是本发明实施例提供的渲染切换的原理示意图;
图7是本发明实施例提供的视频渲染引擎切换装置的结构示意图;
图8是本发明实施例提供的视频渲染引擎切换设备的结构示意图;
图9是本发明提供的另一实施例的视频渲染引擎切换设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是 全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好的理解本发明实施例提供的视频渲染引擎切换方法、装置和设备, 下面先对本发明实施例视频渲染的整体架构进行描述,如图1示出的本发明实 施例提供的视频渲染引擎切换方法的整体架构图,视频渲染引擎切换设备可以 安装有视频播放器的应用程序,该视频播放器通过本发明实施例的视频渲染引 擎切换方法对视频进行渲染。图1中具体为视频播放器的运行架构图,可以包 括用户界面(User Interface,UI)层和播放器层,播放器层用于播放视频,UI 层用于控制播放逻辑。播放器层可以包括解码模块和渲染模块,解码模块对视 频数据进行解码,送到渲染模块,渲染模块将视频渲染到视图(view)上。在 其中一种实施方式中,图1中的解码模块可以只包括调用接口,用于调用视频 渲染引擎切换设备的解码芯片的解码功能或外部设备的解码功能。
该视频渲染引擎切换设备即本发明实施例执行该视频渲染引擎切换方法的 装置或设备,可以包括但不限于台式计算机、膝上型计算机、平板计算机、智 能终端等终端设备或服务器等网络设备,该服务器可以为独立服务器,也可以 为集群服务器。本发明实施例不做限制。
在其中一个实施方式中,本发明实施例中的UI层可以为视频播放器的最上 层,UI层可以控制用户所能看到和交互的东西,UI层也包含业务逻辑组件,该 业务逻辑组件可以构成播放体验的独特性。
UI层可以包括四大组:皮肤、控件、UI逻辑和业务逻辑。
其中,皮肤可以是文字颜色、背景色、图标样式等等,控件可以是对视频 播放器视觉相关部分的统称,可以包括进度控制条、按钮和动画图标等等,皮 肤和控件都可以使用操作系统提供的UI组件来实现,开发者可以很方便的进行 集成。UI逻辑可以用于定义播放过程中和用户交互方面所有可见的交互,可以 包括播放列表、缩略图、播放频道的选择以及社交媒体分享等。业务逻辑可以 一些独特性的业务,包括认证和支付、频道和播放列表的获取,以及广告等。
下面结合图2示出的本发明实施例提供的视频渲染引擎切换方法的流程示 意图,具体说明本发明实施例图1中的视频渲染引擎切换设备如何进行视频渲 染,可以包括以下步骤:
步骤S200:视频渲染引擎切换设备通过第一渲染引擎对解码后的视频数据 进行渲染,并通过第一视图展示所述第一渲染引擎渲染输出的视频;
具体地,用户可以通过视频渲染引擎切换设备中安装的视频播放器来播放 视频,该视频可以是在云端下载而来的视频,也可以是存储在本地的视频。在 该视频渲染引擎切换设备准备播放用户选中的第一清晰度的视频时,可以通过 UI层控制播放器层创建第一渲染引擎,以及该UI层向播放器层传递第一视图, 创建的第一渲染引擎挂接到解码模块,即第一渲染引擎与解码模块建立连接, 该解码模块将解码后的视频数据输送给该第一渲染引擎进行视频渲染;该第一 视图用于展示视频,以使该播放器层的第一渲染引擎将视频渲染到该第一视图 上,那么该视频渲染引擎切换设备的显示屏即可实现视频播放,或者该视频渲 染引擎切换设备通过外部显示设备来实现视频播放。
在其中一种实施方式中,播放器层也可以自己创建视图,然后将该创建的 视图贴在该UI层传递的第一视图上。
步骤S202:视频渲染引擎切换设备接收切换指令;
具体地,本发明实施例中的切换指令指示将正在播放的视频从第一清晰度 切换到第二清晰度,所述第二清晰度要求在图像渲染的过程中进行后处理,例 如在图像渲染的过程中需要进行图像增强处理。如图3示出的本发明实施例提 供的切换指令输入的示意图,假设第一清晰度为标清270P,当前视频正以该第 一清晰度来进行播放,当用户点击“高清增强480P”,以指示将当前视频从标清 270P切换到高清增强480P,该高清增强480P要求在图像渲染的过程中进行图 像增强处理,那么用户输入的该点击操作即为向该视频渲染引擎切换设备输入 切换指令,该视频渲染引擎切换设备即接收到该切换指令。
步骤S204:视频渲染引擎切换设备根据所述切换指令创建第二渲染引擎, 以及用于展示所述第二渲染引擎渲染输出的视频的第二视图;
具体地,视频渲染引擎切换设备根据切换指令创建第二渲染引擎和第二视 图,同时暂时保留第一渲染引擎。该第二渲染引擎用于对按照切换后的清晰度 进行解码后的视频数据进行渲染;该第二视图用于展示该第二渲染引擎渲染输 出的视频的第二视图。
在其中一种实施方式中,如图4示出的本发明实施例提供的创建第二渲染 引擎和第二视图的原理示意图,视频渲染引擎切换设备通过UI层可以控制播放 器层创建哪种渲染引擎,因此步骤S204可以具体为视频渲染引擎切换设备根据 该切换指令通过用户界面UI层控制播放器层创建第二渲染引擎,以及通过该 UI层创建用于展示所述第二渲染引擎渲染输出的视频的第二视图,最后通过UI 层向该播放器层传递所述第二视图。
步骤S206:视频渲染引擎切换设备在根据所述切换指令完成解码切换的情 况下,将解码后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎;
具体地,在步骤S202视频渲染引擎切换设备接收到切换指令后,该视频渲 染引擎切换设备的解码模块进行无缝切换,在解码模块完成解码的无缝切换后, 创建的第二渲染引擎挂接到解码模块,即第二渲染引擎与解码模块建立连接, 如图5示出的本发明实施例提供的解码视频数据传输的原理示意图,此时解码 模块将解码后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎。 此时,对用户而言看到的视频还是通过第一渲染引擎对视频数据进行渲染,并 通过第一视图展示所述第一渲染引擎渲染输出的视频。
步骤S208:视频渲染引擎切换设备通过第二渲染引擎对解码后的视频数据 进行渲染,在所述第二渲染引擎与所述第一渲染引擎完成同步渲染时,切换到 所述第二视图来展示所述第二渲染引擎渲染输出的视频。
具体地,由于解码模块解码后的视频数据是同时输送到第一渲染引擎和第 二渲染引擎,因此第二渲染引擎完成渲染输出的视频与第一渲染引擎完成渲染 输出的视频是同步的。也就是说,在其中一个实施方式中,第二渲染引擎对解 码后的视频数据进行渲染,在第二渲染引擎完成第一帧画面的渲染时,即表明 第二渲染引擎与第一渲染引擎完成同步渲染,那么视频渲染引擎切换设备即将 播放的视频切换到该第二视图来展示的该第二渲染引擎渲染输出的视频。
在其中一种实施方式中,在步骤S204根据所述切换指令创建第二渲染引擎, 以及用于展示所述第二渲染引擎渲染输出的视频的第二视图之后,视频渲染引 擎切换设备可以将第二视图置于该第一视图的下方,从而实现对第二视图的隐 藏,也就是说如图5所示,第二视图实际出于不可见状态,在所述切换到所述 第二视图来展示所述第二渲染引擎渲染输出的视频之前,保持通过第一视图展 示所述第一渲染引擎渲染输出的视频。那么在第二渲染引擎完成第一帧画面的 渲染时,视频渲染引擎切换设备通过播放器层可以向UI层发送首帧事件,该首 帧事件用于表征第二渲染引擎完成了第一帧画面的渲染,以触发该UI层执行切 换;那么该UI层接收到该首帧事件后,即控制播放器层删除或销毁该第一渲染引擎,并移除该第一视图,如图6示出的本发明实施例提供的渲染切换的原理 示意图,那么该第二视图即从不可见状态变为可见状态,后续通过第二视图来 展示该第二渲染引擎渲染输出的视频。该第一视图的移除对用户而言几乎是无 感知的,用户只会体会到视频清晰度的变化,从第一清晰度变化为第二清晰度, 继而实现了视频渲染的无缝切换。
本发明实施例不限于播放器层可以向UI层发送首帧事件,还可以发送其他 触发信息,只要用于表明第二渲染引擎与第一渲染引擎完成同步渲染,触发该 UI层执行切换即可。
在其中一种实施方式中,视频渲染引擎切换设备的第二渲染引擎与第一渲 染引擎在完成同步渲染时,还可以直接通过播放器层来触发删除或销毁该第一 渲染引擎,并移除该第一视图。也就是说,在进行视频渲染引擎的切换时,可 以在播放器层预先设置好控制逻辑,比如播放器层创建了第二渲染引擎后,播 放器层主动触发自身预先设置的监控逻辑,监控第二渲染引擎与第一渲染引擎 是否完成同步渲染,在监控到第二渲染引擎与第一渲染引擎是否完成同步渲染 时,即可主动删除或销毁该第一渲染引擎,并移除该第一视图,无需向UI层发 送首帧事件或其他触发信息,然后再由UI层控制播放器层删除或销毁该第一渲 染引擎,并移除该第一视图。因而可以更加高效快速完成视频渲染引擎的切换, 更快地实现视频渲染引擎的无缝切换。
本发明实施例还公开了一种计算机程序产品,该计算机程序产品包含程序 指令,所述程序指令当被处理器执行时使所述处理器执行上述方法实施例中视 频渲染引擎切换方法。其中该计算机程序产品可以为视频播放器等应用程序, 该计算机程序产品可以播放从云端下载而来的视频,也可以是播放存储在视频 渲染引擎切换设备本地或本端的视频。通过该计算机程序产品,可以对输入的 视频数据进行解码、通过本发明实施例的视频渲染引擎切换方法来完成渲染等 处理,然后触发视频渲染引擎切换设备的显示单元对渲染后的视频进行显示。
实施本发明实施例,通过第一渲染引擎对解码后的视频数据进行渲染,并 通过第一视图展示第一渲染引擎渲染输出的视频;根据接收的切换指令创建第 二渲染引擎,以及用于展示第二渲染引擎渲染输出的视频的第二视图;在根据 所述切换指令完成解码切换的情况下,将解码后的视频数据同时输入到所述第 一渲染引擎和所述第二渲染引擎,即在创建第二渲染引擎时,暂时保留普通渲 染引擎;通过第二渲染引擎对解码后的视频数据进行渲染,并在第二渲染引擎 与第一渲染引擎完成同步渲染时,切换到第二视图来展示第二渲染引擎渲染输 出的视频,由于第二视图与第一视图是同步展示视频,因此切换到第二视图的 过程用户是无感知,解决了现有技术中由于视频渲染引擎切换引起视频播放卡 顿,破坏了原有无缝切换逻辑的技术问题,并避免了播放器的重启,实现了在 两个渲染引擎切换的情况下,依然能够做到无缝切换。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种 视频渲染引擎切换装置,如图7示出的本发明实施例提供的视频渲染引擎切换 装置的结构示意图,视频渲染引擎切换装置70包括第一渲染单元700、指令接 收单元702、创建单元704、解码输入单元706和第二渲染单元708,其中,
第一渲染单元700,用于通过第一渲染引擎对解码后的视频数据进行渲染, 并通过第一视图展示所述第一渲染引擎渲染输出的视频;
指令接收单元702,用于接收切换指令;
创建单元704,用于根据所述切换指令创建第二渲染引擎,以及用于展示所 述第二渲染引擎渲染输出的视频的第二视图;
解码输入单元706,用于在根据所述切换指令完成解码切换的情况下,将解 码后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎;
第二渲染单元708,用于通过第二渲染引擎对解码后的视频数据进行渲染, 在所述第二渲染引擎与所述第一渲染引擎完成同步渲染时,切换到所述第二视 图来展示所述第二渲染引擎渲染输出的视频。
在其中一个实施方式中,所述切换指令指示将所述视频从第一清晰度切换 到第二清晰度,所述第二清晰度要求在图像渲染的过程中进行后处理。
在其中一个实施方式中,创建单元704根据所述切换指令创建第二渲染引 擎,可以包括:创建用于渲染所述第二清晰度的视频数据的第二渲染引擎。
在其中一个实施方式中,在所述第二渲染引擎与所述第一渲染引擎完成同 步渲染时,第二渲染单元708切换到所述第二视图来展示所述第二渲染引擎渲 染输出的视频,可以包括:
在所述第二渲染引擎完成第一帧画面的渲染时,切换到所述第二视图来展 示所述第二渲染引擎渲染输出的视频。
在其中一个实施方式中,根据所述切换指令创建第二渲染引擎,以及用于 展示所述第二渲染引擎渲染输出的视频的第二视图,包括:
根据所述切换指令通过用户界面UI层控制播放器层创建第二渲染引擎,以 及通过所述UI层创建用于展示所述第二渲染引擎渲染输出的视频的第二视图;
通过所述UI层向所述播放器层传递所述第二视图。
在其中一个实施方式中,创建单元704根据所述切换指令创建第二渲染引 擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图,可以包括:
根据所述切换指令通过用户界面UI层控制播放器层创建第二渲染引擎,以 及通过所述UI层创建用于展示所述第二渲染引擎渲染输出的视频的第二视图; 通过所述UI层向所述播放器层传递所述第二视图。
在其中一个实施方式中,创建单元704所述根据所述切换指令创建第二渲 染引擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图之后,还 可以用于将所述第二视图置于所述第一视图的下方,该第二渲染单元708在所 述切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频之前,还用于 保持通过第一视图展示所述第一渲染引擎渲染输出的视频。
在其中一个实施方式中,第二渲染单元708切换到所述第二视图来展示所 述第二渲染引擎渲染输出的视频,可以包括:
通过播放器层向UI层发送首帧事件;所述首帧事件用于触发所述UI层执 行切换;通过所述UI层控制所述播放器层删除所述第一渲染引擎,并移除所述 第一视图。
视频渲染引擎切换装置70的各功能单元的功能可根据上述方法实施例中的 方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不 再赘述。
为了便于更好地实施本发明实施例的上述方案,本发明还对应提供了一种 视频渲染引擎切换设备,下面结合附图来进行详细说明:
图8为本申请实施例的视频渲染引擎切换设备的一种实现方式的示意性框 图。其中,视频渲染引擎切换设备800可以包括处理器810、存储器830和总线 系统850。其中,处理器和存储器通过总线系统相连,该存储器用于存储指令, 该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且 处理器可以调用存储器中存储的程序代码执行本申请描述的视频渲染引擎切换 方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器810可以是中央处理单元(Central ProcessingUnit,简称为“CPU”),该处理器810还可以是其他通用处理器、数字信号处理 器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编 程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以 是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器830可以包括只读存储器(ROM)设备或者随机存取存储器(RAM) 设备。任何其他适宜类型的存储设备也可以用作存储器830。存储器830可以包 括由处理器810使用总线850访问的代码和数据831。存储器830可以进一步包 括操作系统833和应用程序835,该应用程序835包括允许处理器810执行本申 请描述的视频渲染引擎切换方法的至少一个程序。例如,应用程序835可以包 括应用1至N,其进一步包括执行在本申请描述的视频渲染引擎切换方法的视 频播放器。
该总线系统850除包括数据总线之外,还可以包括电源总线、控制总线和 状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统 850。
可选的,视频渲染引擎切换设备800还可以包括一个或多个输出设备,诸 如显示器870。在一个示例中,显示器870可以是触感显示器,其将显示器与可 操作地感测触摸输入的触感单元合并。显示器870可以经由总线850连接到处 理器810。
其中,处理器810具体执行:
创建第一渲染引擎,通过第一渲染引擎对解码后的视频数据进行渲染,并 通过第一视图展示所述第一渲染引擎渲染输出的视频;
接收切换指令;
根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲 染输出的视频的第二视图;
在根据所述切换指令完成解码切换的情况下,将解码后的视频数据同时输 入到所述第一渲染引擎和所述第二渲染引擎;
通过第二渲染引擎对解码后的视频数据进行渲染,在所述第二渲染引擎与 所述第一渲染引擎完成同步渲染时,切换到所述第二视图来展示所述第二渲染 引擎渲染输出的视频。
在其中一个实施方式中,所述切换指令指示将所述视频从第一清晰度切换 到第二清晰度,所述第二清晰度要求在图像渲染的过程中进行后处理。
在其中一个实施方式中,处理器810根据所述切换指令创建第二渲染引擎, 包括:创建用于渲染所述第二清晰度的视频数据的第二渲染引擎。
在其中一个实施方式中,处理器810在所述第二渲染引擎与所述第一渲染 引擎完成同步渲染时,切换到所述第二视图来展示所述第二渲染引擎渲染输出 的视频,包括:
在所述第二渲染引擎完成第一帧画面的渲染时,切换到所述第二视图来展 示所述第二渲染引擎渲染输出的视频。
在其中一个实施方式中,处理器810根据所述切换指令创建第二渲染引擎, 以及用于展示所述第二渲染引擎渲染输出的视频的第二视图,包括:
根据所述切换指令通过用户界面UI层控制播放器层创建第二渲染引擎,以 及通过所述UI层创建用于展示所述第二渲染引擎渲染输出的视频的第二视图;
通过所述UI层向所述播放器层传递所述第二视图。
在其中一个实施方式中,处理器810根据所述切换指令创建第二渲染引擎, 以及用于展示所述第二渲染引擎渲染输出的视频的第二视图之后,还可以执行 将所述第二视图置于所述第一视图的下方,在所述切换到所述第二视图来展示 所述第二渲染引擎渲染输出的视频之前,保持通过第一视图展示所述第一渲染 引擎渲染输出的视频。
在其中一个实施方式中,处理器810切换到所述第二视图来展示所述第二 渲染引擎渲染输出的视频,包括:
通过播放器层向UI层发送首帧事件;所述首帧事件用于触发所述UI层执 行切换;
通过所述UI层控制所述播放器层删除所述第一渲染引擎,并移除所述第一 视图。
在其中一个实施方式中,视频渲染引擎切换设备800中的存储器830可以 不存储有执行在本申请描述的视频渲染引擎切换方法的代码或应用程序(包括 视频播放器),该执行在本申请描述的视频渲染引擎切换方法的代码或应用程序 可以存储在云端,视频渲染引擎切换设备800通过从云端获取执行在本申请描 述的视频渲染引擎切换方法的代码或应用程序,来实现本发明实施例的视频渲 染引擎切换方法。
图9是本申请实施例的视频渲染引擎切换设备的另一种实现方式的示意性 框图。视频渲染引擎切换设备900可以包含成像设备901、视频编码器100、视 频解码器200(和/或仅由处理单元906的逻辑电路907实施的视频编码器)、天 线902、一个或多个处理器903、一个或多个存储器904和/或显示设备905。
如图所示,成像设备901、天线902、处理单元906、逻辑电路907、视频 编码器100、视频解码器200、处理器903、存储器904和/或显示设备905能够 互相通信。视频渲染引擎切换设备900可以只包含视频解码器200。
在一些实例中,如图所示,视频渲染引擎切换设备900可以包含天线902。 例如,天线902可以用于传输或接收视频数据的经编码比特流。另外,在一些 实例中,视频渲染引擎切换设备900可以包含显示设备905。显示设备905可以 用于呈现视频数据。在一些实例中,如图所示,逻辑电路907可以通过处理单 元906实施。处理单元906可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。视频渲染引擎切换设备900 也可以包含可选处理器903,该可选处理器903类似地可以包含专用集成电路 (application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器 等。在一些实例中,逻辑电路907可以通过硬件实施,如视频编码专用硬件等, 处理器903可以通过通用软件、操作系统等实施。另外,存储器904可以是任 何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存储器(Dynamic Random Access Memory, DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,存 储器904可以由超速缓存内存实施。在一些实例中,逻辑电路907可以访问存 储器904(例如用于实施图像缓冲器)。在其它实例中,逻辑电路907和/或处理 单元906可以包含存储器(例如,缓存等)用于实施图像缓冲器等。
在一些实例中,通过逻辑电路实施的视频编码器100可以包含(例如,通 过处理单元906或存储器904实施的)图像缓冲器和(例如,通过处理单元906 实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。
视频解码器200可以以类似方式通过逻辑电路907实施,或本文中所描述 的任何其它解码器系统或子系统所论述的各种模块。在一些实例中,逻辑电路 实施的视频解码器200可以包含(通过处理单元2820或存储器904实施的)图 像缓冲器和(例如,通过处理单元906实施的)图形处理单元。图形处理单元 可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路907实施的 视频解码器200,以执行或实施上述方法实施例的步骤。
在一些实例中,视频渲染引擎切换设备900的天线902可以用于接收视频 数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码 视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关 的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/ 或定义编码分割的数据)。视频渲染引擎切换设备900还可包含耦合至天线902 并用于解码经编码比特流的视频解码器200。显示设备905用于呈现视频帧。
实施本发明实施例,通过第一渲染引擎对解码后的视频数据进行渲染,并 通过第一视图展示第一渲染引擎渲染输出的视频;根据接收的切换指令创建第 二渲染引擎,以及用于展示第二渲染引擎渲染输出的视频的第二视图;在根据 所述切换指令完成解码切换的情况下,将解码后的视频数据同时输入到所述第 一渲染引擎和所述第二渲染引擎,即在创建第二渲染引擎时,暂时保留普通渲 染引擎;通过第二渲染引擎对解码后的视频数据进行渲染,并在第二渲染引擎 与第一渲染引擎完成同步渲染时,切换到第二视图来展示第二渲染引擎渲染输 出的视频,由于第二视图与第一视图是同步展示视频,因此切换到第二视图的 过程用户是无感知,解决了现有技术中由于视频渲染引擎切换引起视频播放卡 顿,破坏了原有无缝切换逻辑的技术问题,并避免了播放器的重启,实现了在 两个渲染引擎切换的情况下,依然能够做到无缝切换。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程, 是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。 其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之 权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (9)

1.一种视频渲染引擎切换方法,其特征在于,包括:
在第一渲染引擎挂接到解码模块时,通过所述第一渲染引擎对由所述解码模块解码后的视频数据进行渲染,并通过第一视图展示所述第一渲染引擎渲染输出的视频;
接收切换指令;
根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图;所述第二视图置于所述第一视图的下方,且所述第二视图处于不可见状态;
在根据所述切换指令完成解码切换的情况下,将所述第二渲染引擎挂接到所述解码模块,在将由所述解码模块解码后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎时,保持通过所述第一视图展示所述第一渲染引擎渲染输出的视频;一个所述解码模块同时与所述第一渲染引擎和所述第二渲染引擎相连接,所述第一渲染引擎与所述第二渲染引擎不相同;
通过第二渲染引擎对解码后的视频数据进行渲染,在所述第二渲染引擎完成第一帧画面的渲染时,确定所述第二渲染引擎与所述第一渲染引擎完成同步渲染,删除或销毁所述第一渲染引擎,并移除所述第一视图,并在所述第二视图从不可见状态切换为可见状态时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频;所述第二视图展示的视频的第二清晰度不同于所述第一视图展示的视频的第一清晰度。
2.如权利要求1所述的方法,其特征在于,所述切换指令指示将所述视频从第一清晰度切换到第二清晰度,所述第二清晰度要求在图像渲染的过程中进行后处理。
3.如权利要求2所述的方法,其特征在于,所述根据所述切换指令创建第二渲染引擎,包括:创建用于渲染所述第二清晰度的视频数据的第二渲染引擎。
4.如权利要求1所述的方法,其特征在于,所述根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图,包括:
根据所述切换指令通过用户界面UI层控制播放器层创建第二渲染引擎,以及通过所述UI层创建用于展示所述第二渲染引擎渲染输出的视频的第二视图;
通过所述UI层向所述播放器层传递所述第二视图。
5.如权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图之后,将所述第二视图置于所述第一视图的下方,在所述删除或销毁所述第一渲染引擎,并移除所述第一视图,并在所述第二视图从不可见状态切换为可见状态时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频之前,保持通过第一视图展示所述第一渲染引擎渲染输出的视频。
6.如权利要求5所述的方法,其特征在于,所述删除或销毁所述第一渲染引擎,并移除所述第一视图,并在所述第二视图从不可见状态切换为可见状态时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频,包括:
通过播放器层向UI层发送首帧事件;所述首帧事件用于触发所述UI层执行切换;
通过所述UI层控制所述播放器层删除所述第一渲染引擎,并移除所述第一视图,并在所述第二视图从不可见状态切换为可见状态时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频。
7.一种视频渲染引擎切换装置,其特征在于,包括:
第一渲染单元,用于在第一渲染引擎挂接到解码模块时,通过所述第一渲染引擎对由所述解码模块解码后的视频数据进行渲染,并通过第一视图展示所述第一渲染引擎渲染输出的视频;
指令接收单元,用于接收切换指令;
创建单元,用于根据所述切换指令创建第二渲染引擎,以及用于展示所述第二渲染引擎渲染输出的视频的第二视图;所述第二视图置于所述第一视图的下方,且所述第二视图处于不可见状态;
解码输入单元,用于在根据所述切换指令完成解码切换的情况下,将所述第二渲染引擎挂接到所述解码模块,在将由所述解码模块解码后的视频数据同时输入到所述第一渲染引擎和所述第二渲染引擎时,保持通过所述第一视图展示所述第一渲染引擎渲染输出的视频;一个所述解码模块同时与所述第一渲染引擎和所述第二渲染引擎相连接,所述第一渲染引擎与所述第二渲染引擎不相同;
第二渲染单元,用于通过第二渲染引擎对解码后的视频数据进行渲染,在所述第二渲染引擎完成第一帧画面的渲染时,确定所述第二渲染引擎与所述第一渲染引擎完成同步渲染,删除或销毁所述第一渲染引擎,并移除所述第一视图,并在所述第二视图从不可见状态切换为可见状态时,切换到所述第二视图来展示所述第二渲染引擎渲染输出的视频;所述第二视图展示的视频的第二清晰度不同于所述第一视图展示的视频的第一清晰度。
8.一种视频渲染引擎切换设备,其特征在于,包括处理器,所述处理器被配置用于调用存储的程序代码,执行如权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-6任一项所述的方法。
CN201910347589.5A 2019-04-25 2019-04-25 视频渲染引擎切换方法、装置、设备及可读存储介质 Active CN110166810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910347589.5A CN110166810B (zh) 2019-04-25 2019-04-25 视频渲染引擎切换方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910347589.5A CN110166810B (zh) 2019-04-25 2019-04-25 视频渲染引擎切换方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110166810A CN110166810A (zh) 2019-08-23
CN110166810B true CN110166810B (zh) 2022-03-29

Family

ID=67640211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910347589.5A Active CN110166810B (zh) 2019-04-25 2019-04-25 视频渲染引擎切换方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110166810B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765098B (zh) * 2019-09-02 2020-10-02 望海康信(北京)科技股份公司 流程运行预测系统及方法
CN110708602B (zh) * 2019-10-15 2022-08-19 北京字节跳动网络技术有限公司 视频启动方法、装置、电子设备及存储介质
CN111314764B (zh) * 2020-03-04 2022-05-20 南方电网科学研究院有限责任公司 跨屏动画在分布式渲染环境中的同步方法
CN111526425B (zh) * 2020-04-26 2022-08-09 北京字节跳动网络技术有限公司 视频播放方法、装置、可读介质及电子设备
CN112333514B (zh) * 2020-07-24 2024-02-06 深圳Tcl新技术有限公司 显示模式切换方法、装置、智能电视及计算机可读存储介质
CN111918129B (zh) * 2020-08-10 2022-04-01 四川长虹电器股份有限公司 视频间无缝衔接播放的方法、系统及终端
CN114979748B (zh) * 2022-05-24 2024-02-23 上海哔哩哔哩科技有限公司 视频处理方法及装置
CN116700694B (zh) * 2023-08-07 2024-01-26 深圳凡泰极客科技有限责任公司 小程序引擎
CN117036566A (zh) * 2023-08-28 2023-11-10 北京趋动智能科技有限公司 远程图像渲染方法、系统、电子设备及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9386063B2 (en) * 2011-09-19 2016-07-05 Comcast Cable Communications, Llc Content storage and identification
CN107197371B (zh) * 2016-03-15 2019-12-13 广州市动景计算机科技有限公司 视频清晰度的切换方法及装置
CN109495761A (zh) * 2017-09-13 2019-03-19 杭州海康威视系统技术有限公司 视频切换方法及装置
CN108055250A (zh) * 2017-12-01 2018-05-18 暴风集团股份有限公司 视频播放装置、方法及终端

Also Published As

Publication number Publication date
CN110166810A (zh) 2019-08-23

Similar Documents

Publication Publication Date Title
CN110166810B (zh) 视频渲染引擎切换方法、装置、设备及可读存储介质
CN109922360B (zh) 视频处理方法、装置及存储介质
CN108282686B (zh) 视频画面处理方法、装置及电子设备
CN108566561B (zh) 视频播放方法、装置及存储介质
US10531149B2 (en) Method and system for managing buffers
CN109309842B (zh) 直播数据处理方法和装置、计算机设备和存储介质
KR20140030226A (ko) 글로벌 저작 시스템
CN109151966B (zh) 终端控制方法、装置、终端设备及存储介质
KR20110022653A (ko) 균일한 비디오 디코딩 및 디스플레이
US10805570B2 (en) System and method for streaming multimedia data
CN111790148B (zh) 游戏场景中的信息交互方法、设备及计算机可读介质
CN109086105B (zh) 一种页面布局转换方法、装置及电子设备
CN105072461A (zh) 一种数据处理方法和装置
CN109168012B (zh) 用于终端设备的信息处理方法和装置
CN113411660B (zh) 视频数据的处理方法、装置和电子设备
CN116450149B (zh) 一种硬件解码方法、设备及存储介质
WO2018094261A1 (en) Method and system for managing buffers
CN110162350B (zh) 通知栏信息的显示方法、装置、服务器及存储介质
CN111355960B (zh) 合成视频文件的方法、装置、移动终端及存储介质
CN113411661B (zh) 用于记录信息的方法、装置、设备、存储介质及程序产品
CN112584197B (zh) 互动剧故事线的绘制方法、装置、计算机介质及电子设备
CN111866508A (zh) 视频处理方法、装置、介质及电子设备
CN111813969A (zh) 多媒体数据处理方法、装置、电子设备及计算机存储介质
CN112866779A (zh) 视频展示方法、装置、计算机设备和介质
CN110704141A (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
GR01 Patent grant
GR01 Patent grant