CN113949684A - 视频传输方法、装置、介质和计算设备 - Google Patents

视频传输方法、装置、介质和计算设备 Download PDF

Info

Publication number
CN113949684A
CN113949684A CN202111182595.3A CN202111182595A CN113949684A CN 113949684 A CN113949684 A CN 113949684A CN 202111182595 A CN202111182595 A CN 202111182595A CN 113949684 A CN113949684 A CN 113949684A
Authority
CN
China
Prior art keywords
video
application
terminal
native
web 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
CN202111182595.3A
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.)
Hangzhou Netease Zhiqi Technology Co Ltd
Original Assignee
Hangzhou Netease Zhiqi Technology 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 Hangzhou Netease Zhiqi Technology Co Ltd filed Critical Hangzhou Netease Zhiqi Technology Co Ltd
Priority to CN202111182595.3A priority Critical patent/CN113949684A/zh
Publication of CN113949684A publication Critical patent/CN113949684A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet

Abstract

本公开的实施方式提供了一种视频传输方法、装置、介质和计算设备。所述方法应用于运行有原生应用和Web应用的终端,包括:获取所述原生应用对第一视频进行处理后输出的第二视频的视频流;调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。该方法下的视频流传输效率较高,而且不易出现画面卡顿等问题,应用程序的运行稳定性较高。

Description

视频传输方法、装置、介质和计算设备
技术领域
本公开的实施方式涉及人机交互技术领域,更具体地,本公开的实施方式涉及一种视频传输方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本公开的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
手机、电脑等终端能够通过运行应用程序(APP,Application)实现特定的功能。例如,可以运行原生应用程序(下称原生应用)和Web应用程序(下称Web应用)。其中,原生应用通常需要预先安装在终端中,并通过安装的客户端与远端的服务器相互配合实现应用功能;Web应用通常无需预先安装,可以直接通过终端中的Web浏览器访问远端的服务器以实现应用功能。
运行在同一终端中的不同应用之间可能存在跨应用的数据传输需求。在相关技术中,通常利用WebSocket技术在原生应用和Web应用之间建立WebSocket通道,以实现二者之间的跨应用数据传输。
发明内容
为此,非常需要一种改进的视频传输方法,以实现终端内原生应用和Web应用之间跨应用的高效数据传输。
在本上下文中,本公开的实施方式期望提供一种视频传输方法、装置、介质和计算设备。
在本公开实施方式的第一方面中,提供了一种视频传输方法,应用于运行有原生应用和Web应用的终端,所述方法包括:
获取所述原生应用对第一视频进行处理后输出的第二视频的视频流;
调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。
可选地,还包括:
响应于所述Web应用发出的应用唤起指令,唤起所述原生应用。
可选地,还包括:
指示所述Web应用通过虚拟摄像头接收所述视频流,所述虚拟摄像头由所述原生应用驱动运行。
可选地,所述终端的操作系统为Windows操作系统,所述系统级原生工具为DirectShow工具包,基于所述终端提供的系统级原生工具生成所述数据传输组件,包括:
响应于组件生成指令,利用所述DirectShow工具包注册DirectShow Filter通道;
将所述DirectShow Filter通道注册至Windows操作系统的系统注册表,以作为所述数据传输组件。
可选地,
还包括:为所述DirectShow Filter通道生成通道调用接口;
所述调用数据传输组件将所述视频流发送至所述Web应用,包括:通过所述通道调用接口调用所述DirectShow Filter通道,并利用该通道将所述视频流发送至所述Web应用。
可选地,所述第一视频包括下述之一:
所述终端本地存储的已录制视频;
所述终端的硬件摄像头采集到的实时视频;
所述终端中运行的除所述原生应用和所述Web应用之外的其他应用提供的视频。
可选地,所述原生应用具有视频美颜功能和/或视频剪辑功能。
在本公开实施方式的第二方面中,提供了一种视频传输装置,应用于运行有原生应用和Web应用的终端,所述装置包括:
获取模块,用于获取所述原生应用对第一视频进行处理后输出的第二视频的视频流;
发送模块,用于调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。
可选地,还包括:
唤起模块,用于响应于所述Web应用发出的应用唤起指令,唤起所述原生应用。
可选地,还包括:
指示模块,用于指示所述Web应用通过虚拟摄像头接收所述视频流,所述虚拟摄像头由所述原生应用驱动运行。
可选地,所述终端的操作系统为Windows操作系统,所述系统级原生工具为DirectShow工具包,所述装置还包括组件生成模块,用于:
响应于组件生成指令,利用所述DirectShow工具包注册DirectShow Filter通道;
将所述DirectShow Filter通道注册至Windows操作系统的系统注册表,以作为所述数据传输组件。
可选地,
还包括接口生成模块,用于为所述DirectShow Filter通道生成通道调用接口;
所述发送模块还用于:通过所述通道调用接口调用所述DirectShow Filter通道,并利用该通道将所述视频流发送至所述Web应用。
可选地,所述第一视频包括下述之一:
所述终端本地存储的已录制视频;
所述终端的硬件摄像头采集到的实时视频;
所述终端中运行的除所述原生应用和所述Web应用之外的其他应用提供的视频。
可选地,所述原生应用具有视频美颜功能和/或视频剪辑功能。
在本公开实施方式的第三方面中,提供了一种介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一实施例所述的视频传输方法。
在本公开实施方式的第四方面中,提供了一种计算设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现上述第一方面中任一实施例所述的视频传输方法。
根据本公开实施方式的视频传输方法,原生应用和Web应用运行于同一终端,该终端预先基于该终端提供的系统级原生工具生成有数据传输组件。终端中运行的原生应用首先对第一视频进行处理得到第二视频,然后输出第二视频的视频流;终端在获取到该视频流之后,会调用数据传输组件将该视频流发送至本地运行的Web应用,以由该Web应用展示上述第二视频。
采用这样的方式,终端可以基于终端自身提供的系统级原生工具生成数据传输组件,进而利用该数据传输组件将原生应用处理后的视频流传输至Web应用,从而实现原生应用和Web应用之间的跨应用数据传输。显然,相对于在原生应用和Web应用之间建立TCP连接的相关技术,基于终端自身提供的系统级原生工具生成的数据传输组件在运行过程所需的终端资源较少,因此视频流的传输效率较高;而正因为所需终端资源较少,所以即便在终端资源占用率较高的情况下,Web应用也难以出现画面卡顿等问题,应用程序的运行稳定性较高。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,其中:
图1示意性地示出了根据本公开实施方式的一种视频传输系统的架构示意图;
图2示意性地示出了根据本公开实施方式的一种终端示意图;
图3示意性地示出了根据本公开实施方式的一种视频传输方法的流程图;
图4示意性地示出了根据本公开实施方式的一种视频传输方法的交互流程图;
图5示意性地示出了根据本公开实施方式的一种介质的示意图;
图6示意性地示出了根据本公开实施方式的一种视频传输装置的框图;
图7示意性地示出了根据本公开实施方式的一种计算设备的示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本公开的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本公开的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本公开的实施方式,提出了一种视频传输方法、装置、介质和计算设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本公开的若干代表性实施方式,详细阐释本公开的原理和精神。
发明概述
如前所述,运行在同一终端中的原生应用和Web应用之间可能存跨应用的数据传输需求。例如,Web应用为了实现某一应用功能,需要对图像、视频等原始多媒体素材进行处理,但是Web应用可能并不具有相应的处理能力(如该处理能力并非Web应用的核心功能)。为此,可以将这一处理过程交由终端中运行的具有上述处理能力的原生应用完成,并由终端将原生应用处理完成的多媒体素材跨应用传输至Web应用。
在相关技术中,通常利用WebSocket技术在同一终端中的原生应用和Web应用之间建立WebSocket通道,以实现同一终端中二者之间的跨应用数据传输。
但是,本公开的发明人发现,相关技术中利用WebSocket通道实现终端内跨应用数据传输的方案,需要在两应用程序之间建立TCP连接,因此会占用较多的CPU、内存等终端资源,数据传输效率较低。而且,在终端资源占用率较高的情况下,甚至会导致Web应用出现画面卡顿等问题,因而应用程序的运行稳定性不高。
为了规避上述问题,本公开提供一种视频传输方法、装置、介质和计算设备。原生应用和Web应用运行于同一终端,该终端预先基于该终端提供的系统级原生工具生成有数据传输组件。终端中运行的原生应用首先对第一视频进行处理得到第二视频,然后输出第二视频的视频流;终端在获取到该视频流之后,会调用数据传输组件将该视频流发送至本地运行的Web应用,以由该Web应用展示上述第二视频。
采用这样的方式,终端可以基于终端自身提供的系统级原生工具生成数据传输组件,进而利用该数据传输组件将原生应用处理后的视频流传输至Web应用,从而实现原生应用和Web应用之间的跨应用数据传输。显然,相对于在原生应用和Web应用之间建立TCP连接的相关技术,基于终端自身提供的系统级原生工具生成的数据传输组件在运行过程所需的终端资源较少,因此视频流的传输效率较高;而正因为所需终端资源较少,所以即便在终端资源占用率较高的情况下,Web应用也难以出现画面卡顿等问题,应用程序的运行稳定性较高。可见,通过本公开实施例所述的数据传输方式,能够实现同一终端中原生应用和Web应用之间的跨应用视频数据传输,而且该方式避免了相关技术所述方式存在的技术问题。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
应用场景总览
需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
首先参考图1,图1是一示例性实施例提供的一种数据传输系统的架构示意图。如图1所示,该系统可以包括网络10、服务器11、若干电子设备,比如终端12、终端13和终端14等。
服务器11可以为包含一独立主机的物理服务器,或者该服务器11可以为主机集群承载的虚拟服务器、云服务器等。在运行过程中,服务器11可以运行某一应用的服务器侧的程序,以实现该应用的相关业务功能,比如当该服务器11运行Web应用的程序时,可以实现为该应用程序的服务端,相应地,终端中可以通过Web浏览器运行Web应用的客户端。可由服务器11通过与终端12-14上运行的Web应用的客户端进行配合,以实现Web应用的预设功能。
作为用户可以使用的电子设备,终端12-14中的任一终端可以具有多种类型。譬如,可以为手机、平板设备、笔记本电脑、台式电脑、掌上电脑(PDAs,Personal DigitalAssistants)、可穿戴设备(如智能眼镜、智能手表等)等,本说明书一个或多个实施例并不对此进行限制。而对于网络10,可以包括多种类型的有线或无线网络。
如图2所示,任一终端201(如上述终端12、13或14)中除了运行有Web应用之外,还运行有原生应用。在Web应用的运行过程中,需要从原生应用处获取经原生应用处理过的视频数据(即第二视频的视频流)。在本说明书一个或多个实施例的技术方案中,可以由任一手机中运行的原生应用和Web应用相互配合,实现本公开所述的在两应用程序之间进行数据传输的方案。
对于上述应用程序,需要说明的是:在本公开所述的实施例中,原生应用可以为终端中预装的系统级应用程序,譬如短信、相册、备忘录、录音机等;或者,也可以为用户自行安装的第三方应用程序,如资讯应用、社交应用、购物应用等。而Web应用可以为浏览器中实现的应用程序,如可以为采用HTML5技术的在线“客户端”,当然,上述浏览器本身可以为原生应用。
根据本公开实施方式的视频传输方法,原生应用和Web应用运行于同一终端,该终端预先基于该终端提供的系统级原生工具生成有数据传输组件。终端中运行的原生应用首先对第一视频进行处理得到第二视频,然后输出第二视频的视频流;终端在获取到该视频流之后,会调用数据传输组件将该视频流发送至本地运行的Web应用,以由该Web应用展示上述第二视频。
示例性方法
下面结合图1的应用场景,参考图2来描述根据本公开示例性实施方式的用于视频传输的方法。需要注意的是,上述应用场景仅是为了便于理解本公开的精神和原理而示出,本公开的实施方式在此方面不受任何限制。相反,本公开的实施方式可以应用于适用的任何场景。
参考图3,图3示意性地示出了根据本公开实施方式的一种视频传输方法的流程图。该视频传输方法应用于运行有原生应用和Web应用的终端,该方法可以包括以下步骤:
步骤S302,获取所述原生应用对第一视频进行处理后输出的第二视频的视频流。
在本实施例中,终端中运行的Web应用可以实现其自身所具备的特定功能。在该过程中,Web应用自身可能产生视频流获取需求,即需要从原生应用处获取经过处理的第二视频的视频流。在这种情况下,Web应用可以向终端发出针对原生应用的应用唤起指令,以由终端唤起本地预先安装的所述原生应用。其中,终端本地可能不只安装一款原生应用,对此,Web应用可以预先保存自身可能产生的视频流获取需求所对应原生应用的应用标识,并将该标识包含在应用唤起指令中以便告知终端应当唤起哪个应用程序。或者,上述应用唤起指令中也可以包含事务类型标识,如包含视频处理事务的标识,以便终端根据该标识确定本地安装的具有视频处理能力的原生应用,进而唤起该原生应用。当然,在本实施例中,原生应用可以对第一视频进行处理以得到第二视频,并输出该第二视频的视频流。其中,上述第一视频可以具有多种形式,例如可以为终端的硬件摄像头采集到的实时视频。再例如,第一视频也可以为终端本地存储的已录制视频,当然,该已录制视频可以由终端录制(如终端通过实体摄像头采集画面并生成视频),也可以由终端之外的其他设备录制后发送至终端进行保存。又例如,终端中除所述原生应用和所述Web应用之外还可以运行其他应用,该应用可以向原生应用提供视频,相应地,该第一视频即可以为上述其他应用提供至原生应用的视频。另外,本公开实施例中所述的第一视频可以为.mp4、.avi、.rmvb等格式,本公开实施例并不对此进行限制。
在一实施例中,上述原生应用可以具有视频美颜功能,相应地,原生应用对第一视频进行的处理可以为美颜处理,如对视频中的目标人像进行美白磨皮、大眼瘦脸等处理,或者为视频添加虚拟贴纸等特效。
在另一实施例中,上述原生应用可以具有视频剪辑功能,相应地,原生应用对第一视频进行的处理可以为剪辑处理,如声画同步、连续动作剪辑、画面位置剪辑等。
在又一实施例中,上述原生应用也可以同时具有视频美颜功能和视频剪辑功能,或者还可以具有其他视频处理功能,从而原生应用可以对第一视频进行相应的视频处理以得到第二视频。对于原生应用对第一视频进行处理的具体方式,本公开实施例并不进行限制。
在对第一视频进行处理得到第二视频之后,原生应用可以将第二视频的视频流发送至终端,以便其将该视频流发送至Web应用。
步骤S304,调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。
在本实施例中,终端可以基于自身提供的系统级原生工具预先生成数据传输组件,相应地,在获取到原生应用输出的第二视频的视频流之后,终端可以调用该数据传输组件将视频流发送至Web应用。
在一实施例中,终端的操作系统可以为Windows操作系统,相应地,终端提供的系统级原生工具可以为自身的Windows操作系统所提供的DirectShow工具包。该工具包是微软公司在ActiveMovie和Video for Windows的基础上推出的基于COM(Component ObjectModel,组件对象模型)的新一代流媒体处理开发工具包,其使用Filter Graph模型管理数据流的处理过程。通过合理运用DirectShow工具包,可以很方便地从支持WDM(WavelengthDivision Multiplexing,波分复用)驱动模型的采集卡上捕获数据,并进行相应的后期处理乃至存储到文件中,从而使多媒体数据的存取更加方便。
具体的,终端可以响应于组件生成指令,利用上述DirectShow工具包注册DirectShow Filter通道,然后将DirectShow Filter通道注册至Windows操作系统的系统注册表,以作为上述数据传输组件。具体的,可以使用regsvr32命令以管理员权限将上述通道注册至系统注册表,具体过程可以参见相关技术中的记载,此处不再赘述。其中,上述组件生成指令可以根据用户实施的组件生成操作所产生,例如该指令可以由本地运行的任一应用程序所发出,或者也可以由终端的操作系统(即上述Windows操作系统)所发出,本公开实施例并不对此进行限制。
进一步的,终端还可以为上述DirectShow Filter通道生成通道调用接口。相应地,终端可以通过该通道调用接口调用预先生成的上述DirectShow Filter通道,并利用该通道将第二视频的视频流发送至Web应用。另外,在预先生成上述DirectShow Filter通道之后,终端还可以进一步根据该通道及其相关支持组件生成dll(Dynamic Link Library,动态链接库)文件,以便于应用程序调用上述通道。相应地,终端可以执行该文件以实现对上述DirectShow Filter通道的调用。
在一实施例中,上述原生应用还可以预先关联虚拟摄像头,例如在安装原生应用的过程中,终端可以在上述系统注册表中自动注册虚拟摄像头,或者响应于原生应用的安装进程发出的注册指令在上述系统注册表中自动注册虚拟摄像头。注册完成的该虚拟摄像头可以由原生应用驱动运行,以便于其他应用程序通过该虚拟摄像头获取原生应用输出的视频流。在这种情况下,终端可以指示Web应用通过上述虚拟摄像头接收原生应用输出的视频流。例如,Web应用可以响应于原生应用发送的摄像头切换指令,将上述虚拟摄像头切换为自身的视频源,以通过该虚拟摄像头获取原生应用输出的视频流。
对于原生应用来说,其可以将输出的视频流直接发送至上述DirectShow Filter通道;对于Web应用来说,其在将视频源切换为上述虚拟摄像头之后,可以直接接收该虚拟摄像头对应的上述DirectShow Filter通道发送来的数据,即上述原生应用发送的视频流。可见,上述DirectShow Filter通道相当于在原生应用和Web应用之间建立的跨应用数据传输通道:原生应用负责将处理后的视频流发送至该通道,而Web应用负责通过该通道接收视频流。其中,上述过程传输的视频流,除了包括各张视频图像帧的图像数据(即图像帧中各个像素点的颜色值,如RGB值、灰度值等),还可以包括视频尺寸信息(即图像帧长、宽等)和时间信息(如各张视频帧在第二视频的时间轴中的时间戳)等信息。
进而,Web应用可以根据获取到的视频流生成第二视频,并在自身的应用程序界面中展示该第二视频,即展示该视频的视频画面。另外,Web应用也可以将上述第二视频的视频画面或者视频信息发送至相应的服务端或进行其他处理,以实现自身的特定功能。
综上,根据本公开实施方式的视频传输方法,终端可以基于终端自身提供的系统级原生工具生成数据传输组件,进而利用该数据传输组件将原生应用处理后的视频流传输至Web应用,从而实现原生应用和Web应用之间的跨应用数据传输。显然,相对于在原生应用和Web应用之间建立TCP连接的相关技术,基于终端自身提供的系统级原生工具生成的数据传输组件在运行过程所需的终端资源较少,因此视频流的传输效率较高;而正因为所需终端资源较少,所以即便在终端资源占用率较高的情况下,Web应用也难以出现画面卡顿等问题,应用程序的运行稳定性较高。
图4是一示例性实施例提供的一种数据传输方法的交互流程图。下面结合图4所示的实施例,以原生应用和Web应用分别为视频美颜应用和即时通信(Instant Messaging,IM)应用为例,对终端通过自身生成的数据传输组件实现两应用之间的跨应用数据交互过程进行详细说明。可以理解的是,在本公开所述方案中,图4所示实施例的视频美颜应用只是原生应用的一种可选形式、即时通信应用也只是Web应用的一种可选形式。该实施例所述的视频美颜应用和即时通信应用并不构成对本公开所述方案中原生应用和Web应用的保护范围的限定。例如,在本公开所述方案的具体实践中,完全可以将视频剪辑应用作为上述原生应用、并将视频播放应用作为上述Web应用等,不再赘述。
如图4所示,该过程可以包括下述步骤401-413。
步骤401,终端注册虚拟摄像头。
首先需要说明的是,本公开实施例中所述的终端,可以视为终端的操作系统,或者也可以视为安装在终端中的除视频美颜应用和即时通信应用之外的其他应用程序,该应用程序即用于实现本公开实施例所述的数据传输方法。
在数据传输之前,终端可以预先在自身操作系统的系统注册表中注册虚拟摄像头。例如,在安装视频美颜应用过程中,终端可以响应于视频美颜应用的安装进程发出的注册指令在上述系统注册表中自动注册虚拟摄像头;或者也可以在安装完成后(如首次启动视频美颜应用时)在上述系统注册表中自动注册虚拟摄像头。上述过程生成的虚拟摄像头可以由视频美颜应用驱动运行,以便于其他应用程序通过该虚拟摄像头获取视频美颜应用输出的视频流。
步骤402,终端基于自身操作系统提供的DirectShow工具包生成DirectShowFilter通道。
另外,在数据传输之前,终端还可以预先基于自身操作系统提供的系统级原生工具生成数据传输组件。例如,在终端的操作系统为Windows操作系统的情况下,终端可以基于该操作系统提供的DirectShow工具包生成数据传输组件。例如,终端可以响应于组件生成指令,利用上述DirectShow工具包注册DirectShow Filter通道,然后将DirectShowFilter通道注册至Windows操作系统的系统注册表,以作为上述数据传输组件。具体的,可以使用regsvr32命令以管理员权限将上述通道注册至操作系统的系统注册表,具体过程可以参见相关技术中的记载,此处不再赘述。其中,上述组件生成指令可以根据用户实施的组件生成操作所产生,例如可以由本地运行的任一应用程序所发出,或者也可以由终端的操作系统(即上述Windows操作系统)所发出,本公开实施例并不对此进行限制。
进一步的,在生成上述DirectShow Filter通道之后,终端还可以进一步将该通道及其相关支持组件封装为.dll文件,以便通过执行该组件实现对上述DirectShow Filter通道的调用。另外,终端还可以为上述DirectShow Filter通道生成通道调用接口,以便通过该接口调用上述DirectShow Filter通道。
当然,Windows操作系统只是本方案可以应用的一种示例操作系统,终端的操作系统也可以为其他类型。例如,终端的操作系统也可以为iOS操作系统,此时该操作系统提供的系统级原生工具可以为UIApplication Main函数,相应地,终端可以通过该函数的OpenURL方法生成数据传输组件,以实现视频美颜应用和即时通信应用之间的数据传输。或者,终端的操作系统还可以为安卓Android操作系统,此时该操作系统提供的系统级原生工具可以为Bundle和Intent组件,相应地,终端可以通过上述组件生成数据传输组件,以通过直接传输、序列化传输、打包传输等方式实现视频美颜应用和即时通信应用之间的数据传输。具体实现方式可以参见相关技术中的记载,此处不再赘述。
本实施例中,作为一示例性实施方式,可以先注册虚拟摄像头再生成DirectShowFilter通道;或者,作为另一示例性实施方式,也可以先生成DirectShow Filter通道再注册虚拟摄像头。换言之,步骤401所述的“注册虚拟摄像头”与步骤402所述的“生成DirectShow Filter通道”并不存在必然的先后顺序,可以根据实际情况进行调整。而且,步骤401或402与下述步骤403之间的间隔时长可以为任意时长,本公开实施例并不对此进行限制。
步骤403,即时通信应用获取并展示实体摄像头采集的实时视频。
用户可以通过即时通信应用实现与其他用户之间的视频通话(如视频会议),例如,即时通信应用可以将实体摄像头作为自身的视频源,即获取实体摄像头采集到的实时视频进行展示,并将该视频通过自身对应的服务端传输至对端用户所使用的终端用于展示。其中,上述实体摄像头可以为终端的前置摄像头,以便终端采集用户自身的正面(如面部)图像作为视频画面。当然,也可以为后置摄像头,本公开实施例并不对此进行限制。
步骤404,即时通信应用检测到用户实施的美颜触发操作。
即时通信应用可以为用户展示视频美颜功能控件,如在实时视频对应的视频展示界面中显示“美颜”或“开启美颜”等按钮。用户可以通过触发上述按钮启动即时通信应用提供的美颜功能。即时通信应用的核心功能通常在于数据通讯,因此为保证自身的功能实现效率,该应用可以将视频美颜功能交由视频美颜应用完成,即即时通信应用此时需要获取经过美颜处理的视频的视频流,亦即即时通信应用存在针对视频美颜应用的视频流获取需求。
步骤405,即时通信应用向终端发送应用唤起指令。
在检测到用户实施的上述触发操作的情况下,即时通信应用可以生成美颜功能对应的应用唤起指令,并将该指令发送至终端。
通常情况下,终端中运行的任一应用程序都会被注册至其操作系统的系统注册表中,从而即时通信应用可以预先从终端处获取已注册的视频美颜应用的应用标识、视频美颜应用能够完整的事务(如文字编辑事务、图像编辑事务、视频处理事务、音乐剪辑事务等)的事务标识等信息。相应地,在检测上述触发操作的情况下,即时通信应用可以根据该操作直接确定视频美颜应用的应用标识,并将该表示包含在上述应用唤起指令中。或者,即时通信应用也可以根据上述按钮功能确定其对应的视频美颜事务,并将该事务的事务标识包含在上述应用唤起指令中。
步骤406,终端唤起本地安装的视频美颜应用。
在应用唤起指令包含应用标识的情况下,终端可以直接启动该应用标识对应的视频美颜应用。而在应用唤起指令包含事务标识的情况下,终端可以根据该事务标识确定能够处理相应事务的视频美颜应用,即确定具有视频美颜功能的视频美颜应用,进而启动该应用程序。视频美颜应用与终端之间交互以唤起视频美颜应用的具体过程可以参见相关技术中的记载,此处不再赘述。
当然,在终端本地尚未安装视频美颜应用的情况下,终端可以向用户进一步展示针对视频美颜应用的安装提示信息,以根据用户操作安装或拒绝安装视频美颜应用;而在视频美颜应用已经启动的情况下,终端可以直接向即时通信应用返回启动成功的响应消息。
步骤407,终端向即时通信应用发起摄像头切换指令。
步骤408,即时通信应用将自身的视频源切换虚拟摄像头。
在确定上述视频美颜应用被唤起的情况下,终端可以向即时通信应用发起针对视频美颜应用对应的虚拟摄像头的摄像头切换指令。相应地,即时通信应用可以响应于该指令将自身的视频源切换为视频美颜应用对应的虚拟摄像头,即前述步骤401中注册的虚拟摄像头。当然,也可以不执行步骤407-408,而由即时通信应用在检测上述美颜触发操作的情况下自动切换至上述虚拟摄像头,不在赘述。
步骤409,视频美颜应用获取实体摄像头采集的实时视频。
可以理解的是,一个实体摄像头同一时刻通常仅能够被一个应用程序所调用,即同一时刻仅能够作为一个应用程序的视频源。因为步骤408中即时通信应用已经将自身的视频源由实体摄像头切换为虚拟摄像头,即解除了自身对实体摄像头的占用,所以此时视频美颜应用可以将自身的视频源设置为实体摄像头,以将实体摄像头采集到的实时视频作为待处理的第一视频。
步骤410,视频美颜应用对实时视频进行美颜处理。
此时,视频美颜应用可以通过自身所具有的视频美颜功能,对获取到的实时视频进行美颜处理。如可以对视频中的目标人像进行美白磨皮、大眼瘦脸等处理,或者为视频添加虚拟贴纸等特效,再或者对视频画面进行旋转、尺寸调整等处理,不再赘述。当然,可以由用户手动进行上述美颜处理,也可以由视频美颜应用按照默认设置或者用户预先进行的自定义设置自动进行上述美颜处理,本公开实施例并不对此进行限制。
步骤411,视频美颜应用将美颜处理后的第二视频发送至终端。
步骤412,终端通过DirectShow Filter通道将视频流发送至即时通信应用。
对于美颜处理后的视频,视频美颜应用可以将其视频流发送至终端,以由终端调用步骤402中预先生成的DirectShow Filter通道发送至即时通信应用。具体的,视频美颜应用可以通过预先注册的前述接口调用通道调用上述DirectShow Filter通道,即通过该通道调用并执行封装有DirectShow Filter通道的上述dll文件,并利用该通道将第二视频的视频流发送至上述即时通信应用。
对于视频美颜应用来说,其可以将输出的视频流直接发送至上述DirectShowFilter通道;对于即时通信应用来说,其在将视频源切换为上述虚拟摄像头之后,可以直接接收该虚拟摄像头对应的上述DirectShow Filter通道发送来的数据,即上述视频美颜应用发送的视频流。可见,上述DirectShow Filter通道相当于在视频美颜应用和即时通信应用之间建立的跨应用数据传输通道:视频美颜应用负责将处理后的视频流发送至该通道,而即时通信应用负责通过该通道接收视频流。其中,上述过程传输的视频流,除了包括各张视频图像帧的图像数据(即图像帧中各个像素点的颜色值,如RGB值、灰度值等),还可以包括视频尺寸信息(即图像帧长、宽等)和时间信息(如各张视频帧在第二视频的时间轴中的时间戳)等信息。
步骤413,即时通信应用接收视频流并展示美颜处理后的视频。
即时通信应用可以根据获取到的视频流生成第二视频,并在自身的应用程序界面中展示该第二视频,即展示美颜处理后的视频的视频画面。另外,即时通信应用也可以将上述第二视频的视频画面通过自身对应的服务端发送至视频通话的对端用户使用的终端,以便该终端向对端用户展示经过视频美颜应用美颜后的视频画面。
综上,根据本公开实施方式的视频传输方法,终端可以基于终端自身提供的系统级原生工具生成数据传输组件,进而利用该数据传输组件将视频美颜应用处理后的视频流传输至即时通信应用,从而实现视频美颜应用和即时通信应用之间的跨应用数据传输。显然,相对于在视频美颜应用和即时通信应用之间建立TCP连接的相关技术,基于终端自身提供的系统级原生工具生成的数据传输组件在运行过程所需的终端资源较少,因此视频流的传输效率较高;而正因为所需终端资源较少,所以即便在终端资源占用率较高的情况下,即时通信应用也难以出现画面卡顿等问题,应用程序的运行稳定性较高。
示例性介质
在介绍了本公开示例性实施方式的方法之后,接下来,参考图5对本公开示例性实施方式的介质进行说明。
本示例性实施方式中,可以通过程序产品实现上述方法,如可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,该存储器可以在设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读介质50可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质50可以是可读信号介质或者可读介质。可读介质50例如可以为但不限于电、磁、光、电磁、红外线或半导体的系统、装置或器件,或者任意以上的组合。可读介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质50上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RE等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
示例性装置
在介绍了本公开示例性实施方式的介质之后,接下来,参考图6对本公开示例性实施方式的装置进行说明。关于下述装置,其中各个功能模块执行操作的具体方式以及执行操作后所实现的具体功能,均已在视频传输方法的前述各实施例中进行了详细描述,此处不再详细阐述说明。
图6示意性地示出了根据本公开实施方式的一种视频传输装置的框图。该视频传输装置应用于运行有原生应用和Web应用的终端,所述装置包括:
获取模块601,用于获取所述原生应用对第一视频进行处理后输出的第二视频的视频流;
发送模块602,用于调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。
可选地,还包括:
唤起模块603,用于响应于所述Web应用发出的应用唤起指令,唤起所述原生应用。
可选地,还包括:
指示模块604,用于指示所述Web应用通过虚拟摄像头接收所述视频流,所述虚拟摄像头由所述原生应用驱动运行。
可选地,所述终端的操作系统为Windows操作系统,所述系统级原生工具为DirectShow工具包,所述装置还包括组件生成模块605,用于:
响应于组件生成指令,利用所述DirectShow工具包注册DirectShow Filter通道;
将所述DirectShow Filter通道注册至Windows操作系统的系统注册表,以作为所述数据传输组件。
可选地,还包括接口生成模块606,用于为所述DirectShow Filter通道生成通道调用接口;
所述发送模块602还用于:通过所述通道调用接口调用所述DirectShow Filter通道,并利用该通道将所述视频流发送至所述Web应用。
可选地,所述第一视频包括下述之一:
所述终端本地存储的已录制视频;
所述终端的硬件摄像头采集到的实时视频;
所述终端中运行的除所述原生应用和所述Web应用之外的其他应用提供的视频。
示例性计算设备
在介绍了本公开示例性实施方式的方法、介质和装置之后,接下来,参考图7对本公开示例性实施方式的计算设备进行说明。
图7显示的计算设备700仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算设备700以通用计算设备的形式表现。计算设备700的组件可以包括但不限于:上述至少一个处理单元701、上述至少一个存储单元702,连接不同系统组件(包括处理单元701和存储单元702)的总线703。
总线703包括数据总线、控制总线和地址总线。
存储单元702可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)7021和/或高速缓存存储器7022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)7023。
存储单元702还可以包括具有一组(至少一个)程序模块7024的程序/实用工具7025,这样的程序模块7024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备700也可以与一个或多个外部设备704(例如键盘、指向设备等)通信。
这种通信可以通过输入/输出(I/O)接口705进行。并且,计算设备700还可以通过网络适配器706与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器706通过总线703与计算设备700的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了视频传输装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本公开的精神和原理,但是应该理解,本公开并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种视频传输方法,应用于运行有原生应用和Web应用的终端,所述方法包括:
获取所述原生应用对第一视频进行处理后输出的第二视频的视频流;
调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。
2.根据权利要求1所述的方法,还包括:
响应于所述Web应用发出的应用唤起指令,唤起所述原生应用。
3.根据权利要求2所述的方法,还包括:
指示所述Web应用通过虚拟摄像头接收所述视频流,所述虚拟摄像头由所述原生应用驱动运行。
4.根据权利要求1所述的方法,所述终端的操作系统为Windows操作系统,所述系统级原生工具为DirectShow工具包,基于所述终端提供的系统级原生工具生成所述数据传输组件,包括:
响应于组件生成指令,利用所述DirectShow工具包注册DirectShow Filter通道;
将所述DirectShow Filter通道注册至Windows操作系统的系统注册表,以作为所述数据传输组件。
5.根据权利要求4所述的方法,
还包括:为所述DirectShow Filter通道生成通道调用接口;
所述调用数据传输组件将所述视频流发送至所述Web应用,包括:通过所述通道调用接口调用所述DirectShow Filter通道,并利用该通道将所述视频流发送至所述Web应用。
6.根据权利要求1所述的方法,所述第一视频包括下述之一:
所述终端本地存储的已录制视频;
所述终端的硬件摄像头采集到的实时视频;
所述终端中运行的除所述原生应用和所述Web应用之外的其他应用提供的视频。
7.根据权利要求1所述的方法,所述原生应用具有视频美颜功能和/或视频剪辑功能。
8.一种视频传输装置,应用于运行有原生应用和Web应用的终端,所述装置包括:
获取模块,用于获取所述原生应用对第一视频进行处理后输出的第二视频的视频流;
发送模块,用于调用数据传输组件将所述视频流发送至所述Web应用,以由所述Web应用展示所述第二视频,所述数据传输组件被基于所述终端提供的系统级原生工具所生成。
9.一种介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述的方法。
10.一种计算设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7中任一项所述的方法。
CN202111182595.3A 2021-10-11 2021-10-11 视频传输方法、装置、介质和计算设备 Pending CN113949684A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111182595.3A CN113949684A (zh) 2021-10-11 2021-10-11 视频传输方法、装置、介质和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111182595.3A CN113949684A (zh) 2021-10-11 2021-10-11 视频传输方法、装置、介质和计算设备

Publications (1)

Publication Number Publication Date
CN113949684A true CN113949684A (zh) 2022-01-18

Family

ID=79329675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111182595.3A Pending CN113949684A (zh) 2021-10-11 2021-10-11 视频传输方法、装置、介质和计算设备

Country Status (1)

Country Link
CN (1) CN113949684A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100020172A1 (en) * 2008-07-25 2010-01-28 International Business Machines Corporation Performing real-time analytics using a network processing solution able to directly ingest ip camera video streams
CN104102537A (zh) * 2013-04-07 2014-10-15 华为技术有限公司 一种应用调用方法及用户终端
CN110430473A (zh) * 2019-07-18 2019-11-08 东软集团股份有限公司 视频播放的方法、装置、存储介质及电子设备
CN110460873A (zh) * 2018-05-08 2019-11-15 优酷网络技术(北京)有限公司 点播视频的生成方法及装置
CN110798700A (zh) * 2019-11-07 2020-02-14 网易(杭州)网络有限公司 视频处理方法、视频处理装置、存储介质与电子设备
CN112804229A (zh) * 2015-08-27 2021-05-14 谷歌有限责任公司 跨应用内容播放器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100020172A1 (en) * 2008-07-25 2010-01-28 International Business Machines Corporation Performing real-time analytics using a network processing solution able to directly ingest ip camera video streams
CN104102537A (zh) * 2013-04-07 2014-10-15 华为技术有限公司 一种应用调用方法及用户终端
CN112804229A (zh) * 2015-08-27 2021-05-14 谷歌有限责任公司 跨应用内容播放器
CN110460873A (zh) * 2018-05-08 2019-11-15 优酷网络技术(北京)有限公司 点播视频的生成方法及装置
CN110430473A (zh) * 2019-07-18 2019-11-08 东软集团股份有限公司 视频播放的方法、装置、存储介质及电子设备
CN110798700A (zh) * 2019-11-07 2020-02-14 网易(杭州)网络有限公司 视频处理方法、视频处理装置、存储介质与电子设备

Similar Documents

Publication Publication Date Title
CN111433743B (zh) 一种app远程控制方法及相关设备
CN113784049B (zh) 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质
CN113542902B (zh) 一种视频处理方法、装置、电子设备和存储介质
CN106991018B (zh) 界面换肤的方法及装置
CN107509051A (zh) 远程控制方法、装置、终端及计算机可读存储介质
US20160344819A1 (en) Remote document signing
CN112055072A (zh) 云端音频输入方法、装置、云系统、电子设备与存储介质
US20240143649A1 (en) Multimedia information processing method, apparatus, electronic device, and medium
CN113900754A (zh) 共享桌面方法、装置、计算机设备和存储介质
CN113505302A (zh) 支持动态获取埋点数据的方法、装置、系统及电子设备
CN113965809A (zh) 一种基于单终端多平台同时互动直播的方法和装置
CN113589982A (zh) 一种资源播放方法、装置、电子设备和存储介质
CN110275787B (zh) 在线平台数据传输方法、装置、介质及电子设备
CN110266701B (zh) 智能设备数据传输方法、装置、介质及电子设备
CN110046000B (zh) 小程序运行方法和装置
CN110750961A (zh) 一种文件格式转换方法、装置、计算机设备和存储介质
CN112925788A (zh) 一种数据集管理方法及系统、装置、电子设备和存储介质
CN110324432B (zh) 应用于终端的数据处理方法、装置、介质和计算设备
CN113949684A (zh) 视频传输方法、装置、介质和计算设备
CN108289056B (zh) 分享动态图表的方法、装置以及计算设备
CN113656196B (zh) 一种Linux兼容Android的应用间传送文件方法及装置
CN115576458A (zh) 一种应用窗口的显示方法、装置、设备及介质
CN114265714A (zh) 一种基于云手机的驱动控制方法及装置、存储介质
CN112181676B (zh) 共享录音数据的方法、装置、终端设备及可读存储介质
CN113398581B (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