CN110662090B - 一种视频处理方法和系统 - Google Patents

一种视频处理方法和系统 Download PDF

Info

Publication number
CN110662090B
CN110662090B CN201810717167.8A CN201810717167A CN110662090B CN 110662090 B CN110662090 B CN 110662090B CN 201810717167 A CN201810717167 A CN 201810717167A CN 110662090 B CN110662090 B CN 110662090B
Authority
CN
China
Prior art keywords
texture
screen
special effect
module
video
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
CN201810717167.8A
Other languages
English (en)
Other versions
CN110662090A (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 CN201810717167.8A priority Critical patent/CN110662090B/zh
Publication of CN110662090A publication Critical patent/CN110662090A/zh
Application granted granted Critical
Publication of CN110662090B publication Critical patent/CN110662090B/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4854End-user interface for client configuration for modifying image parameters, e.g. image brightness, contrast
    • 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/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4858End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Studio Circuits (AREA)

Abstract

本申请实施例公开了一种视频处理方法,应用于视频处理系统,视频处理系统包括了上屏模块和离屏模块。上屏模块可以获取根据待处理视频确定的特效参数,该特效参数中包括用于标识特效类型的模板信息和用于标识特效内容的文字信息。上屏模块保存该待处理视频对应的输入纹理,并向离屏模块发送该特效参数,由离屏模块根据该特效参数在后台完成对输入纹理的纹理渲染得到输出纹理,从而完成了对输入纹理基于特效参数的纹理渲染。该输出纹理可以由上屏模块获取,以绘制到显示界面上让用户看到具有文字特效的视频。该方法由视频处理系统完成对视频的特效处理,不需要用户具备视频处理技能,提高用户视频交流体验。本申请实施例还公开了一种视频处理系统。

Description

一种视频处理方法和系统
技术领域
本申请涉及视频处理领域,特别是涉及一种视频处理方法和系统。
背景技术
随着网络社交的普及,视频成为一种常用的网络社交媒介,用户可以将自己的日常、观点、特长等录制成视频,并将录制的视频上传到网络或者发给朋友,以通过视频进行交流。
为了让自己的视频更受欢迎,用户除了可以对视频内容进行构思外,在视频中添加视觉特效例如文字特效也是一种可行方式。
然而,在视频中添加视觉特效需要用户具有较高的视频处理技能,使得普通视频录制者难以胜任,降低了用户的视频交流体验。
发明内容
为了解决上述技术问题,本申请提供了一种视频处理方法和系统,在该视频处理方法中,利用视频处理系统完成视频的特效处理,不需要用户具备视频处理技能,提高了用户的视频交流体验。
本申请实施例公开了如下技术方案:
第一方面,本申请实施例提供一种视频处理方法,应用于视频处理系统,所述视频处理系统包括上屏模块和离屏模块,所述方法包括:
所述上屏模块获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息;
所述上屏模块保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理;
所述离屏模块根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理;
所述上屏模块根据第二纹理标识获取所述输出纹理,所述第二纹理标识用于标识所述输出纹理的存储位置。
第二方面,本申请实施例提供一种视频处理系统,所述系统包括上屏模块和离屏模块:
所述上屏模块,用于获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息;
所述上屏模块还用于保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块,用于根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理;
所述离屏模块还用于根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理;
所述上屏模块还用于根据第二纹理标识获取所述输出纹理,所述第二纹理标识用于标识所述输出纹理的存储位置。
第三方面,本申请实施例提供一种用于视频处理的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行第一方面中任一项所述的视频处理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行第一方面中任一项所述的视频处理方法。
由上述技术方案可以看出,该视频处理方法应用于视频处理系统,视频处理系统中包括了上屏模块和离屏模块。上屏模块可以获取根据待处理视频确定的特效参数,该特效参数中包括了用于标识特效类型的模板信息和用于标识特效内容的文字信息。上屏模块保存该待处理视频对应的输入纹理,并向离屏模块发送该特效参数,由离屏模块根据该特效参数在后台完成对输入纹理的纹理渲染,其中,离屏模块可以根据该特效参数获取模板信息和内容信息对应的文字特效纹理,并根据用于标识输入纹理存储位置的第一纹理标识,将文字特效纹理绘制到输入纹理上得到输出纹理,从而完成了对输入纹理基于特效参数的纹理渲染,并实现将对待处理视频的纹理渲染阶段与上屏模块的分离。纹理渲染阶段与上屏模块的分离使得视频处理系统可以更为灵活的配置纹理特效模板,提高了编码效率。该输出纹理可以由上屏模块获取,以绘制到显示界面上让用户看到具有文字特效的视频,由于对视频的特效处理由视频处理系统完成,不需要用户具备视频处理技能,提高了用户的视频交流体验。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种应用视频处理方法的系统架构图;
图2为本申请实施例提供的一种视频处理方法的流程图;
图3为本申请实施例提供的一种上屏模块提供的展示界面示例图;
图4为本申请实施例提供的一种文字特效预览界面示例图;
图5为本申请实施例提供的一种创建离屏预览对象的示例图;
图6为本申请实施例提供的一种在待处理视频上添加文字特效的方法流程图;
图7为本申请实施例提供的一种应用视频处理方法的系统架构图;
图8为本申请实施例提供的一种视频处理方法的信令交互图;
图9为本申请实施例提供的一种用于视频处理的设备的结构图;
图10为本申请实施例提供的一种用于视频处理的设备的结构图;
图11a为本申请实施例提供的一种视频处理系统的结构图;
图11b为本申请实施例提供的一种视频处理系统的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
传统的在视频中添加文字特效的方法中,视频的特效处理是由用户自己完成的,这就需要用户具有较高的视频处理技能,使得普通视频录制者难以胜任,降低了用户的视频交流体验。
为此,本申请实施例提供一种视频处理方法,该方法可以应用于视频处理系统中,使得视频的特效处理由视频处理系统完成,而非用户自己完成,从而不需要用户具备视频处理技能,提高了用户的视频交流体验。
其中,该视频处理系统可以位于具有视频处理功能的终端设备上,也可以位于具有视频处理功能的终端设备和服务器上。终端设备可以是计算机、移动终端、平板电脑等。
视频处理系统可以包括上屏模块101和离屏模块102。上屏模块101和离屏模块102可以都是图形处理库,其中,上屏模块101可以是为用户提供可视化功能的模块,可以在前端向用户展示待处理视频或具有文字特效的视频;离屏模块102可以是在后台完成纹理渲染的模块。
若视频处理系统位于具有视频处理功能的终端设备和服务器上,则上屏模块101可以位于终端设备上,离屏模块102可以位于服务器上。在这种情况下,处于终端设备中的上屏模块101和处于服务器中的离屏模块102进行数据交互。
若视频处理系统位于一个终端设备上,例如位于具有视频处理功能的终端设备上,则上屏模块101可以位于终端设备的前台,离屏模块102可以位于终端设备的后台,通过终端设备的GPU进行相关视频处理。在这种情况下,相当于视频处理系统中的上屏模块101和离屏模块102在终端设备内进行数据交互。
通过设置上屏模块101和离屏模块102这两个模块,可以实现将纹理渲染阶段与视频展示阶段的分离,使得视频处理系统可以更为灵活的配置纹理特效模板,提高了编码效率。
具体的,上屏模块101可以获取根据待处理视频确定的特效参数,该特效参数中包括了用于标识特效类型的模板信息和用于标识特效内容的文字信息。上屏模块101保存该待处理视频对应的输入纹理,例如,该输入纹理可以保存在存储空间104中。上屏模块101还可以向离屏模块102发送该特效参数,由离屏模块102根据该特效参数在后台完成对输入纹理的纹理渲染,其中,离屏模块102可以根据该特效参数获取模板信息和内容信息对应的文字特效纹理,例如图1所示,离屏模块102可以从模板库103中获取对应的文字特效纹理。离屏模块102还可以根据用于标识输入纹理存储位置的第一纹理标识,将文字特效纹理绘制到输入纹理上得到输出纹理,从而完成了对输入纹理基于特效参数的纹理渲染,并实现将对待处理视频的纹理渲染阶段与上屏模块的分离,得到的输出纹理也可以被保存在存储空间104中。该输出纹理可以由上屏模块101获取,以绘制到显示界面上让用户看到具有文字特效的视频。
其中,模板库103可以用于保存文字特效纹理,也可以用于根据特效参数绘制文字特效纹理。
本申请实施例所提到的待处理视频可以是指需要进行特效处理的视频文件。待处理视频可以为动态视频,例如,针对用户唱歌过程拍摄的一段视频,需要对该段视频进行特效处理,此时,该视频为待处理视频;待处理视频也可以是静态图片,例如,针对某个静态图片拍摄的一段视频,需要对该段视频进行特效处理,此时,该视频为待处理视频。待处理视频可以是通过摄像装置实时采集的,或者可以为已采集完成的视频文件。
特效参数可以是用来描述用户在显示界面上所能看到的文字特效的效果的参数,根据特效参数可以得到相应的文字特效纹理,以便将文字特效纹理绘制到待处理视频的输入纹理上得到输出纹理,从而将输出纹理绘制到显示界面上让用户看到具有文字特效的视频。特效参数可以是根据待处理视频确定的。
其中,特效参数可以包括用于标识特效类型的模板信息和用于标识特效内容的文字信息。
特效类型可以是指文字特效的展示形式,例如可以包括爆炸式、酷炫式、简笔画式等;模板信息中还可以包括特效类型的详细信息,该详细信息中包括实现文字特效的相关参数。
特效内容可以是指文字特效所展示的内容,特效内容可以是文字,也可以是图案或其他效果,通过文字信息可以体现出用户需要的特效内容。例如,针对用户自拍的视频添加文字特效,若文字信息为“生日快乐”,那么,用户需要的特效内容可以是文字“生日快乐”;若文字信息为“头顶发光”,那么,用户需要的特效内容可以是在视频中用户的头顶展示“发光”效果;若文字信息为“老虎图案”,那么,用户需要的特效内容可以是图案“老虎”。
纹理可以反映出视频、文字特效中所包括的内容。文字特效纹理可以反映出文字特效中所包括的内容;输入纹理可以反映出待处理视频中所包括的内容;输出纹理可以反映出具有文字特效的视频中所包括的内容。
下面结合附图,对本申请实施例提供的视频处理方法进行介绍。
参见图2,图2提供了一种视频处理方法,应用于视频处理系统,所述视频处理系统包括上屏模块和离屏模块,所述方法包括:
S201、上屏模块获取根据待处理视频确定的特效参数,并向离屏模块发送特效参数。
可以理解的是,在很多场景中,用户可能会有对视频添加文字特效的需求,以提高视频质量,使自己的视频更加受欢迎。
例如,在用户进行直播的过程中,为了避免直播的视频过于单调,用户往往希望在直播的视频上添加文字特效,以吸引其他人观看直播。
又如,用户将录制的视频上传到网络或者发给朋友,为了让自己的视频更受欢迎,用户可能会在视频上添加文字特效。
再如,用户与朋友进行视频通话时,用户希望使用自身语言和自身表情之外的手段来进行表达,那么,用户可以在通过在视频上添加文字特效。
上述场景仅仅是示例性场景,并不仅限于上述场景。在这些场景中,需要添加文字特效的视频都可以作为待处理视频,待处理视频可以为通过摄像装置实时采集的,或者可以为已采集完成的视频文件。
例如,当用户拍摄为朋友庆祝生日的视频,以将该视频发给朋友时,用户希望在该视频中添加特效内容为文字“生日快乐”的文字特效,此时,该视频为待处理视频,该待处理视频可以为通过摄像装置实时采集的,该“生日快乐”即文字信息。
再如,用户希望将某个已经存在的视频上传到网络上,希望在该视频中添加特效内容为图案“老虎”的文字特效,此时,该视频为待处理视频,该待处理视频为已采集完成的视频文件,标识该特效内容的“老虎图案”即文字信息。
在本实施例中,上屏模块可以是开放图形库(Open Graphics Library,简称OpenGL)中的一个模块。当用户希望为某个待处理视频添加文字特效时,用户可以通过终端设备在上屏模块设置特效参数及其他相关信息,以便后续可以通过执行S201-S205在待处理视频上根据特效参数添加文字特效。
接下来,将对特效参数的设置进行介绍。用户在设置特效参数时,可以分别在上屏模块中选择模板信息和编辑文字信息。如图3所示,图3示出了上屏模块提供的展示界面,在QQ日迹中,若用户希望添加文字特效,用户可以首先点击上展示界面中的“文字”选项进入文字编辑页面,该文字编辑页面可以如图3中301所示,在该文字编辑页面中,用户可以选择模板信息和编辑文字信息。
具体地,该文字编辑页面可以包括模板信息选择按键3011和文字信息编辑区域3012。当用户点击模板信息选择按键3011时,可以向用户展示模板信息下拉列表,在该下拉列表中,包括多种模板名称,例如,简洁、涂鸦等,每种模板名称具有相应的模板信息。用户通过可以从该下拉列表中选择模板名称,若用户点击“简洁”这一模板名称,则表示用户特效参数中包括模板名称为“简洁”这一模板对应的模板信息。以模板名称为“简洁”的模板为例,模板信息列表可以如表1所示:
表1模板信息列表
模板名称 简洁
优先级 默认1
文字颜色 默认白色,根据背景变化做相应改变
文字大小 用户可调
文字位置 用户可调
文字对齐方式 居中
文字字体 系统字体
背景颜色 默认#AABBCC,可调整
合成时长 3s
当用户点击文字信息编辑区域3012时,用户可以通过弹出的输入法界面输入文字信息,例如,用户通过输入法界面输入“乐在沟通”,则文字信息编辑区域3012可以显示“乐在沟通”,表示特效参数中包括的文字信息为“乐在沟通”,如图3中302所示。
通过模板信息选择按键3011和文字信息编辑区域3012便可以完成特效参数的设置,在完成特效参数的设置后,便可以点击302中的视频采集按键3014进行视频的采集,将实时采集的视频作为待处理视频,从而根据设置好的特效参数在该待处理视频中添加文字特效。当然,在完成特效参数的设置后,还可以从终端设备中选择已采集完成的视频文件作为待处理视频,从而根据设置好的特效参数在该已采集完成的视频中添加文字特效。
需要说明的是,根据特效参数用户可能难以直观地了解文字特效的效果,从而难以知晓该文字特效是否满足需求。在这种情况下,本实施例的一种实现方式中,还可以提供文字特效预览功能,即在完成特效参数的设置后,可以根据设置的特效参数向用户展示文字特效,以便用户可以预先浏览文字特效的效果,从而使用户知晓根据当前设置的特效参数得到的文字特效是否符合用户的需求。
以文字特效为例,若用户选择的模板名称为“涂鸦”,编辑的文字信息为“乐在沟通”,则在用户设置好特效参数后,上屏模块可以向用户展示文字特效预览界面,其展示界面可以如图4所示。
需要说明的是,在完成特效参数的设置后,根据用户的需求可能还需要设置其他相关信息,例如背景和背景色等。在本实施例的一些实现方式中,可以点击拍摄按键3015来拍摄静态图片3016,该静态图片3016可以作为背景。当然,该静态图片3016也可以作为待处理视频,从而根据设置好的特效参数在该静态图片3016中添加文字特效,如图3中303所示。
需要说明的是,在本实施例中,文字编辑页面还可以包括修改背景色按键3013,用户点击修改背景色按键3013,可以向用户提供多种颜色,其中,可以包括标准颜色和自定义颜色,用户可以选择任意颜色来修改背景色。
可以理解的是,在完成特效参数的设置后,上屏模块便可以获取根据待处理视频确定的特效参数,并向离屏模块发送特效参数,以便离屏模块可以获取到对应的文字特效纹理。
S202、上屏模块保存待处理视频的输入纹理,并获取用于标识输入纹理存储位置的第一纹理标识。
上屏模块在获取到待处理视频后,可以保存该待处理视频的输入纹理,输入纹理一般可以保存在存储空间,为了方便上屏模块和离屏模块保存、获取纹理,上屏模块和离屏模块可以共享该存储空间。其中,当上屏模块保存该输入纹理时,输入纹理的存储位置可以作为第一纹理标识,这样,上屏模块可以获取到第一纹理标识,以便可以根据第一纹理标识知晓该输入纹理保存在存储空间的哪个存储位置。
S203、离屏模块根据特效参数获取对应模板信息和内容信息的文字特效纹理。
离屏模块可以是页面图形库(Web Graphics Library,简称WebGL)中的一个模块,通过WebGL可以把javascript和OpenGL结合在一起,JavaScript脚本可以保存在模板库中,模板库可以利用JavaScript脚本配置纹理特效模板。
与传统的使用OpenGL相比,OpenGL过于依赖本地代码,需要更新版本才能实现文字特效的增减、修改,灵活性较差。而WebGL可以实现OpenGL的JavaScript绑定,使得针对不同的文字特效,只需关注不同的JavaScript脚本即可,而且JavaScript脚本便于下发和版本控制,可以更为灵活的配置纹理特效模板,提高了编码效率,可以快速的进行纹理渲染,兼顾了良好的兼容性。离屏模块可以将特效参数发送至模板库,以便模板库可以根据该特效参数为离屏模块提供对应模板信息和内容信息的文字特效纹理。
需要说明的是,在本实施例中,提供一种文字特效纹理的获取方式,该获取方式可以是:模板库根据特效参数绘制得到文字特效纹理,并将其发送给离屏模块。
例如,模板库获取到特效参数后,模板库没有从预先保存的文字特效纹理中匹配到与该特效参数对应的文字特效纹理,那么,模板库可以根据该特效参数绘制文字特效纹理,并将该文字特效纹理发送给离屏模块,使离屏模块获取到文字特效纹理。
其中,Ejecta是一种实现了图形绘制的javascript框架,而模板库是基于Ejecta的具体实现,Ejecta可以通过画布(Canvas),实现文字特效纹理的绘制,Canvas是WebGL提供的一种功能。
若离屏模块采用第二种获取方式获取文字特效纹理,则Ejecta框架获取到特效参数后,可以根据特效参数和javascript在Canvas上绘制对应的文字特效纹理,Canvas可以将该文字特效纹理发送给离屏模块。
S204、离屏模块根据第一纹理标识,将文字特效纹理绘制到输入纹理上得到输出纹理。
离屏模块可以获取到来自上屏模块的第一纹理标识,使得离屏模块可以知晓输入纹理的存储位置,以便离屏模块可以将文字特效纹理绘制到输入纹理上得到输出纹理,并将该输出纹理保存在存储空间的某一存储位置,获取第二纹理标识,所述第二纹理标识用于标识所述输出纹理的存储位置。
作为一种示例,S204中将文字特效纹理绘制到输入纹理上得到输出纹理的一种实现方式可以是:离屏模块将文字特效纹理发送到第一纹理标识对应的存储位置,并在该存储位置将文字特效纹理绘制在输入纹理上得到输出纹理。
需要说明的是,第一纹理标识与第二纹理标识可以相同,也可以不同。一般情况下,离屏模块在存储位置将文字特效纹理绘制在输入纹理上得到输出纹理后,若离屏模块将输出纹理直接保存在第一纹理标识对应的存储位置,此时,输出纹理与输入纹理的存储位置相同,则第一纹理标识与第二纹理标识相同;若离屏模块将输出纹理保存在其他存储位置,此时,输出纹理与输入纹理的存储位置不同,则第一纹理标识与第二纹理标识不同。
S205、上屏模块根据第二纹理标识获取输出纹理。
在离屏模块绘制得到输出纹理后,上屏模块可以获取到第二纹理标识,从而知晓输出纹理的存储位置,这样,上屏模块便可以根据第二纹理标识获取输出纹理,并将该输出纹理绘制到显示界面上让用户看到具有文字特效的视频。
需要说明的是,根据视频处理系统的不同,离屏模块获取第一纹理标识以及上屏模块获取第二纹理标识的方式可以有所不同。
若视频处理系统中包括上屏模块和离屏模块,则离屏模块获取第一纹理标识的方式可以是:上屏模块发送第一纹理标识至离屏模块;上屏模块获取第二纹理标识的方式可以是:离屏模块发送第二纹理标识至上屏模块。
若视频处理系统中包括上屏模块、离屏模块和渲染链模块,则离屏模块获取第一纹理标识的方式可以是:渲染链模块获取上屏模块发送的第一纹理标识,并将第一纹理标识提供给所述离屏模块;上屏模块获取第二纹理标识的方式可以是:渲染链模块获取第二纹理标识,并将第二纹理标识提供给上屏模块。此时,渲染链模块在视频处理系统中起到转发的作用。
其中,渲染链模块可以是实现多种滤镜渲染的独立模块,可以提供多种渲染滤镜,例如可以包括文字渲染滤镜(Text Filter)。
当然,在视频处理系统中包括上屏模块、离屏模块和渲染链模块的情况下,离屏模块获取第一纹理标识的方式仍然可以是:上屏模块发送第一纹理标识至离屏模块;上屏模块获取第二纹理标识的方式仍然可以是:离屏模块发送第二纹理标识至上屏模块。
若渲染链模块中还包括文字渲染滤镜,文字渲染滤镜可以为视频提供文字特效。在这种情况下,为了增加待处理视频的文字特效,提高视频质量,提高用户的视频交流体验,除了在待处理视频上绘制文字特效纹理之外,还可以在待处理视频上绘制文字渲染滤镜对应的滤镜纹理,即S204的一种实现方式可以是:离屏模块根据渲染链模块提供的第一纹理标识,将文字特效纹理以及文字渲染滤镜对应的滤镜纹理绘制到输入纹理上得到输出纹理。
由上述技术方案可以看出,视频处理系统中包括了上屏模块和离屏模块。上屏模块可以获取根据待处理视频确定的特效参数,该特效参数中包括了用于标识特效类型的模板信息和用于标识特效内容的文字信息。上屏模块保存该待处理视频对应的输入纹理,并向离屏模块发送该特效参数,由离屏模块根据该特效参数在后台完成对输入纹理的纹理渲染,其中,离屏模块可以根据该特效参数获取模板信息和内容信息对应的文字特效纹理,并根据用于标识输入纹理存储位置的第一纹理标识,将文字特效纹理绘制到输入纹理上得到输出纹理,从而完成了对输入纹理基于特效参数的纹理渲染,并实现将对待处理视频的纹理渲染阶段与上屏模块的分离。纹理渲染阶段与上屏模块的分离使得视频处理系统可以更为灵活的配置纹理特效模板,提高了编码效率。该输出纹理可以由上屏模块获取,以绘制到显示界面上让用户看到具有文字特效的视频,由于对视频的特效处理由视频处理系统完成,不需要用户具备视频处理技能,提高了用户的视频交流体验。
为了方便上屏模块和离屏模块保存、获取纹理,上屏模块和离屏模块需要共享存储空间,为此,本实施例提供一种存储空间共享方式,在介绍该共享方式之前,为了便于理解,首先对上屏模块、离屏模块的结构进行介绍。
上屏模块中可以包括上屏预览对象(GLSurfaceView)、上屏渲染器(GLRenderer)和上屏缓存对象(Frame Buffer Object,简称FBO)。离屏模块中可以包括离屏预览对象(EjectaSurfaceView)、离屏渲染器(EjectaRenderer)和离屏缓存对象(离屏FBO)。
其中,通过GLSurfaceView向用户展示待处理视频,以便用户可以预览待处理视频,确定待处理视频是否满足用户需求。相应的,在离屏模块中设置EjectaSurfaceView,离屏模块可以在EjectaSurfaceView上实现将文字特效纹理绘制在输入纹理上,得到输出纹理。
需要说明的是,为了实现离屏模块和上屏模块共享用于存储输入纹理和输出纹理的存储空间,离屏预览对象可以是根据上屏预览对象的图形库上下文信息创建的,以使得上屏模块和离屏模块共享用于存储所述输入纹理和所述输出纹理的存储空间。
其中,根据上屏预览对象的图形库上下文信息创建离屏预览对象的示例图可以如图5所示,其中,OpenGL可以表示上屏模块,GLContext可以表示上屏模块对应的图形库上下文信息。OpenGL可以创建GLSurfaceView,离屏模块可以根据GLContext创建EjectaSurfaceView,从而实现了GLSurfaceView和EjectaSurfaceView共享存储空间,该存储空间中可以包括输入纹理和输出纹理。
通过共享存储空间的方式,使得上屏模块可以在该存储空间中保存输入纹理,并从该存储空间中读取输出纹理,离屏模块可以在该存储空间中保存输出纹理,并从该存储空间中读取输入纹理。
接下来,将对离屏模块如何根据第一纹理标识,将所述文字特效纹理绘制到输入纹理上得到输出纹理,以及上屏模块如何根据第二纹理标识获取输出纹理进行介绍。
通过上述对离屏模块结构的介绍,离屏模块还可以包括Ejecta Renderer和离屏FBO,其中,离屏FBO可以用于保存第一纹理标识和第二纹理标识,EjectaRenderer可以用于根据第一纹理标识,在EjectaSurfaceView上将文字特效纹理绘制到所述输入纹理上得到输出纹理,这样,S204具体可以为EjectaRenderer根据离屏FBO中保存的第一纹理标识,在EjectaSurfaceView上将文字特效纹理绘制到输入纹理上得到输出纹理。
由EjectaRenderer根据离屏FBO中保存的第一纹理标识,在EjectaSurface View上将文字特效纹理绘制到输入纹理上得到输出纹理,使得对输入纹理基于特效参数的纹理渲染可以在离屏模块中完成,实现将对待处理视频的纹理渲染阶段与上屏模块的分离。
相应的,上屏模块还可以包括GLRenderer和上屏FBO,其中,上屏FBO可以用于保存第一纹理标识和第二纹理标识,GLRenderer用于根据第二纹理标识获取所述输出纹理,这样,S205具体可以为GLRenderer根据上屏FBO中保存的第二纹理标识获取输出纹理。GLRenderer在得到输出纹理后,还可以在GLSurfaceView上绘制该输出纹理,以便用户能够看到具有文字特效的视频。
需要说明的是,待处理视频一般可以包括多个视频帧,在为待处理视频添加文字特效时,可能是对整个待处理视频添加文字特效,也可能需要对某个时间段内所包括的特定视频帧添加文字特效。在这种情况下,为了满足用户添加文字特效的不同需求,在本实施例中,S204的一种实现方式可以是:离屏模块以待处理视频的视频帧为粒度,根据第一纹理标识逐帧的将文字特效纹理绘制到视频帧对应的输入纹理上得到输出纹理。
具体的,第一纹理标识和第二纹理标识可以用纹理标识(textureIdentification,简称texture ID)表示,每个视频帧对应的输入纹理都具有texture ID,针对每个视频帧,离屏模块可以根据输入纹理的texture ID获取到对于到对应的文字特效纹理,并将文字特效纹理绘制到该视频帧对应输入纹理上得到输出纹理,在将文字特效纹理绘制到该视频帧对应输入纹理上时,还可以将文字渲染滤镜叠加在输入纹理上得到输出纹理。每个视频帧对应的输出纹理也会具有相应的texture ID,根据输出纹理的textureID可以将每个视频帧的输出纹理绘制到显示界面上。以待处理视频的视频帧为粒度将文字特效纹理绘制到视频帧对应的输入纹理上得到输出纹理,不仅可以实现为整个动态视频添加文字特效,还可以实现根据用户需求,为用户选择的特定视频帧添加文字特效,从而满足用户个性化需求。
上述实施例介绍了一种视频处理方法,即如何根据特效参数将文字特效绘制在待处理视频上,使得用户可以在显示界面上看到具有文字特效的视频。若要实现根据特效参数将文字特效绘制在待处理视频上,首先需要通过S201获取特效参数,特效参数中的文字信息根据用户输入的文字便可以获取,而特效参数中的模板信息则需要通过配置的模板得到。接下来,将对如何获取模板信息进行介绍。
参见图6,图6示出了在待处理视频上添加文字特效的方法流程图,其中,包括了获取模板信息的流程,图6以待处理视频为实时采集的视频、文字特效纹理是根据特效参数绘制得到的为例进行介绍,该方法包括:
S601、读取本地配置的模板。
用户完成特效参数的设置后,可以点击“视频采集按键”开始采集视频,从而触发上屏模块开始获取用户设置的特效参数。
在获取特效参数中的模板信息时,一些使用过的模板可能会被缓存在本地,以便可以直接从本地获取对应的模板,减少网络负担,提高获取模板的效率。
S602、判断本地已缓存的模板是否过期,若是,则执行S603,若否,则执行S604。
在一些情况下,有些模板虽然被使用过,但是可能间隔很长时间才使用一次,使用频率非常低,而本地缓存空间有限,如果使用频率非常低的模板一直缓存在本地,占用本地缓存空间,可能会导致本地缓存中没有足够的空间缓存一些使用频率较高的模板;或者,模板可能会发生更新,若长时间从本地缓存获取模板,可能会难以得到更新后的模板,难以满足用户对模板的需求。在这种情况下,本实施例可以为缓存的模板设置有效期,若本地已缓存的模板未过期,则执行S604,可以从本地直接获取模板;若过期,则触发S603,从网络拉取模板。
其中,从网络拉取模板的时机可以是登录模板配置客户端时拉取或进入视频采集时主动拉取。
S603、拉取模板列表和模板内容。
在本实施例中,为了保证模板的可扩展性,在获取到模板列表和模板内容后,可以将模板列表和模板内容分开配置,以支持模板内容的单独下载,支持模板的更加丰富的资源。
其中,模板内容可以包括模板的具体脚本和资源等。
当执行完S603后,可以继续执行S604。
S604、解析模板。
通过解析模板可以校验模板内容,以及进行模板兼容性处理等。这样,便可以得到特效参数中包括的模板信息。
通过上述方法,可以在尽量保证模板配置效率的情况下,获取到满足用户需求的模板信息,用于后续获取对应模板信息和内容信息的文字特效纹理。
S605、绘制文字特效纹理。
S606、将文字特效纹理绘制在采集的视频对应的输入纹理上,得到输入纹理,以生成具有文字特效的视频。
其中,S605-S606的具体实现过程可以参见S201-S205所示。
接下来,将结合具体应用场景对视频处理方法进行介绍。用户在希望拍摄一段动态视频,并且在该动态视频上添加文字特效,其中,该动态视频可以作为待处理视频。为此,用户根据自己希望实现的文字特效的效果在终端设备上设置特效参数,用户在设置好特效参数后,可以点击“视频采集按键”,开始采集视频,从而触发执行视频处理方法,以根据该特效参数在待处理视频上添加文字特效。
该视频处理方法可以应用于图7所示的视频处理系统中,该视频处理系统包括OpenGL 101、WebGL 102、Ejecta框架103、存储空间104和渲染链模块105。其中,OpenGL 101相当于图1中上屏模块101,OpenGL 101中可以包括GLSurfaceView 1011、GLRenderer 1012和上屏FBO 1013;WebGL 102相当于图1中离屏模块102,WebGL 102可以包括EjectaSurfaceView 1021、EjectaRenderer 1022和离屏FBO 1023;Ejecta框架103相当于图1中模板库103,Ejecta框架103中可以包括Canvas 1031。
基于该视频处理系统,参见图8,该视频处理方法可以包括:
S801、GLRenderer获取根据待处理视频确定的特效参数,并向EjectaRenderer发送特效参数。
其中,所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息。
S802、GLRenderer保存待处理视频的输入纹理,并获取用于标识该输入纹理存储位置的第一纹理标识。
S803、GLRenderer向渲染链模块发送第一纹理标识。
S804、EjectaRenderer从Canvas中获取该文字特效纹理。
S805、EjectaRenderer向渲染链模块发送第一纹理标识请求。
S806、EjectaRenderer从渲染链模块获取第一纹理标识。
S807、EjectaRenderer根据离屏FBO中保存的第一纹理标识,在EjectaSurfaceView上将文字特效纹理绘制到输入纹理上得到输出纹理。
S808、GLRenderer向渲染链模块发送第二纹理标识请求。
S809、渲染链模块向EjectaRenderer发送第二纹理标识请求。
S810、EjectaRenderer向渲染链模块发送第二纹理标识。
S811、GLRenderer从渲染链模块获取第二纹理标识。
S812、GLRenderer根据上屏FBO中保存的第二纹理标识获取输出纹理。
S813、GLRenderer在GLSurfaceView上绘制输出纹理。
由上述技术方案可以看出,该视频处理方法应用于视频处理系统中,该视频处理方法可以实现将对待处理视频的纹理渲染阶段与上屏模块的分离。纹理渲染阶段与上屏模块的分离使得视频处理系统可以更为灵活的配置纹理特效模板,提高了编码效率。该输出纹理可以由上屏模块获取,以绘制到显示界面上让用户看到具有文字特效的视频,由于对视频的特效处理由视频处理系统完成,不需要用户具备视频处理技能,提高了用户的视频交流体验。
本申请实施例还提供了一种用于视频处理的设备,下面结合附图对用于视频处理的设备进行介绍。请参见图9所示,本申请实施例提供的一种用于视频处理的设备900,该设备900可以是服务器,可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在用于视频处理的设备900上执行存储介质930中的一系列指令操作。
用于视频处理的设备900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图9所示的服务器结构。
其中,CPU 922用于执行如下步骤:
所述上屏模块获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息;
所述上屏模块保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理;
所述离屏模块根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理;
所述上屏模块根据第二纹理标识获取所述输出纹理,所述第二纹理标识用于标识所述输出纹理的存储位置。
请参见图10所示,本申请实施例提供的一种用于视频处理的设备1000,该设备1000还可以是终端设备,该终端可以为包括手机、平板电脑、个人数字助理(英文全称:Personal Digital Assistant,英文缩写:PDA)、销售终端(英文全称:Point of Sales,英文缩写:POS)、车载电脑等任意终端设备,以终端为手机为例:
图10示出的是与本申请实施例提供的终端相关的手机的部分结构的框图。参考图10,手机包括:射频(英文全称:Radio Frequency,英文缩写:RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(英文全称:wirelessfidelity,英文缩写:WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图10对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(英文全称:LowNoise Amplifier,英文缩写:LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(英文全称:Global System of Mobile communication,英文缩写:GSM)、通用分组无线服务(英文全称:General Packet Radio Service,GPRS)、码分多址(英文全称:CodeDivision Multiple Access,英文缩写:CDMA)、宽带码分多址(英文全称:Wideband CodeDivision Multiple Access,英文缩写:WCDMA)、长期演进(英文全称:Long TermEvolution,英文缩写:LTE)、电子邮件、短消息服务(英文全称:Short Messaging Service,SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(英文全称:Liquid Crystal Display,英文缩写:LCD)、有机发光二极管(英文全称:Organic Light-Emitting Diode,英文缩写:OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该终端所包括的处理器1080还具有以下功能:
所述上屏模块获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息;
所述上屏模块保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理;
所述离屏模块根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理;
所述上屏模块根据第二纹理标识获取所述输出纹理,所述第二纹理标识用于标识所述输出纹理的存储位置。
本申请实施例还提供一种计算机可读存储介质,用于存储程序代码,该程序代码用于执行前述各个实施例所述的一种视频处理方法中的任意一种实施方式。
参见图11a,本申请实施例还提供了一种视频处理系统1100,系统1100包括上屏模块1101和离屏模块1102;
所述上屏模块1101,用于获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息;
所述上屏模块1101还用于保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块1102,用于根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理;
所述离屏模块1102还用于根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理;
所述上屏模块1101还用于根据第二纹理标识获取所述输出纹理,所述第二纹理标识用于标识所述输出纹理的存储位置。
在一种实现方式中,参见图11b,所述系统还包括渲染链模块1103:
所述渲染链模块用于获取所述上屏模块发送的所述第一纹理标识,并将所述第一纹理标识提供给所述离屏模块;
所述渲染链模块还用于获取所述第二纹理标识,并将所述第二纹理标识提供给所述上屏模块。
在一种实现方式中,所述渲染链模块包括文字渲染滤镜;
所述离屏模块还用于根据所述渲染链模块提供的所述第一纹理标识,将所述文字特效纹理以及所述文字渲染滤镜对应的滤镜纹理绘制到所述输入纹理上得到所述输出纹理。
在一种实现方式中,所述上屏模块包括上屏预览对象,所述离屏模块包括离屏预览对象,所述离屏预览对象是根据所述上屏预览对象的图形库上下文信息创建的,以使得所述上屏模块和所述离屏模块共享用于存储所述输入纹理和所述输出纹理的存储空间。
在一种实现方式中,所述上屏模块还包括上屏渲染器和上屏缓存对象;
所述上屏缓存对象用于保存所述第二纹理标识;
所述上屏渲染器用于根据所述第二纹理标识获取所述输出纹理,并在所述上屏预览对象上绘制所述输出纹理。
在一种实现方式中,所述离屏模块还包括离屏渲染器和离屏缓存对象;
所述离屏缓存对象用于保存所述第一纹理标识;
所述离屏渲染器用于将所述文字特效纹理绘制到所述输入纹理上得到输出纹理。
在一种实现方式中,所述离屏模块还用于以待处理视频的视频帧为粒度,根据所述第一纹理标识逐帧的将所述文字特效纹理绘制到视频帧对应的输入纹理上得到输出纹理。
在一种实现方式中,所述待处理视频为通过摄像装置实时采集的,或者为已采集完成的视频文件。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (15)

1.一种视频处理方法,其特征在于,应用于视频处理系统,所述视频处理系统包括上屏模块和离屏模块,所述方法包括:
所述上屏模块获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息,所述模板信息包括实现文字特效的相关参数;
所述上屏模块保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理,所述文字特效纹理的生成过程包括:基于Ejecta框架获取特效参数,根据所述特效参数和javascript在页面图形库的画布上绘制对应的文字特效纹理,通过页面图形库将javascript和开放图形库结合在一起,javascript脚本保存在模板库中,模板库是基于Ejecta实现的;
所述离屏模块根据渲染链模块提供的所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理,并将所述输出纹理保存以获取第二纹理标识,所述第二纹理标识用于标识所述输出纹理的存储位置;
所述上屏模块根据所述第二纹理标识获取所述输出纹理。
2.根据权利要求1所述的方法,其特征在于,所述视频处理系统还包括渲染链模块,所述方法还包括:
所述渲染链模块获取所述上屏模块发送的所述第一纹理标识,并将所述第一纹理标识提供给所述离屏模块;
所述渲染链模块获取所述第二纹理标识,并将所述第二纹理标识提供给所述上屏模块。
3.根据权利要求2所述的方法,其特征在于,所述渲染链模块包括文字渲染滤镜;所述离屏模块根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理,包括:
所述离屏模块根据所述渲染链模块提供的所述第一纹理标识,将所述文字特效纹理以及所述文字渲染滤镜对应的滤镜纹理绘制到所述输入纹理上得到所述输出纹理。
4.根据权利要求1所述的方法,其特征在于,所述上屏模块包括上屏预览对象,所述离屏模块包括离屏预览对象,所述离屏预览对象是根据所述上屏预览对象的图形库上下文信息创建的,以使得所述上屏模块和所述离屏模块共享用于存储所述输入纹理和所述输出纹理的存储空间。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述上屏模块还包括上屏渲染器和上屏缓存对象;所述上屏模块根据第二纹理标识获取所述输出纹理,包括:
所述上屏渲染器根据所述上屏缓存对象中保存的所述第二纹理标识获取所述输出纹理;
所述方法还包括:
所述上屏渲染器在所述上屏预览对象上绘制所述输出纹理。
6.根据权利要求1-4任意一项所述的方法,其特征在于,所述离屏模块还包括离屏渲染器和离屏缓存对象;所述离屏模块根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理,包括:
所述离屏渲染器根据所述离屏缓存对象中保存的所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理。
7.根据权利要求1-4任意一项所述的方法,其特征在于,所述离屏模块根据所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理,包括:
所述离屏模块以待处理视频的视频帧为粒度,根据所述第一纹理标识逐帧的将所述文字特效纹理绘制到视频帧对应的输入纹理上得到输出纹理。
8.根据权利要求1-4任意一项所述的方法,其特征在于,所述待处理视频为通过摄像装置实时采集的,或者为已采集完成的视频文件。
9.一种视频处理系统,其特征在于,所述系统包括上屏模块和离屏模块:
所述上屏模块,用于获取根据待处理视频确定的特效参数,并向所述离屏模块发送所述特效参数;所述特效参数包括用于标识特效类型的模板信息和用于标识特效内容的文字信息,所述模板信息包括实现文字特效的相关参数;
所述上屏模块还用于保存所述待处理视频的输入纹理,并获取用于标识所述输入纹理存储位置的第一纹理标识;
所述离屏模块,用于根据所述特效参数获取对应所述模板信息和所述内容信息的文字特效纹理,所述文字特效纹理的生成过程包括:基于Ejecta框架获取特效参数,根据所述特效参数和javascript在页面图形库的画布上绘制对应的文字特效纹理,通过页面图形库将javascript和开放图形库结合在一起,javascript脚本保存在模板库中,模板库是基于Ejecta实现的;
所述离屏模块还用于根据渲染链模块提供的所述第一纹理标识,将所述文字特效纹理绘制到所述输入纹理上得到输出纹理,并将所述输出纹理保存以获取第二纹理标识,所述第二纹理标识用于标识所述输出纹理的存储位置;
所述上屏模块还用于根据所述第二纹理标识获取所述输出纹理。
10.根据权利要求9所述的系统,其特征在于,所述系统还包括渲染链模块:
所述渲染链模块用于获取所述上屏模块发送的所述第一纹理标识,并将所述第一纹理标识提供给所述离屏模块;
所述渲染链模块还用于获取所述第二纹理标识,并将所述第二纹理标识提供给所述上屏模块。
11.根据权利要求10所述的系统,其特征在于,所述渲染链模块包括文字渲染滤镜;
所述离屏模块还用于根据所述渲染链模块提供的所述第一纹理标识,将所述文字特效纹理以及所述文字渲染滤镜对应的滤镜纹理绘制到所述输入纹理上得到所述输出纹理。
12.根据权利要求9所述的系统,其特征在于,所述上屏模块包括上屏预览对象,所述离屏模块包括离屏预览对象,所述离屏预览对象是根据所述上屏预览对象的图形库上下文信息创建的,以使得所述上屏模块和所述离屏模块共享用于存储所述输入纹理和所述输出纹理的存储空间。
13.根据权利要求9-12任意一项所述的系统,其特征在于,所述上屏模块还包括上屏渲染器和上屏缓存对象;
所述上屏缓存对象用于保存所述第二纹理标识;
所述上屏渲染器用于根据所述第二纹理标识获取所述输出纹理,并在所述上屏预览对象上绘制所述输出纹理。
14.一种用于视频处理的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-8任一项所述的视频处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-8中任一项所述的视频处理方法。
CN201810717167.8A 2018-06-29 2018-06-29 一种视频处理方法和系统 Active CN110662090B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810717167.8A CN110662090B (zh) 2018-06-29 2018-06-29 一种视频处理方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810717167.8A CN110662090B (zh) 2018-06-29 2018-06-29 一种视频处理方法和系统

Publications (2)

Publication Number Publication Date
CN110662090A CN110662090A (zh) 2020-01-07
CN110662090B true CN110662090B (zh) 2022-11-18

Family

ID=69028311

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810717167.8A Active CN110662090B (zh) 2018-06-29 2018-06-29 一种视频处理方法和系统

Country Status (1)

Country Link
CN (1) CN110662090B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111182361B (zh) * 2020-01-13 2022-06-17 青岛海信移动通信技术股份有限公司 一种通信终端及视频预览的方法
CN113365139B (zh) * 2020-03-03 2023-05-02 腾讯科技(深圳)有限公司 一种基于iOS系统的视频录制方法、装置以及存储介质
CN111541914B (zh) * 2020-05-14 2021-10-15 腾讯科技(深圳)有限公司 一种视频处理方法及存储介质
CN111741317A (zh) * 2020-06-23 2020-10-02 常州市小先信息技术有限公司 一种移动摊贩和线上同步交易系统
CN112738624B (zh) * 2020-12-23 2022-10-25 北京达佳互联信息技术有限公司 用于视频的特效渲染的方法和装置
CN116095413B (zh) * 2022-05-30 2023-11-07 荣耀终端有限公司 视频处理方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436306A (zh) * 2008-12-19 2009-05-20 北京中星微电子有限公司 一种实现图像特效的方法、装置和视频显示卡
CN103402100A (zh) * 2013-08-23 2013-11-20 北京奇艺世纪科技有限公司 一种视频处理方法及移动终端
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端
CN107944397A (zh) * 2017-11-27 2018-04-20 腾讯音乐娱乐科技(深圳)有限公司 视频录制方法、装置及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9237322B2 (en) * 2013-02-07 2016-01-12 Cyberlink Corp. Systems and methods for performing selective video rendering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436306A (zh) * 2008-12-19 2009-05-20 北京中星微电子有限公司 一种实现图像特效的方法、装置和视频显示卡
CN103402100A (zh) * 2013-08-23 2013-11-20 北京奇艺世纪科技有限公司 一种视频处理方法及移动终端
CN107277616A (zh) * 2017-07-21 2017-10-20 广州爱拍网络科技有限公司 视频特效渲染方法、装置及终端
CN107944397A (zh) * 2017-11-27 2018-04-20 腾讯音乐娱乐科技(深圳)有限公司 视频录制方法、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN110662090A (zh) 2020-01-07

Similar Documents

Publication Publication Date Title
CN110662090B (zh) 一种视频处理方法和系统
US10636221B2 (en) Interaction method between user terminals, terminal, server, system, and storage medium
CN108924464B (zh) 视频文件的生成方法、装置及存储介质
US10200634B2 (en) Video generation method, apparatus and terminal
CN110582018B (zh) 一种视频文件处理的方法、相关装置及设备
WO2018126885A1 (zh) 一种游戏数据处理的方法
CN110213504B (zh) 一种视频处理方法、信息发送方法及相关设备
US20170142451A1 (en) Video remote-commentary synchronization method and system, and terminal device
CN110933511B (zh) 一种视频分享方法、电子设备及介质
CN106803993B (zh) 一种实现视频分支选择播放的方法及装置
CN110533755B (zh) 一种场景渲染的方法以及相关装置
CN109756767B (zh) 预览数据播放方法、装置及存储介质
CN103207728A (zh) 提供增强现实的方法和支持该方法的终端
CN107333162B (zh) 一种播放直播视频的方法和装置
CN110458921B (zh) 一种图像处理方法、装置、终端以及存储介质
CN107908765B (zh) 一种游戏资源处理方法、移动终端及服务器
CN104394481A (zh) 视频播放方法及装置
CN108845742B (zh) 一种图像画面的获取方法和装置以及计算机可读存储介质
CN111491197A (zh) 一种直播内容展示的方法、装置及存储介质
CN112118397B (zh) 一种视频合成的方法、相关装置、设备以及存储介质
CN110913261A (zh) 一种多媒体文件的生成方法及电子设备
CN112306590B (zh) 一种截图生成的方法以及相关装置
CN110908638A (zh) 一种操作流创建方法及电子设备
CN111128252B (zh) 数据处理方法及相关设备
CN111049977B (zh) 一种闹钟提醒方法及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40018927

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant