CN115842815A - 基于Web的视频效果添加 - Google Patents

基于Web的视频效果添加 Download PDF

Info

Publication number
CN115842815A
CN115842815A CN202111027952.9A CN202111027952A CN115842815A CN 115842815 A CN115842815 A CN 115842815A CN 202111027952 A CN202111027952 A CN 202111027952A CN 115842815 A CN115842815 A CN 115842815A
Authority
CN
China
Prior art keywords
video
application
video frame
video effect
target application
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
Application number
CN202111027952.9A
Other languages
English (en)
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Priority to CN202111027952.9A priority Critical patent/CN115842815A/zh
Priority to PCT/US2022/036600 priority patent/WO2023033923A1/en
Publication of CN115842815A publication Critical patent/CN115842815A/zh
Pending legal-status Critical Current

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/41Structure of client; Structure of client peripherals
    • H04N21/414Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
    • H04N21/41407Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
    • 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/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • 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/44008Processing 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 operations for analysing video streams, e.g. detecting features or characteristics in the video 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47205End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for manipulating displayed content, e.g. interacting with MPEG-4 objects, editing locally
    • 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/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8146Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics
    • H04N21/8153Monomedia components thereof involving graphical data, e.g. 3D object, 2D graphics comprising still images, e.g. texture, background image

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本公开提供了用于实现视频效果添加的方法和装置。在目标应用处,可以从视频源处获取原始视频帧,可以向视频效果处理应用提供所述原始视频帧,其中所述视频效果处理应用是Web应用,以及可以从所述视频效果处理应用处获取施加了视频效果的经处理视频帧。在视频效果处理应用处,可以从目标应用处获取原始视频帧,可以对所述原始视频帧施加视频效果以得到经处理视频帧,以及可以向所述目标应用提供所述经处理视频帧。

Description

基于Web的视频效果添加
背景技术
在视频相关场景中,存在视频效果添加的需求。用户可能希望在使用视频相关应用过程中能够对视频施加视频效果。在本文中,视频相关应用可以指涉及到对视频的捕获、传输、呈现等操作的各种应用,例如,在线会议应用、视频流服务应用等。此外,对视频施加视频效果可以广泛地指对视频帧中的像素进行编辑或改变,例如,对像素执行删除、替换、增加、修改等操作。以在线会议应用为例,会议参与者可能希望对摄像头所捕获的该会议参与者的原始视频画面施加视频效果,例如,施加滤镜,以便将原始视频画面改变为具有所期望的视频效果。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于实现视频效果添加的方法和装置。在一些实施例中,在目标应用处,可以从视频源处获取原始视频帧,可以向视频效果处理应用提供所述原始视频帧,其中所述视频效果处理应用是Web应用,以及可以从所述视频效果处理应用处获取施加了视频效果的经处理视频帧。在一些实施例中,在视频效果处理应用处,可以从目标应用处获取原始视频帧,可以对所述原始视频帧施加视频效果以得到经处理视频帧,以及可以向所述目标应用提供所述经处理视频帧。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了根据实施例的用于实现视频效果添加的示例性架构。
图2示出了根据实施例的用于实现视频效果添加的示例性过程。
图3示出了根据实施例的、在目标应用是Web应用的情况下的用于实现视频效果添加的示例性过程。
图4示出了根据实施例的、在目标应用是桌面应用的情况下的用于实现视频效果添加的示例性过程。
图5示出了根据实施例的、在目标应用是桌面应用的情况下的用于实现视频效果添加的示例性过程。
图6A至图6D示出了根据实施例的实现视频效果添加的示例性用户界面。
图7示出了根据实施例的用于实现视频效果添加的示例性方法的流程图。
图8示出了根据实施例的用于实现视频效果添加的示例性方法的流程图。
图9示出了根据实施例的用于实现视频效果添加的示例性装置。
图10示出了根据实施例的用于实现视频效果添加的示例性装置。
图11示出了根据实施例的用于实现视频效果添加的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
由于视频效果是性能敏感的,传统的视频效果通常被实现为从例如C/C++等编程语言所编译的二进制代码。与视频效果对应的这些二进制代码将形成单独的二进制代码库。如果想要在视频相关应用中提供视频效果添加功能,则需要预先下载并安装用于施加视频效果的二进制代码库。该二进制代码库被嵌入到视频相关应用中,并且作为视频相关应用的用于提供视频效果添加功能的底层代码。当向视频施加视频效果时,需要在本地机器中运行与该视频效果对应的二进制代码。二进制代码的安装和运行都将要求以较大的努力来避免安全风险问题。此外,二进制代码库的分发和升级过程较为复杂,为了提供视频效果添加功能,视频相关应用的开发者需要较大的努力来开发多种应用特征,以便对用于施加视频效果的二进制代码库执行下载、修订、更新、运行等处理。
本公开的实施例提出了基于Web的视频效果添加,例如,可以利用基于Web的视频效果处理应用来辅助目标应用实现视频效果添加。目标应用可以广泛地指需要视频效果添加的各种视频相关应用,例如,在线会议应用、视频流服务应用、视频编辑应用等。目标应用可以是Web应用、桌面(desktop)应用等。视频效果处理应用可以利用预先准备的视频效果库和视频效果算法来对视频帧施加视频效果。视频效果处理应用可以是Web应用,并且可以是在Web内容容器(container)中运行的普通Web页面。例如,视频效果处理应用可以是利用HTML、层叠样式表(CSS)、Javascript等来实现的Web页面。从而,视频效果处理应用可以在任意时间被加载而无需安装。Web内容容器可以指用于加载或运行应用的各种基于Web的容器,例如iframe(内联框架)、Webview(网页视图)等,其中,iframe是Web页面的HTML载体并且用于在Web页面或浏览器环境中加载一个Web页面,Webview是Web页面的原生(native)载体并且用于在原生环境中加载一个Web页面。当需要对视频帧施加视频效果时,可以通过Web内容容器来在目标应用中加载视频效果处理应用,以便视频效果处理应用可以对目标应用所提供的视频帧施加视频效果并且将施加了视频效果的经处理视频帧返回给目标应用。因此,目标应用也可以被视为是视频效果处理应用的宿主(host)应用。
与现有的视频相关应用将二进制代码库包含作为自身一部分以实现视频效果添加功能不同,根据本公开实施例的基于Web的视频效果处理应用可以是第三方应用,其可以在任意时间被目标应用加载而无需安装。从而,目标应用可以方便地接入由不同第三方开发的各种视频效果处理应用,以便获得更强的视频效果添加的扩展性,并且向用户提供更多样性的视频效果。此外,由于无需在本地机器中安装和运行与视频效果对应的二进制代码,本公开的实施例可以有效地避免安全风险问题。此外,基于Web的视频效果处理应用的视频效果添加处理可以是在例如浏览器中管理和执行的,而浏览器具有自身的安全机制以避免所运行的脚本恶意地访问本地系统和资源,由此,本公开的实施例可以进一步有效地避免安全风险问题。
随着诸如WebAssembly、WebGL、WebGPU等Web技术的发展,可以高效地实现在浏览器中运行的视频效果。相应地,对基于Web页面的视频效果处理应用的开发、部署、升级等将变得更为容易。此外,由于各种Web技术是当前广泛使用的,这将促进更多第三方来开发可供目标应用使用的更多视频效果。
在目标应用是桌面应用的情况下,可以通过共享内存来在目标应用与视频效果处理应用之间高效地传送原始视频帧和经处理视频帧。可以通过进程间通信来实现目标应用与视频效果处理应用对共享内存的同步访问。此外,可以至少为视频效果处理应用设置定制应用编程接口(API),以用于访问共享内存。通过使用共享内存,本公开的实施例可以实现更好的视频帧传输性能,从而有效地提高视频效果添加的执行效率。
在目标应用是桌面应用的情况下,视频效果处理应用可以是在沙盒(sandbox)环境中运行的,例如,在沙盒化的Web内容容器中运行,从而,可以进一步有效地避免安全风险问题。
在目标应用是Web应用的情况下,可以以可传递(transferrable)数组缓冲区(ArrayBuffer)方式来在目标应用与视频效果处理应用之间高效地传送原始视频帧和经处理视频帧。
本公开的实施例可以容易地在任何需要视频效果的目标应用处实现视频效果添加,可以获得更强的视频效果添加的可扩展性,可以有效地避免安全风险问题,可以具有较高的视频效果添加的执行效率,等等。
在本文中,视频帧可以被理解为是视频的组成单元,即,一个视频可以包括多个视频帧,从而,可以通过对一个视频中的每个视频帧施加视频效果来实现对该视频的视频效果添加。尽管本文中的多处地方仅描述了对视频帧施加视频效果,但是应当理解,可以以类似的方式来对一个视频中的每个视频帧施加视频效果,从而实现对整个视频的视频效果添加。因此,对视频帧的处理也等同于对视频的处理,相应地,术语“视频帧”与术语“视频”可以在本文的多处地方互换地使用。此外,在本文中,术语“应用”可以广泛地指应用程序、应用软件、微件、程序代码等。
图1示出了根据实施例的用于实现视频效果添加的示例性架构100。
在架构100中,目标应用110可以是需要视频效果添加的各种视频相关应用。视频效果处理应用120是可被目标应用110加载以用于对视频帧施加视频效果的Web应用。
目标应用110可以从视频源102处获取原始视频帧。视频源102可以指能够提供视频帧的各种源。例如,视频源102可以是摄像头,相应地,目标应用110可以获取该摄像头所拍摄的视频以作为原始视频帧。例如,视频源102可以是在本地或网络上存储的视频文件,相应地,目标应用110可以获取该视频文件中的视频内容以作为原始视频帧。例如,视频源102可以是在目标应用110运行期间所接收到的视频流,相应地,目标应用110可以将该视频流中的视频帧作为原始视频帧。应当理解,尽管在图1中将视频源102示出为独立于目标应用110,但是该视频源102也可以被包含在目标应用110中。此外,在本文中,原始视频帧指的是目标应用110从视频源102处所获取的视频帧,该原始视频帧可以是从未被编辑过的视频帧或者已经被编辑过的视频帧。
目标应用110可以包括视频获取模块112、视频消费(consuming)模块114等。视频获取模块112可以用于获取目标应用110所需要的视频帧。在一个方面,视频获取模块112可以从视频源102处获取原始视频帧并且将原始视频帧传送给视频效果处理应用120。在另一个方面,视频获取模块112可以从视频效果处理应用120处获取施加了视频效果的经处理视频帧。
视频消费模块114可以在不同的场景下对视频获取模块112所获取的经处理视频帧进行不同方式的使用或处理。例如,在目标应用110需要通过网络发送经处理视频帧的情况下,视频消费模块114可以对经处理视频帧执行编码、上传等处理。例如,在目标应用110需要向用户呈现经处理视频帧的情况下,视频消费模块114可以通过用户界面(UI)来呈现经处理视频帧。例如,在目标应用110需要存储经处理视频帧的情况下,视频消费模块114可以将经处理视频帧存储到预定位置。例如,在目标应用110需要进一步编辑经处理视频帧的情况下,视频消费模块114可以对经处理视频帧执行各种编辑操作。例如,在目标应用110需要将经处理视频帧提供给其它视频处理应用的情况下,视频消费模块114可以将经处理视频帧发送给其它视频处理应用。应当理解,本公开的实施例并不受限于视频消费模块114如何具体使用或处理经处理视频帧。
尽管未示出,目标应用110还可以包括任何其它功能模块。例如,目标应用110可以包括UI模块,通过该UI模块,用户104可以与目标应用110进行各种方式的交互。
视频效果处理应用120可以包括视频效果施加模块122、UI模块124等。视频效果施加模块122可以通过各种视频效果施加技术来对原始视频帧施加视频效果。在一种实现方式中,视频效果施加模块122可以利用预先准备的视频效果库和视频效果算法来对原始视频帧施加视频效果。视频效果库包括能够被施加到视频帧中的多个视频效果素材。视频效果算法可以被执行用于确定在视频帧中施加视频效果的具体方式。视频效果处理应用120的开发者可以通过任意方式来预先准备视频效果库和视频效果算法。本公开的实施例并不受限于视频效果处理应用120所采用的对视频帧施加视频效果的任何具体技术。此外,本发明也并不受限于视频效果的任何具体形式,而是可以涵盖对视频帧中的像素进行任意方式的编辑或改变所获得的视频效果。
UI模块124可以用于实现在用户104与视频效果处理应用120之间的各种方式的交互。例如,用户104可以通过UI模块124来输入关于视频效果的指示,该指示可以表明用户104希望视频效果施加模块122如何施加视频效果。
尽管未示出,视频效果处理应用120还可以包括任何其它功能模块。
以在线会议场景为例来给出架构100的进一步示例性说明。目标应用110可以是在线会议应用,用户104可以是一个会议参与者,视频源102可以是用户104的终端设备中的摄像头。假设该会议参与者正在参与会议并且开启了摄像头。在线会议应用可以获取摄像头所捕获的该会议参与者的视频图像,并且可以在会议界面中显示该会议参与者的视频图像。如果该会议参与者请求该在线会议应用对其自己的视频图像施加视频效果,例如,施加滤镜,则该在线会议应用可以加载视频效果处理应用120。视频效果处理应用120可以通过用户界面接收该会议参与者对特定视频效果的指示,例如,对特定滤镜的指示,并且可以对该会议参与者的视频图像施加对应的视频效果。然后,在线会议应用将会在会议界面中显示施加了视频效果的该会议参与者的视频图像。应当理解,上述的在线会议场景仅仅是架构100的一种示例性实施场景,架构100也可以被实施用于任何其它涉及视频效果添加的场景,例如,视频流服务场景、视频编辑场景等。在视频流服务场景中,目标应用110可以是视频流服务应用,其通过加载视频效果处理应用120来实现对视频流中的视频帧的视频效果添加。在视频编辑场景中,目标应用110可以是视频编辑应用,其通过加载视频效果处理应用120来实现对输入视频帧的视频效果添加。
图2示出了根据实施例的用于实现视频效果添加的示例性过程200。过程200是基于图1中的架构100所提出的用于实现视频效果添加的示例性过程。
在202处,目标应用110可以从视频源102处获取原始视频帧。
在204处,可以将原始视频帧从目标应用110传送到视频效果处理应用120。例如,目标应用110可以向视频效果处理应用120提供原始视频帧,并且视频效果处理应用120可以从目标应用110处获取原始视频帧。
可选地,在206处,视频效果处理应用120可以通过用户界面接收关于视频效果的指示。例如,UI模块124可以接收来自用户的关于视频效果的指示。用户可以通过输入所述关于视频效果的指示来表明其想要对原始视频帧施加哪种视频效果。在其它实现方式中,也可以省略在206处对关于视频效果的指示的接收,从而,视频效果处理应用120可以基于任何预先确定的规则来确定将要对原始视频帧施加哪种视频效果。
在208处,视频效果处理应用120可以对原始视频帧施加视频效果,以得到经处理视频帧。例如,视频效果施加模块122可以通过各种视频效果施加技术来对原始视频帧施加视频效果。如果在206处接收到了关于视频效果的指示,则视频效果施加模块122可以至少基于所述指示来对原始视频帧施加所述指示所指定的视频效果。
在210处,可以将施加了视频效果的经处理视频帧从视频效果处理应用120传送到目标应用110。例如,视频效果处理应用120可以向目标应用110提供施加了视频效果的经处理视频帧,并且目标应用110可以从视频效果处理应用120处获取施加了视频效果的经处理视频帧。
应当理解,图2仅示出了用于实现视频效果添加的示例性整体过程200,在目标应用110以不同方式实施时,视频效果添加的具体过程还可以包括更多的细节。后面将结合图3至图5给出进一步说明。
图3示出了根据实施例的、在目标应用是Web应用的情况下的用于实现视频效果添加的示例性过程300。
在图3中,基于Web的目标应用110表示该目标应用是Web应用。从而,该目标应用110可以是例如在浏览器中运行的Web页面。与目标应用110对应的Web页面也可以被称为主Web页面。
在这种情况下,视频效果处理应用120可以是在目标应用110的主Web页面中运行的嵌入Web页面。在一种实现方式中,运行了视频效果处理应用120的Web内容容器可以是例如iframe。通过使用iframe,可以在目标应用110中加载视频效果处理应用120,例如,在目标应用110的主Web页面中加载视频效果处理应用120的嵌入Web页面。
根据本公开的实施例,可以通过在iframe中定义与视频效果处理应用120相关联的URL来在目标应用110中加载和运行视频效果处理应用120。
在一种实现方式中,可以在iframe中定义与视频效果处理应用120对应的URL。通过访问该URL,可以从视频效果处理应用120的服务器处下载视频效果处理应用120的UI模块124所需的各种UI数据,以便在本地机器处实现视频效果处理应用120的UI显示。
在一种实现方式中,可以在iframe中定义每一个视频效果各自的URL。通过访问该URL,可以从视频效果处理应用120的服务器处将视频效果施加模块122所使用的与该视频效果相关的数据下载到本地机器并且在本地机器处运行。该视频效果相关数据可以包括与该视频效果对应的视频效果算法、视频效果素材以及任何其它相关内容。从而,视频效果处理应用120可以利用所下载的视频效果相关数据来在本地对视频帧施加视频效果。应当理解,与一个视频效果对应的视频效果相关数据可以在本地缓存,并且直接用于对多个视频帧施加该视频效果,而不需要对于每一个视频帧都重复下载该视频效果相关数据,除非该视频效果相关数据在服务器处发生了更新。由此,可以有效地提高执行效率。此外,在每次需要对一个新的视频帧施加该视频效果时,可以将该视频效果相关数据中的例如视频效果算法加载到进程中执行,以便对该新的视频帧施加视频效果。视频效果算法可以是利用例如Javascript等来实现的,从而可以在Web页面中运行并且由例如浏览器所管理。
在一种实现方式中,可以在iframe中定义与视频效果处理应用120对应的URL。通过访问该URL,可以从视频效果处理应用120的服务器处下载UI模块124所需的各种UI数据以及视频效果施加模块122所使用的与多个视频效果分别对应的多个视频效果相关数据,以便在本地机器处实现视频效果处理应用120的UI显示,并且对所述多个视频效果相关数据进行缓存。当需要对一个视频帧施加某一种视频效果时,可以将所缓存的与该视频效果对应的视频效果相关数据中的视频效果算法直接加载到进程中运行,以便对该视频帧施加视频效果。
在302处,目标应用110可以从视频源102处获取原始视频帧。例如,视频获取模块112可以从视频源102处获取原始视频帧。步骤302是图2中的步骤202的一个实例。
在304处,可以将原始视频帧从目标应用110传送到视频效果处理应用120。例如,可以将原始视频帧从视频获取模块112传送到视频效果施加模块122。在一种实现方式中,在304处,可以以可传递ArrayBuffer方式将原始视频帧从目标应用110传送到视频效果处理应用120。例如,目标应用110可以以可传递ArrayBuffer方式向视频效果处理应用120提供原始视频帧,并且视频效果处理应用120可以以可传递ArrayBuffer方式从目标应用110处获取原始视频帧。为了实现在目标应用110的主Web页面与视频效果处理应用120的嵌入Web页面之间传送视频帧,可以采用用于在页面间传送数据的例如PostMessage的传输函数。可以在所采用的传输函数中将传输方式设置为可传递ArrayBuffer方式,以便能够以可传递ArrayBuffer方式来传送视频帧。与传输函数可应用的其它传输方式相比,可传递ArrayBuffer方式不需要对视频帧执行序列化、编解码等处理,从而可以获得更快的传输速度。步骤304是图2中的步骤204的一个实例。
可选地,在306处,视频效果处理应用120可以通过用户界面接收关于视频效果的指示。步骤306是图2中的步骤206的一个实例。
在308处,视频效果处理应用120可以对原始视频帧施加视频效果,以得到经处理视频帧。例如,视频效果施加模块122可以对原始视频帧施加视频效果以得到经处理视频帧。如果在306处接收到了关于视频效果的指示,则视频效果施加模块122可以至少基于所述指示来对原始视频帧施加所述指示所指定的视频效果。步骤308是图2中的步骤208的一个实例。
在310处,可以将施加了视频效果的经处理视频帧从视频效果处理应用120传送到目标应用110。例如,可以将经处理视频帧从视频效果施加模块122传送到视频获取模块112。在一种实现方式中,在310处,可以以可传递ArrayBuffer方式将经处理视频帧从视频效果处理应用120传送到目标应用110。例如,视频效果处理应用120可以以可传递ArrayBuffer方式向目标应用110提供施加了视频效果的经处理视频帧,并且目标应用110可以以可传递ArrayBuffer方式从视频效果处理应用120处获取施加了视频效果的经处理视频帧。步骤310是图2中的步骤210的一个实例。
图4示出了根据实施例的、在目标应用是桌面应用的情况下的用于实现视频效果添加的示例性过程400。
在图4中,基于桌面的目标应用110表示该目标应用是桌面应用。桌面应用可以广泛地指本地安装的应用或应用客户端。具体地,过程400中的基于桌面的目标应用110可以是基于例如Electron创建的应用。从而,该目标应用110可以对应于例如Electron渲染进程。
在这种情况下,视频效果处理应用120可以在诸如Webview的Web内容容器中运行,例如在Electron Webview中运行。通过使用Webview,可以在基于桌面的目标应用110中加载视频效果处理应用120。与以上结合图3描述的通过在iframe中定义URL以在目标应用110中加载和运行视频效果处理应用120的方式相类似地,可以在Webview中定义与视频效果处理应用120相关联的URL,以便下载UI数据、实现UI显示、下载视频效果相关数据、运行视频效果算法等。
在过程400中,可以通过共享内存来在目标应用110与视频效果处理应用120之间高效地传送原始视频帧和经处理视频帧。可以通过进程间通信来实现目标应用110与视频效果处理应用120对共享内存的同步访问。此外,可以为目标应用110和视频效果处理应用120分别设置定制API,以至少用于访问共享内存。
在402处,目标应用110可以从视频源102处获取原始视频帧。例如,视频获取模块112可以从视频源102处获取原始视频帧。步骤402是图2中的步骤202的一个实例。
在404处,视频获取模块112可以将原始视频帧提供给目标应用110的定制API116。定制API 116可以用于创建共享内存430、实现目标应用110对共享内存430的访问等。定制API 116可以是通过各种技术来实现的,例如,Electron API、Node.js Addon(插件)API等。
在406处,目标应用110可以向共享内存430中存储原始视频帧。例如,目标应用110可以利用定制API 116向共享内存430中存储原始视频帧。在一种实现方式中,可以利用memcpy(内存复制)函数来将原始视频帧存储到共享内存430中。
视频效果处理应用120可以包括定制API 126。定制API 126可以用于实现视频效果处理应用120对共享内存430的访问等。定制API 126可以是通过各种技术来实现的,例如,Electron API、Node.js Addon API等。
在原始视频帧被存储到共享内存430之后,视频效果处理应用120可以在408处利用定制API 126获取原始视频帧的在共享内存430中的存储信息。该存储信息可以包括用于在共享内存430中对原始视频帧进行定位的各种信息,例如原始视频帧的内存指针、大小等。
根据过程400,视频效果施加模块122可以至少基于所述存储信息,在共享内存430中对原始视频帧施加视频效果。
在一种实现方式中,在410处,定制API 126可以根据所获取的存储信息来生成存储信息指示,并且将存储信息指示提供给视频效果施加模块122。存储信息指示可以包括视频效果施加模块122所能理解的原始视频帧在共享内存430中的存储空间信息。例如,存储信息指示可以采用SharedArrayBuffer(共享数组缓冲区)方式。
可选地,在412处,视频效果处理应用120可以通过用户界面接收关于视频效果的指示。步骤412是图2中的步骤206的一个实例。
在414处,视频效果施加模块122可以基于根据存储信息所生成的存储信息指示而直接在共享内存430中对原始视频帧施加视频效果,以得到经处理视频帧。如果在412处接收到了关于视频效果的指示,则视频效果施加模块122可以至少基于所述指示来对原始视频帧施加所述指示所指定的视频效果。步骤414是图2中的步骤208的一个实例。
在完成了414处的视频效果施加之后,视频效果施加模块122可以在416处向定制API 126发送通知,以便告知定制API 126其已经完成了对原始视频帧施加视频效果的操作。
在418处,目标应用110可以从共享内存430处读取经处理视频帧。例如,定制API116可以从共享内存430处读取经处理视频帧。
在420处,定制API 116可以将经处理视频帧提供给视频获取模块112。
在过程400中,步骤404、步骤406、步骤408、步骤410等可以对应于图2中步骤204处的将原始视频帧从目标应用110传送到视频效果处理应用120的操作。例如,目标应用110可以通过共享内存430向视频效果处理应用120提供原始视频帧,并且视频效果处理应用120可以通过共享内存430从目标应用110处获取原始视频帧。应当理解,由于使用了共享内存430,目标应用110向视频效果处理应用120提供原始视频帧的操作可以指目标应用110将原始视频帧存储到共享内存430中并且将原始视频帧在共享内存430中的存储信息提供给视频效果处理应用120,并且视频效果处理应用120从目标应用110处获取原始视频帧的操作可以指视频效果处理应用120获取所述存储信息。在过程400中,由于视频效果处理应用120并未实际接收到原始视频帧,而是至少基于存储信息(例如,基于根据存储信息所生成的存储信息指示)在共享内存430中访问原始视频帧,从而可以节省将原始视频帧实际发送到视频效果处理应用120处所需的时间和资源,由此提高了执行效率。
在过程400中,步骤418可以对应于图2中步骤210处的将经处理视频帧从视频效果处理应用120向目标应用110的传送。例如,目标应用110可以通过共享内存430从视频效果处理应用120处获取经处理视频帧。应当理解,由于使用了共享内存430,目标应用110从视频效果处理应用120处获取经处理视频帧的操作可以指目标应用110从共享内存430处读取经处理视频帧。
应当理解,过程400还可以包括在440处通过进程间通信来实现目标应用110与视频效果处理应用120对共享内存430的同步访问。在440处的进程间通信可以指在目标应用110的进程与视频效果处理应用120的进程之间的通信,其可以被持续地执行,以便当目标应用110和视频效果处理应用120中的一者对共享内存430进行了访问而导致共享内存430的状态发生变化时,目标应用110和视频效果处理应用120中的另一者可以及时地获得通知并进而执行下一步操作。进程间通信可以是在定制API 116与定制API 126之间执行的。例如,在定制API 116在406处将原始视频帧存储到共享内存430中之后,定制API 116可以通过进程间通信通知定制API 126其已经完成了原始视频帧的存储。从而,定制API 126可以进而在408处获取存储信息。例如,在视频效果施加模块122已经在414处完成了视频效果施加操作并且在416处通知了定制API 126之后,定制API 126可以通过进程间通信通知定制API 116对原始视频帧施加视频效果的操作已经完成。从而,定制API 116可以进而在418处从共享内存430中读取经处理视频帧。在440处的进程间通信可以是通过各种技术来实现的,例如,事件对象(event object)、套接字(socket)、信号量(semaphore)等。本公开的实施例并不局限于任何具体的实施进程间通信的技术。
图5示出了根据实施例的、在目标应用是桌面应用的情况下的用于实现视频效果添加的示例性过程500。
在图5中,基于桌面的目标应用110表示该目标应用是桌面应用。具体地,过程500中的基于桌面的目标应用110可以是利用诸如C/C++等原生方案所创建的应用。从而,该目标应用110可以直接对系统资源进行访问,例如,创建和访问共享内存等,而无需使用API。
在这种情况下,视频效果处理应用120可以在诸如Webview的Web内容容器中运行,例如在Electron Webview中运行。通过使用Webview,可以在基于桌面的目标应用110中加载视频效果处理应用120。与以上结合图3描述的通过在iframe中定义URL以在目标应用110中加载和运行视频效果处理应用120的方式相类似地,可以在Webview中定义与视频效果处理应用120相关联的URL,以便下载UI数据、实现UI显示、下载视频效果相关数据、运行视频效果算法等。
在过程500中,可以通过共享内存来在目标应用110与视频效果处理应用120之间高效地传送原始视频帧和经处理视频帧。可以通过进程间通信来实现目标应用110与视频效果处理应用120对共享内存的同步访问。此外,可以为视频效果处理应用120设置定制API,以至少用于访问共享内存。
在502处,目标应用110可以从视频源102处获取原始视频帧。例如,视频获取模块112可以从视频源102处获取原始视频帧。步骤502是图2中的步骤202的一个实例。
在504处,目标应用110可以创建共享内存530并且向共享内存530中存储原始视频帧。例如,视频获取模块112可以将原始视频帧存储到共享内存530中。
视频效果处理应用120可以包括定制API 126。定制API 126可以用于实现视频效果处理应用120对共享内存530的访问等。定制API 126可以是通过各种技术来实现的,例如,Electron API、Node.js Addon API等。
在原始视频帧被存储到共享内存530之后,视频效果处理应用120可以在506处利用定制API 126获取原始视频帧的在共享内存530中的存储信息。该存储信息可以包括用于在共享内存530中对原始视频帧进行定位的各种信息,例如原始视频帧的内存指针、大小等。
根据过程500,视频效果施加模块122可以至少基于所述存储信息,在共享内存530中对原始视频帧施加视频效果。
在一种实现方式中,在508处,定制API 126可以根据所获取的存储信息来生成存储信息指示,并且将存储信息指示提供给视频效果施加模块122。存储信息指示可以包括视频效果施加模块122所能理解的原始视频帧在共享内存530中的存储空间信息。例如,存储信息指示可以采用SharedArrayBuffer方式。
可选地,在510处,视频效果处理应用120可以通过用户界面接收关于视频效果的指示。步骤510是图2中的步骤206的一个实例。
在512处,视频效果施加模块122可以基于根据存储信息所生成的存储信息指示而直接在共享内存530中对原始视频帧施加视频效果,以得到经处理视频帧。如果在510处接收到了关于视频效果的指示,则视频效果施加模块122可以至少基于所述指示来对原始视频帧施加所述指示所指定的视频效果。步骤512是图2中的步骤208的一个实例。
在完成了512处的视频效果施加之后,视频效果施加模块122可以在514处向定制API 126发送通知,以便告知定制API 126其已经完成了对原始视频帧施加视频效果的操作。
在516处,目标应用110可以从共享内存530处读取经处理视频帧。例如,视频获取模块112可以从共享内存530处读取经处理视频帧。
在过程500中,步骤504、步骤506、步骤508等可以对应于图2中步骤204处的将原始视频帧从目标应用110传送到视频效果处理应用120的操作。例如,目标应用110可以通过共享内存530向视频效果处理应用120提供原始视频帧,并且视频效果处理应用120可以通过共享内存530从目标应用110处获取原始视频帧。应当理解,由于使用了共享内存530,目标应用110向视频效果处理应用120提供原始视频帧的操作可以指目标应用110将原始视频帧存储到共享内存530中并且将原始视频帧在共享内存530中的存储信息提供给视频效果处理应用120,并且视频效果处理应用120从目标应用110处获取原始视频帧的操作可以指视频效果处理应用120获取所述存储信息。在过程500中,由于视频效果处理应用120并未实际接收到原始视频帧,而是至少基于存储信息(例如,基于根据存储信息所生成的存储信息指示)在共享内存530中访问原始视频帧,从而可以节省将原始视频帧实际发送到视频效果处理应用120处所需的时间和资源,由此提高了执行效率。
在过程500中,步骤516可以对应于图2中步骤210处的将经处理视频帧从视频效果处理应用120传送到目标应用110的操作。例如,目标应用110可以通过共享内存530从视频效果处理应用120处获取经处理视频帧。应当理解,由于使用了共享内存530,目标应用110从视频效果处理应用120处获取经处理视频帧的操作可以指目标应用110从共享内存530处读取经处理视频帧。
应当理解,过程500还可以包括在540处通过进程间通信来实现目标应用110与视频效果处理应用120对共享内存530的同步访问。在540处的进程间通信可以指在目标应用110的进程与视频效果处理应用120的进程之间的通信,其可以被持续地执行,以便当目标应用110和视频效果处理应用120中的一者对共享内存530进行了访问而导致共享内存530的状态发生变化时,目标应用110和视频效果处理应用120中的另一者可以及时地获得通知并进而执行下一步操作。进程间通信可以是在视频获取模块112与定制API 126之间执行的。例如,在视频获取模块112在504处将原始视频帧存储到共享内存530中之后,视频获取模块112可以通过进程间通信通知定制API 126其已经完成了原始视频帧的存储。从而,定制API 126可以进而在506处获取存储信息。例如,在视频效果施加模块122已经在512处完成了视频效果施加操作并且在514处通知了定制API 126之后,定制API 126可以通过进程间通信通知视频获取模块112对原始视频帧施加视频效果的操作已经完成。从而,视频获取模块112可以进而在516处从共享内存530中读取经处理视频帧。在540处的进程间通信可以是通过各种技术来实施的,例如,event object、socket、semaphore等。本公开的实施例并不局限于任何具体的实施进程间通信的技术。
应当理解,以上结合图3至图5所描述的用于实现视频效果添加的过程中的所有步骤及其顺序都是示例性的,根据具体的应用场景和需求,可以对这些过程进行任意方式的修改。例如,尽管在图3至图5中示出了UI模块124可以接收关于视频效果的指示,但是,在UI模块124没有接收到关于视频效果的指示的情况下,视频效果处理应用也可以基于任何预先确定的规则来确定将要对视频帧施加哪种视频效果。例如,在图4和图5中,在目标应用是桌面应用的情况下,视频效果处理应用可以是在沙盒环境中运行的,例如,在沙盒化的iframe或Webview中运行。由于沙盒机制可以有效地限制应用对系统资源的访问,因此,通过在沙盒环境中运行视频效果处理应用可以进一步有效地避免安全风险问题。本公开的实施例并不局限于在沙盒环境中运行视频效果处理应用的任何具体实现方式。
图6A至图6D示出了根据实施例的实现视频效果添加的示例性用户界面。在图6A至图6D中,假设目标应用是基于Web或基于桌面的在线会议应用,并且该在线会议应用的用户贝蒂希望在自己的视频图像上添加视频效果。图6A至图6D中的示例性用户界面是在用户贝蒂的终端设备上呈现的。
图6A示出了在线会议应用的用户界面600a。用户界面600a显示了用于进行音频和视频设置的界面。音频和视频设置可以包括例如是否开启麦克风/扬声器、音量调节、是否开启摄像头、是否开启视频效果等。假设贝蒂已经开启了摄像头,并且通过摄像头所捕获的贝蒂的视频图像被呈现在方框602中。在用户界面600a中,控件604处于关闭状态,其表明视频效果尚未开启。
假设贝蒂在用户界面600a中开启了控件604,以表明希望向方框602中的视频图像添加视频效果。控件604的开启将触发在在线会议应用中加载和运行视频效果处理应用,例如,触发下载视频效果处理应用的UI数据并实现UI显示,以及可选地,触发下载并缓存视频效果相关数据等。相应地,在线会议应用将进而呈现如图6B所示的用户界面600b。
在用户界面600b中,控件604已经处于开启状态。用户界面600b包括视频效果处理应用的用户界面610。例如,用户界面610是由视频效果处理应用的UI模块来生成的。用户界面610包括多个示例性的视频效果图标612至618。视频效果图标612表示将在原始图像帧中的人物的脸上增加太阳镜。视频效果图标614表示将在原始图像帧中的人物的脸上增加普通眼镜,并且将改变人物的发型。视频效果图标616表示将在原始图像帧中的人物的头发上增加星星装饰。视频效果图标618表示将在原始图像帧中的人物的头发上增加树叶头饰。用户界面610还可以包括“更多”按钮,对该按钮的点击将触发加载更多的视频效果图标。
假设贝蒂在用户界面600b中选择了视频效果图标616,以表明希望在方框602所呈现的视频图像中向头发上增加星星装饰。对视频效果图标616的选择将触发下载与视频效果图标616对应的视频效果的视频效果相关数据并运行对应的视频效果算法,或者触发直接运行已经本地缓存的与视频效果图标616对应的视频效果算法。视频效果处理应用的视频效果施加模块将利用该视频效果算法在方框602内的原始视频帧中的人物的头发上施加视频效果素材“星星装饰”。相应地,在线会议应用将进而呈现如图6C所示的用户界面600c。
在用户界面600c中,视频效果图标616被突出显示,以表明当前采用了与该视频效果图标616对应的视频效果。在方框622中,呈现了已经添加有“星星装饰”视频效果的贝蒂的视频图像。
假设在视频效果添加之后,贝蒂进入了一个在线会议。图6D示出了在线会议应用的关于该在线会议的会议界面600d。方框632呈现了会议参与者汤姆的视频图像,方框634呈现了会议参与者吉米的视频图像。方框636呈现了贝蒂自己的视频图像,其中,在贝蒂的视频图像上已经添加有“星星装饰”的视频效果。应当理解,在汤姆和吉米各自的终端设备上所呈现的会议界面中,贝蒂的视频图像将是方框636所呈现的添加有视频效果的视频图像,而不是图6A和图6B中的方框602所呈现的原始视频图像。
此外,假设贝蒂并没有在该在线会议开始之前设置视频效果,则贝蒂也可以在该在线会议进行期间设置视频效果。例如,用户界面600d上部的多个操作按钮可以包括用于进行音频和视频设置的按钮或者用于添加视频效果的按钮,以用于导航到用户界面600a或600b,以便进而设置视频效果。
应当理解,图6A至图6D中的所有元素及其布局都是示例性的,在不同的目标应用以及不同的实际场景中可能存在各种变型。本公开的实施例并不受限于用户界面的任何特定细节。此外,应当理解,尽管图6B和图6C仅示出了对应于一个视频效果处理应用的用户界面610,但是在目标应用支持多个视频效果处理应用的情况下,也可以同时显示分别与所述多个视频效果处理应用相对应的多个用户界面,从而,用户可以在任意一个视频效果处理应用的用户界面中选择期望的视频效果。
图7示出了根据实施例的用于实现视频效果添加的示例性方法700的流程图。方法700可以是在目标应用处执行的。
在710处,可以从视频源处获取原始视频帧。
在720处,可以向视频效果处理应用提供所述原始视频帧,所述视频效果处理应用是Web应用。
在730处,可以从所述视频效果处理应用处获取施加了视频效果的经处理视频帧。
在一种实现方式中,所述目标应用可以是Web应用。
所述提供所述原始视频帧可以包括:以可传递ArrayBuffer方式向所述视频效果处理应用提供所述原始视频帧。所述获取经处理视频帧可以包括:以可传递ArrayBuffer方式从所述视频效果处理应用处获取所述经处理视频帧。
在一种实现方式中,所述目标应用可以是桌面应用。
所述提供所述原始视频帧可以包括:通过共享内存向所述视频效果处理应用提供所述原始视频帧。所述获取经处理视频帧可以包括:通过所述共享内存从所述视频效果处理应用处获取所述经处理视频帧。
所述提供所述原始视频帧可以包括:向所述共享内存中存储所述原始视频帧。所述获取所述经处理视频帧可以包括:从所述共享内存处读取所述经处理视频帧。
所述存储所述原始视频帧可以包括:利用定制API向所述共享内存中存储所述原始视频帧。所述读取所述经处理视频帧可以包括:利用所述定制API从所述共享内存处读取所述经处理视频帧。
可以通过进程间通信,实现所述目标应用与所述视频效果处理应用对所述共享内存的同步访问。
应当理解,方法700还可以包括根据上述本公开实施例的在目标应用处执行的用于实现视频效果添加的任何步骤/过程。
图8示出了根据实施例的用于实现视频效果添加的示例性方法800的流程图。方法800可以是在视频效果处理应用处执行的,所述视频效果处理应用可以是Web应用。
在810处,可以从目标应用处获取原始视频帧。
在820处,可以对所述原始视频帧施加视频效果,以得到经处理视频帧。
在830处,可以向所述目标应用提供所述经处理视频帧。
在一种实现方式中,所述视频效果处理应用可以是在Web内容容器中运行的。
在一种实现方式中,所述目标应用可以是Web应用,并且所述Web内容容器可以是iframe。
所述获取原始视频帧可以包括:以可传递ArrayBuffer方式从所述目标应用处获取所述原始视频帧。所述提供所述经处理视频帧可以包括:以可传递ArrayBuffer方式向所述目标应用提供所述经处理视频帧。
在一种实现方式中,所述目标应用可以是桌面应用,并且所述Web内容容器可以是Webview。
所述获取原始视频帧可以包括:通过共享内存从所述目标应用处获取所述原始视频帧。所述提供所述经处理视频帧可以包括:通过所述共享内存向所述目标应用提供所述经处理视频帧。
所述获取所述原始视频帧可以包括:利用定制API获取所述原始视频帧的在所述共享内存中的存储信息。所述施加视频效果可以包括:至少基于所述存储信息,在所述共享内存中对所述原始视频帧施加所述视频效果。
可以通过进程间通信,实现所述视频效果处理应用与所述目标应用对所述共享内存的同步访问。
所述视频效果处理应用可以是在沙盒环境中运行的。
在一种实现方式中,方法800还可以包括:通过用户界面接收关于所述视频效果的指示。所述视频效果可以是至少基于所述指示来施加的。
应当理解,方法800还可以包括根据上述本公开实施例的在视频效果处理应用处执行的用于实现视频效果添加的任何步骤/过程。
图9示出了根据实施例的用于实现视频效果添加的示例性装置900。装置900可以是在目标应用处实施的。
装置900可以包括:原始视频帧获取模块910,用于从视频源处获取原始视频帧;原始视频帧提供模块920,用于向视频效果处理应用提供所述原始视频帧,所述视频效果处理应用是Web应用;以及经处理视频帧获取模块930,用于从所述视频效果处理应用处获取施加了视频效果的经处理视频帧。此外,装置900还可以包括在目标应用处实施的、执行根据上述本公开实施例的用于实现视频效果添加的方法的步骤的任何其它模块。
图10示出了根据实施例的用于实现视频效果添加的示例性装置1000。装置1000可以是在视频效果处理应用处实施的,所述视频效果处理应用可以是Web应用。
装置1000可以包括:原始视频帧获取模块1010,用于从目标应用处获取原始视频帧;视频效果施加模块1020,用于对所述原始视频帧施加视频效果,以得到经处理视频帧;以及经处理视频帧提供模块1030,用于向所述目标应用提供所述经处理视频帧。此外,装置1000还可以包括在视频效果处理应用处实施的、执行根据上述本公开实施例的用于实现视频效果添加的方法的步骤的任何其它模块。
图11示出了根据实施例的用于实现视频效果添加的示例性装置1100。
装置1100可以包括:至少一个处理器1110;以及存储器1120,其存储计算机可执行指令。当所述计算机可执行指令被运行时,所述至少一个处理器1110可以执行根据上述本公开实施例的用于实现视频效果添加的方法的任何步骤/过程。
本公开的实施例提出了用于实现视频效果添加的计算机程序产品,包括计算机程序,所述计算机程序被至少一个处理器运行用于执行根据上述本公开实施例的用于实现视频效果添加的方法的任何步骤/过程。
本公开的实施例可以实施在非暂时性计算机可读介质中。该非暂时性计算机可读介质可以包括指令,当所述指令被执行时,使得一个或多个处理器执行根据上述本公开实施例的用于实现视频效果添加的方法的任何步骤/过程。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
另外,除非另有规定或者从上下文能清楚得知针对单数形式,否则如本说明书和所附权利要求书中所使用的冠词“一(a)”和“一个(an)”通常应当被解释为意指“一个”或者“一个或多个”。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、DSP或其它适合的平台所执行的软件。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器分离的,但是存储器也可以位于处理器内部(如,缓存或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实施本文所描述的各个方面。这些方面的各种修改对于本领域技术人员是显而易见的,本文限定的一般性原理可以应用于其它方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换,都将由权利要求所覆盖。

Claims (20)

1.一种用于实现视频效果添加的方法,所述方法在目标应用处执行,并且所述方法包括:
从视频源处获取原始视频帧;
向视频效果处理应用提供所述原始视频帧,所述视频效果处理应用是Web应用;以及
从所述视频效果处理应用处获取施加了视频效果的经处理视频帧。
2.如权利要求1所述的方法,其中,
所述目标应用是Web应用。
3.如权利要求2所述的方法,其中,
所述提供所述原始视频帧包括:以可传递数组缓冲区(ArrayBuffer)方式向所述视频效果处理应用提供所述原始视频帧,并且
所述获取经处理视频帧包括:以可传递ArrayBuffer方式从所述视频效果处理应用处获取所述经处理视频帧。
4.如权利要求1所述的方法,其中,
所述目标应用是桌面应用。
5.如权利要求4所述的方法,其中,
所述提供所述原始视频帧包括:通过共享内存向所述视频效果处理应用提供所述原始视频帧,并且
所述获取经处理视频帧包括:通过所述共享内存从所述视频效果处理应用处获取所述经处理视频帧。
6.如权利要求5所述的方法,其中,
所述提供所述原始视频帧包括:向所述共享内存中存储所述原始视频帧,并且
所述获取所述经处理视频帧包括:从所述共享内存处读取所述经处理视频帧。
7.如权利要求6所述的方法,其中,
所述存储所述原始视频帧包括:利用定制API向所述共享内存中存储所述原始视频帧,并且
所述读取所述经处理视频帧包括:利用所述定制API从所述共享内存处读取所述经处理视频帧。
8.如权利要求5所述的方法,还包括:
通过进程间通信,实现所述目标应用与所述视频效果处理应用对所述共享内存的同步访问。
9.一种用于实现视频效果添加的方法,所述方法在视频效果处理应用处执行,所述视频效果处理应用是Web应用,并且所述方法包括:
从目标应用处获取原始视频帧;
对所述原始视频帧施加视频效果,以得到经处理视频帧;以及
向所述目标应用提供所述经处理视频帧。
10.如权利要求9所述的方法,其中,
所述视频效果处理应用是在Web内容容器中运行的。
11.如权利要求10所述的方法,其中,
所述目标应用是Web应用,并且所述Web内容容器是iframe。
12.如权利要求11所述的方法,其中,
所述获取原始视频帧包括:以可传递数组缓冲区(ArrayBuffer)方式从所述目标应用处获取所述原始视频帧,并且
所述提供所述经处理视频帧包括:以可传递ArrayBuffer方式向所述目标应用提供所述经处理视频帧。
13.如权利要求10所述的方法,其中,
所述目标应用是桌面应用,并且所述Web内容容器是Webview。
14.如权利要求13所述的方法,其中,
所述获取原始视频帧包括:通过共享内存从所述目标应用处获取所述原始视频帧,并且
所述提供所述经处理视频帧包括:通过所述共享内存向所述目标应用提供所述经处理视频帧。
15.如权利要求14所述的方法,其中,
所述获取所述原始视频帧包括:利用定制API获取所述原始视频帧的在所述共享内存中的存储信息,并且
所述施加视频效果包括:至少基于所述存储信息,在所述共享内存中对所述原始视频帧施加所述视频效果。
16.如权利要求14所述的方法,还包括:
通过进程间通信,实现所述视频效果处理应用与所述目标应用对所述共享内存的同步访问。
17.如权利要求13所述的方法,其中,
所述视频效果处理应用是在沙盒环境中运行的。
18.如权利要求9所述的方法,还包括:
通过用户界面接收关于所述视频效果的指示,并且
其中,所述视频效果是至少基于所述指示来施加的。
19.一种用于实现视频效果添加的装置,包括:
至少一个处理器;以及
存储器,其存储计算机可执行指令,当所述计算机可执行指令被运行时使所述至少一个处理器执行如权利要求1至18中任一项所述方法的步骤。
20.一种计算机程序产品,包括计算机程序,所述计算机程序被至少一个处理器运行用于执行如权利要求1至18中任一项所述方法的步骤。
CN202111027952.9A 2021-09-02 2021-09-02 基于Web的视频效果添加 Pending CN115842815A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111027952.9A CN115842815A (zh) 2021-09-02 2021-09-02 基于Web的视频效果添加
PCT/US2022/036600 WO2023033923A1 (en) 2021-09-02 2022-07-09 Web-based video effect addition

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111027952.9A CN115842815A (zh) 2021-09-02 2021-09-02 基于Web的视频效果添加

Publications (1)

Publication Number Publication Date
CN115842815A true CN115842815A (zh) 2023-03-24

Family

ID=83004910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111027952.9A Pending CN115842815A (zh) 2021-09-02 2021-09-02 基于Web的视频效果添加

Country Status (2)

Country Link
CN (1) CN115842815A (zh)
WO (1) WO2023033923A1 (zh)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090009532A1 (en) * 2007-07-02 2009-01-08 Sharp Laboratories Of America, Inc. Video content identification using ocr
WO2013116937A1 (en) * 2012-02-09 2013-08-15 Flixel Photos Inc. Systems and methods for creation and sharing of selectively animated digital photos
CN111669623B (zh) * 2020-06-28 2023-10-13 腾讯科技(深圳)有限公司 视频特效的处理方法、装置以及电子设备

Also Published As

Publication number Publication date
WO2023033923A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
US8245124B1 (en) Content modification and metadata
US10068364B2 (en) Method and apparatus for making personalized dynamic emoticon
US10423527B2 (en) Memory management and image display for mobile devices
US20220007083A1 (en) Method and stream-pushing client for processing live stream in webrtc
CN110874217B (zh) 快应用的界面显示方法、装置及存储介质
CN112770188B (zh) 一种视频播放方法及装置
US10362359B2 (en) Video player framework for a media distribution and management platform
CN113168337A (zh) 用于管理在客户端设备上生成和渲染用户界面的技术
CN112331235B (zh) 多媒体内容的编辑控制方法、装置、电子设备和存储介质
WO2023093414A1 (zh) 微应用的开发方法、装置、设备、存储介质及程序产品
CN110070593B (zh) 图片预览信息的显示方法、装置、设备及介质
WO2017107851A1 (zh) 一种桌面应用组件发布、更新方法及装置
CN113806306B (zh) 媒体文件处理方法、装置、设备、可读存储介质及产品
WO2019237055A1 (en) Interactive file generation and execution
CN110971974B (zh) 配置参数创建方法、装置、终端及存储介质
CN110930325B (zh) 基于人工智能的图像处理方法、装置及存储介质
CN111698574A (zh) 一种视频水印处理方法、装置、电子设备和存储介质
EP4080507A1 (en) Method and apparatus for editing object, electronic device and storage medium
CN115842815A (zh) 基于Web的视频效果添加
KR102516831B1 (ko) 싱글 스트림을 이용하여 관심 영역 고화질 영상을 제공하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램
CN116302230A (zh) 一种页面展示方法、装置及设备
CN113038225B (zh) 视频播放方法、装置、计算设备以及存储介质
CN111327941B (zh) 一种离线视频播放方法、装置、设备及介质
CN111104183B (zh) 应用程序运行方法、装置、电子设备及存储介质
EP4397045A1 (en) Web-based video effect addition

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