CN114666514B - 数据处理方法、装置、电子设备和存储介质 - Google Patents

数据处理方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN114666514B
CN114666514B CN202210272012.4A CN202210272012A CN114666514B CN 114666514 B CN114666514 B CN 114666514B CN 202210272012 A CN202210272012 A CN 202210272012A CN 114666514 B CN114666514 B CN 114666514B
Authority
CN
China
Prior art keywords
video
audio
clipped
frames
decoding
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
CN202210272012.4A
Other languages
English (en)
Other versions
CN114666514A (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.)
Gaoding Xiamen Technology Co Ltd
Original Assignee
Gaoding Xiamen 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 Gaoding Xiamen Technology Co Ltd filed Critical Gaoding Xiamen Technology Co Ltd
Priority to CN202210272012.4A priority Critical patent/CN114666514B/zh
Publication of CN114666514A publication Critical patent/CN114666514A/zh
Application granted granted Critical
Publication of CN114666514B publication Critical patent/CN114666514B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • 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
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • 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/439Processing of audio elementary streams
    • 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/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8193Monomedia components thereof involving executable data, e.g. software dedicated tools, e.g. video decoder software or IPMP tool

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

本公开的实施例提供一种数据处理方法、装置、电子设备和存储介质,在本公开中,在对视频进行剪辑时,通过视频剪辑程序启动web端的Worker进程,使用的是web端自身的线程对视频进行剪辑,并且使用的是web端自身的主线程对剪辑的视频进行播放,因此本公开能够适用于多种浏览器,本公开具有较高的兼容性,从而不需要为不同的Web端开发不同的视频剪辑软件,进而有利于提高视频剪辑软件的代码复用率。

Description

数据处理方法、装置、电子设备和存储介质
技术领域
本公开的实施例涉及计算机技术领域,具体地,涉及一种数据处理方法、装置、电子设备和存储介质。
背景技术
现在市面上有很多支持视频剪辑的软件,这种软件的应用场景统称为非线性编辑场景,即非编场景。目前这类型的软件在PC、移动端比较多,在Web端相对较少一些。对于应用在Web端的视频剪辑软件,由于浏览器兼容性的问题,不同的Web端需要开发不同的视频剪辑软件,以便适配对应的浏览器,从而导致视频剪辑软件的代码复用率低。
发明内容
本文中描述的实施例提供了一种数据处理方法、装置、电子设备和存储介质,以提高视频剪辑软件的代码复用率。
根据本公开的第一方面,提供了一种数据处理方法,应用视频剪辑程序中,所述视频剪辑程序运行在C++语言环境中,所述方法包括:
当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器;
在接收到所述用户对所述视频的剪辑指令后,通过所述状态管理器调用为所述web端配置的预览管理器,以及确定所述剪辑指令将要剪辑的待剪辑视频;
通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程;
通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧;
将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放。
在本公开的一些实施例中,所述当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器,包括:
当用户将目标视频加载至所述视频剪辑程序中后,启动所述视频剪辑程序中的引擎层;
通过所述引擎层判断所述视频剪辑程序当前是否运行在web端;
在确定出所述视频剪辑程序当前运行在web端后,调用所述视频剪辑程序中的为web端配置的状态管理器。
在本公开的一些实施例中,所述通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程,包括:
通过所述预览管理器调用所述web端中运行在JS语言环境下的所述第一Worker进程和所述第二Worker进程。
在本公开的一些实施例中,所述通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧,包括:
通过所述第一Worker进程调用所述视频剪辑程序中运行在C++语言环境下的视频解码器,以通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧;以及通过所述第二Worker进程调用所述视频剪辑程序中运行在C++语言环境下的音频解码器,以通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧。
在本公开的一些实施例中,所述通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧,以及通过通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧,包括:
通过所述视频解码器和所述音频解码器对所述待剪辑视频中具有相同时间属性的视频帧和音频帧进行同步解码,得到数据组,所述数据组中包括具有相同时间属性的所述音频帧和所述视频帧。
在本公开的一些实施例中,当用户将所述目标视频加载至所述视频剪辑程序中后,调用web端中运行在JS语言环境下的消息管理器;所述将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放,包括:
在得到一组数据后,通过所述消息管理器将所述数据组包括视频帧和音频帧分别封装成两条消息;
通过所述消息管理器将所述两条消息发送给所述主线程,以通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放。
在本公开的一些实施例中,所述通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放,包括:
通过所述主线程对所述两条消息进行解析,将解析结果存储至web端的缓存控制器;
响应用于进行播放的指令,对所述缓存控制器中的解析结果按照时间属性进行同步播放。
根据本公开的第二方面,提供了一种数据处理装置,所述装置运行有视频剪辑程序,所述视频剪辑程序运行在C++语言环境中,所述装置包括:
调用单元,用于当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器;以及,用于在接收到所述用户对所述视频的剪辑指令后,通过所述状态管理器调用为所述web端配置的预览管理器,以及确定所述剪辑指令将要剪辑的待剪辑视频;
启动单元,用于通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程;
解码单元,用于通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧;
播放单元,用于将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放。
在本公开的一些实施例中,所述调用单元用于当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器时,包括:
当用户将目标视频加载至所述视频剪辑程序中后,启动所述视频剪辑程序中的引擎层;
通过所述引擎层判断所述视频剪辑程序当前是否运行在web端;
在确定出所述视频剪辑程序当前运行在web端后,调用所述视频剪辑程序中的为web端配置的状态管理器。
在本公开的一些实施例中,所述启动单元用于通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程时,包括:
通过所述预览管理器调用所述web端中运行在JS语言环境下的所述第一Worker进程和所述第二Worker进程。
在本公开的一些实施例中,所述解码单元用于通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧时,包括:
通过所述第一Worker进程调用所述视频剪辑程序中运行在C++语言环境下的视频解码器,以通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧;以及通过所述第二Worker进程调用所述视频剪辑程序中运行在C++语言环境下的音频解码器,以通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧。
在本公开的一些实施例中,所述解码单元用于通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧,以及通过通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧时,包括:
通过所述视频解码器和所述音频解码器对所述待剪辑视频中具有相同时间属性的视频帧和音频帧进行同步解码,得到数据组,所述数据组中包括具有相同时间属性的所述音频帧和所述视频帧。
在本公开的一些实施例中,所述调用单元,还用于当用户将所述目标视频加载至所述视频剪辑程序中后,调用web端中运行在JS语言环境下的消息管理器;所述播放单元用于将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放时,包括:
在得到一组数据后,通过所述消息管理器将所述数据组包括视频帧和音频帧分别封装成两条消息;
通过所述消息管理器将所述两条消息发送给所述主线程,以通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放。
在本公开的一些实施例中,所述播放单元用于通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放时,包括:
通过所述主线程对所述两条消息进行解析,将解析结果存储至web端的缓存控制器;
响应用于进行播放的指令,对所述缓存控制器中的解析结果按照时间属性进行同步播放。
根据本公开的第三方面,提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面所述的方法步骤。
根据本公开的第三方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面所述的方法步骤。
在本公开中,在对视频进行剪辑时,通过视频剪辑程序启动web端的Worker进程,使用的是web端自身的线程对视频进行剪辑,并且使用的是web端自身的主线程对剪辑的视频进行播放,因此本公开能够适用于多种浏览器,本公开具有较高的兼容性,从而不需要为不同的Web端开发不同的视频剪辑软件,进而有利于提高视频剪辑软件的代码复用率。
附图说明
为了更清楚地说明本公开的实施例的技术方案,下面将对实施例的附图进行简要说明,应当知道,以下描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制,其中:
图1为本公开提供一种数据处理方法的流程示意图;
图2为本公开提供的另一种数据处理方法的流程示意图;
图3为本公开提供的另一种数据处理方法的流程示意图;
图4为本公开提供的另一种数据处理方法的流程示意图;
图5为本公开提供的一种数据处理装置的结构示意图;
图6为本公开提供的一种电子设备的结构示意图。
具体实施方式
为了使本公开的实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开的实施例的技术方案进行清楚、完整的描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域技术人员在无需创造性劳动的前提下所获得的所有其它实施例,也都属于本公开保护的范围。
除非另外定义,否则在此使用的所有术语(包括技术和科学术语)具有与本公开主题所属领域的技术人员所通常理解的相同含义。进一步将理解的是,诸如在通常使用的词典中定义的那些的术语应解释为具有与说明书上下文和相关技术中它们的含义一致的含义,并且将不以理想化或过于正式的形式来解释,除非在此另外明确定义。
图1为本公开提供一种数据处理方法的流程示意图,该方法应用视频剪辑程序中,所述视频剪辑程序运行在C++语言环境中,如图1所示,该方法包括以下步骤:
步骤101、当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器。
步骤102、在接收到所述用户对所述视频的剪辑指令后,通过所述状态管理器调用为所述web端配置的预览管理器,以及确定所述剪辑指令将要剪辑的待剪辑视频。
步骤103、通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程。
步骤104、通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧。
步骤105、将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放。
具体的,当视频剪辑程序使用C++语言进行编写时,视频剪辑程序可以通过emsdk提供的C++调用JS代码的机制,绕到Web端启动多个Worker进程来调用C++的逻辑代码,并且由于Web端是单线程的处理模型,因此本公开启动的是多个Worker进程从而可以进行音频和视频的并发处理,基于上述技术思想,当用户需要使用视频剪辑程序时,需要调用视频剪辑程序中的为web端配置的状态管理器,以便在接收到用户对视频的剪辑指令后可以启动为web端配置的预览管理器,然后预览管理器可以在web端启动多个Worker进程以便对待剪辑视频进行音频解码和视频解码,由于不同的音频帧和视频帧都具有时间属性,并且在待剪辑视频中每一帧音频都对应一帧视频,因此在播放时需要将具有相同时间属性的视频帧和音频帧进行同步播放。
在本公开中,在对视频进行剪辑时,通过视频剪辑程序启动web端的Worker进程,使用的是web端自身的线程对视频进行剪辑,并且使用的是web端自身的主线程对剪辑的视频进行播放,因此本公开能够适用于多种浏览器,本公开具有较高的兼容性,从而不需要为不同的Web端开发不同的视频剪辑软件,进而有利于提高视频剪辑软件的代码复用率。
在一个可行的实施方案中,图2为本公开提供的另一种数据处理方法的流程示意图,如图2所示,在执行步骤101时,可以通过以下步骤实现:
步骤201、当用户将目标视频加载至所述视频剪辑程序中后,启动所述视频剪辑程序中的引擎层。
步骤202、通过所述引擎层判断所述视频剪辑程序当前是否运行在web端。
步骤203、在确定出所述视频剪辑程序当前运行在web端后,调用所述视频剪辑程序中的为web端配置的状态管理器。
具体的,为了适应多种运行环境,如:PC端、移动端和web端,需要在视频剪辑程序中适配不同的功能单元,为了能够调用到对应的功能单元,在执行的过程中需要判断当前的运行环境,在确定出运行在web端后,启动为web端配置的状态管理器,以便使用为web端配置的处理方式对视频进行剪辑,通过上述方式可以使视频剪辑程序适用于多种运行环境下,从而提高了软件代码的复用率。
在一个可行的实施方案中,在执行步骤103时,可以通过所述预览管理器调用所述web端中运行在JS语言环境下的所述第一Worker进程和所述第二Worker进程。
具体的,由于web端一般均运行在JS语言环境下,因此调用web端中运行在JS语言环境下的Worker进程可以复用web端的一些功能,从而避免为不同的web端配置不同的功能单元,并且只需要在视频剪辑软件设置一种调用功能,就可以在不同的web段中进行视频剪辑,从而有利于提高软件代码的复用率。
在一个可行的实施方案中,在执行步骤104时,可以通过所述第一Worker进程调用所述视频剪辑程序中运行在C++语言环境下的视频解码器,以通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧;以及通过所述第二Worker进程调用所述视频剪辑程序中运行在C++语言环境下的音频解码器,以通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧。
具体的,在对视频和音频进行解码时,为了提高代码的复用率,以及进行并发处理,分别为视频和音频掉用一个运行在web端的Worker进程,然后通过该进程调用视频剪辑程序中运行在C++语言环境下的解码器,以便对视频和音频进行解码,得到视频帧和音频帧,在上述方法中,通过web端的自有功能和为视频剪辑程序配置的功能共同实现对音频和视频的解码,从而可以减少为视频剪辑程序配置功能,并且可以将同一种视频剪辑程序运行在不同的web端,进而有利于提高软件代码的复用率。
在一个可行的实施方案中,在通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧,以及通过通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧时,可以通过所述视频解码器和所述音频解码器对所述待剪辑视频中具有相同时间属性的视频帧和音频帧进行同步解码,得到数据组,所述数据组中包括具有相同时间属性的所述音频帧和所述视频帧。
具体的,为了使播放的视频的画面和声音是与原片相匹配的,需要对一个时间点上的视频帧和音频帧进行同时解码,并且在对视频和音频进行解码是分别执行在不同的Worker进程中,从而可以实现并发处理,有利于提高数据处理效率。
在一个可行的实施方案中,当用户将所述目标视频加载至所述视频剪辑程序中后,还需要调用web端中运行在JS语言环境下的消息管理器,图3为本公开提供的另一种数据处理方法的流程示意图,如图3所示,在将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放时,可以通过以下步骤实现:
步骤301、在得到一组数据后,通过所述消息管理器将所述数据组包括视频帧和音频帧分别封装成两条消息。
步骤302、通过所述消息管理器将所述两条消息发送给所述主线程,以通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放。
具体的,在用户将目标视频加载至视频剪辑程序中后,引擎层还需要调用web端中运行在JS语言环境下消息管理器,通过该消息管理器对解码器得到的具有相同时间属性的音频帧和视频帧进行封装,分别得到音频消息和视频消息,然后该消息管理器将上述两条消息发送给web端的主线程,以便主线程对得到两条消息进行解析,从而进行后续处理,其中,消息管理器对于每组数据帧进行重复处理,例如:在一个视频中包括三个视频帧和三个音频帧,并且,视频帧1对应音频帧1,视频帧2对应音频帧2,视频帧3对应音频帧3,消息管理器需要将视频帧1对应音频帧1作为一个数据组,并将视频帧1对应音频帧1封装为视频消息1和音频消息1,然后将该组消息发送给web端的主线程,然后消息管理器再将视频帧2对应音频帧2作为一个数据组,并将视频帧2对应音频帧2封装为视频消息2和音频消息2,然后将该组消息发送给web端的主线程,然后消息管理器再将视频帧3对应音频帧3作为一个数据组,并将视频帧3对应音频帧3封装为视频消息3和音频消息3,然后将该组消息发送给web端的主线程,以此类推,直至处理完所有的视频数据,因为,如果需要进行数据通信的话需要采用进程间通信的机制,而共享内存的方式会导致浏览器兼容性问题,因此本公开采用的是调用一个web端中的事件消息管理模块,所有的消息和事件都通过该模块转发给指定进程,从而避免了浏览器兼容性问题。
在一个可行的实施方案中,图4为本公开提供的另一种数据处理方法的流程示意图,如图4所示,在执行通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放的步骤时,可以通过以下步骤实现:
步骤401、通过所述主线程对所述两条消息进行解析,将解析结果存储至web端的缓存控制器。
步骤402、响应用于进行播放的指令,对所述缓存控制器中的解析结果按照时间属性进行同步播放。
图5为本公开提供的一种数据处理装置的结构示意图,所述装置运行有视频剪辑程序,所述视频剪辑程序运行在C++语言环境中,如图5所示,所述装置包括:
调用单元501,用于当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器;以及,用于在接收到所述用户对所述视频的剪辑指令后,通过所述状态管理器调用为所述web端配置的预览管理器,以及确定所述剪辑指令将要剪辑的待剪辑视频;
启动单元502,用于通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程;
解码单元503,用于通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧;
播放单元504,用于将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放。
在一个可行的实施方案中,所述调用单元用于当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器时,包括:
当用户将目标视频加载至所述视频剪辑程序中后,启动所述视频剪辑程序中的引擎层;
通过所述引擎层判断所述视频剪辑程序当前是否运行在web端;
在确定出所述视频剪辑程序当前运行在web端后,调用所述视频剪辑程序中的为web端配置的状态管理器。
在一个可行的实施方案中,所述启动单元用于通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程时,包括:
通过所述预览管理器调用所述web端中运行在JS语言环境下的所述第一Worker进程和所述第二Worker进程。
在一个可行的实施方案中,所述解码单元用于通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧时,包括:
通过所述第一Worker进程调用所述视频剪辑程序中运行在C++语言环境下的视频解码器,以通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧;以及通过所述第二Worker进程调用所述视频剪辑程序中运行在C++语言环境下的音频解码器,以通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧。
在一个可行的实施方案中,所述解码单元用于通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧,以及通过通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧时,包括:
通过所述视频解码器和所述音频解码器对所述待剪辑视频中具有相同时间属性的视频帧和音频帧进行同步解码,得到数据组,所述数据组中包括具有相同时间属性的所述音频帧和所述视频帧。
在一个可行的实施方案中,所述调用单元,还用于当用户将所述目标视频加载至所述视频剪辑程序中后,调用web端中运行在JS语言环境下的消息管理器;所述播放单元用于将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放时,包括:
在得到一组数据后,通过所述消息管理器将所述数据组包括视频帧和音频帧分别封装成两条消息;
通过所述消息管理器将所述两条消息发送给所述主线程,以通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放。
在一个可行的实施方案中,所述播放单元用于通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放时,包括:
通过所述主线程对所述两条消息进行解析,将解析结果存储至web端的缓存控制器;
响应用于进行播放的指令,对所述缓存控制器中的解析结果按照时间属性进行同步播放。
在本公开中,在对视频进行剪辑时,通过视频剪辑程序启动web端的Worker进程,使用的是web端自身的线程对视频进行剪辑,并且使用的是web端自身的主线程对剪辑的视频进行播放,因此本公开能够适用于多种浏览器,本公开具有较高的兼容性,从而不需要为不同的Web端开发不同的视频剪辑软件,进而有利于提高视频剪辑软件的代码复用率。
基于相同的技术构思,图6为本公开提供的一种电子设备的结构示意图,包括:处理器601、存储介质602和总线603,所述存储介质602存储有所述处理器601可执行的机器可读指令,当电子设备运行上述的数据处理方法时,所述处理器601与所述存储介质602之间通过总线603通信,所述处理器601执行所述机器可读指令,以执行上述提到的数据处理方法。
处理器601的具体处理流程可以参照图1至图4中所述的数据处理方法中的步骤,这里不再赘述。
基于相同的技术构思,本公开实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述数据处理方法的步骤。
基于相同的技术构思,本公开实施例还提供了一种计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行上述数据处理方法的步骤,具体实现可参见上述方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,应用视频剪辑程序中,所述视频剪辑程序运行在C++语言环境中,所述方法包括:
当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器;
在接收到所述用户对所述视频的剪辑指令后,通过所述状态管理器调用为所述web端配置的预览管理器,以及确定所述剪辑指令将要剪辑的待剪辑视频;
通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程;
通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧;
将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放。
2.如权利要求1所述的方法,其特征在于,所述当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器,包括:
当用户将目标视频加载至所述视频剪辑程序中后,启动所述视频剪辑程序中的引擎层;
通过所述引擎层判断所述视频剪辑程序当前是否运行在web端;
在确定出所述视频剪辑程序当前运行在web端后,调用所述视频剪辑程序中的为web端配置的状态管理器。
3.如权利要求1所述的方法,其特征在于,所述通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程,包括:
通过所述预览管理器调用所述web端中运行在JS语言环境下的所述第一Worker进程和所述第二Worker进程。
4.如权利要求1所述的方法,其特征在于,所述通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧,包括:
通过所述第一Worker进程调用所述视频剪辑程序中运行在C++语言环境下的视频解码器,以通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧;以及通过所述第二Worker进程调用所述视频剪辑程序中运行在C++语言环境下的音频解码器,以通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧。
5.如权利要求4所述的方法,其特征在于,所述通过所述视频解码器对所述待剪辑视频中的视频进行解码,得到所述视频帧,以及通过通过所述音频解码器对所述待剪辑视频中的音频进行解码,得到所述音频帧,包括:
通过所述视频解码器和所述音频解码器对所述待剪辑视频中具有相同时间属性的视频帧和音频帧进行同步解码,得到数据组,所述数据组中包括具有相同时间属性的所述音频帧和所述视频帧。
6.如权利要求5所述的方法,其特征在于,当用户将所述目标视频加载至所述视频剪辑程序中后,调用web端中运行在JS语言环境下的消息管理器;所述将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放,包括:
在得到一组数据后,通过所述消息管理器将所述数据组包括视频帧和音频帧分别封装成两条消息;
通过所述消息管理器将所述两条消息发送给所述主线程,以通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放。
7.如权利要求6所述的方法,其特征在于,所述通过所述主线程对所述两条消息进行解析后将具有相同时间属性的视频帧和音频帧进行同步播放,包括:
通过所述主线程对所述两条消息进行解析,将解析结果存储至web端的缓存控制器;
响应用于进行播放的指令,对所述缓存控制器中的解析结果按照时间属性进行同步播放。
8.一种数据处理装置,其特征在于,所述装置运行有视频剪辑程序,所述视频剪辑程序运行在C++语言环境中,所述装置包括:
调用单元,用于当用户将目标视频加载至所述视频剪辑程序中后,调用所述视频剪辑程序中的为web端配置的状态管理器;以及,用于在接收到所述用户对所述视频的剪辑指令后,通过所述状态管理器调用为所述web端配置的预览管理器,以及确定所述剪辑指令将要剪辑的待剪辑视频;
启动单元,用于通过所述预览管理器在所述web端启动用于进行视频解码的第一Worker进程和用于进行音频解码的第二Worker进程;
解码单元,用于通过所述第一Worker进程对所述待剪辑视频中的视频进行解码,得到所述待剪辑视频对应的视频帧,以及通过所述第二Worker进程对所述待剪辑视频中的音频进行解码,得到所述待剪辑视频对应的音频帧;
播放单元,用于将所述视频帧和所述音频帧发送给web端的主线程,以通过所述主线程将具有相同时间属性的视频帧和音频帧进行同步播放。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法步骤。
CN202210272012.4A 2022-03-18 2022-03-18 数据处理方法、装置、电子设备和存储介质 Active CN114666514B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210272012.4A CN114666514B (zh) 2022-03-18 2022-03-18 数据处理方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210272012.4A CN114666514B (zh) 2022-03-18 2022-03-18 数据处理方法、装置、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN114666514A CN114666514A (zh) 2022-06-24
CN114666514B true CN114666514B (zh) 2024-02-02

Family

ID=82030131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210272012.4A Active CN114666514B (zh) 2022-03-18 2022-03-18 数据处理方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN114666514B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001077897A2 (en) * 1999-09-27 2001-10-18 Torveo Technologies System and method using a web catalog with dynamic multimedia data using java
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN112929733A (zh) * 2021-01-18 2021-06-08 稿定(厦门)科技有限公司 视频预览播放方法及装置
CN113891113A (zh) * 2021-09-29 2022-01-04 阿里巴巴(中国)有限公司 视频剪辑合成方法及电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001077897A2 (en) * 1999-09-27 2001-10-18 Torveo Technologies System and method using a web catalog with dynamic multimedia data using java
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN112929733A (zh) * 2021-01-18 2021-06-08 稿定(厦门)科技有限公司 视频预览播放方法及装置
CN113891113A (zh) * 2021-09-29 2022-01-04 阿里巴巴(中国)有限公司 视频剪辑合成方法及电子设备

Also Published As

Publication number Publication date
CN114666514A (zh) 2022-06-24

Similar Documents

Publication Publication Date Title
US11490173B2 (en) Switch of audio and video
CN110457143B (zh) 微服务的调用方法及装置
CN104780378A (zh) 一种用于解码视频的方法、装置和播放器
CN104837052A (zh) 播放多媒体数据的方法及装置
US11128879B2 (en) Hybrid decoding
US11722555B2 (en) Application control method and apparatus, electronic device, and storage medium
CN109672902A (zh) 一种视频抽帧方法、装置、电子设备和存储介质
CN113990354B (zh) 基于Linux的音频控制方法、装置、设备和存储介质
CN111510755A (zh) 音视频的切换方法、装置、计算机设备及可读存储介质
CN107613302B (zh) 解码方法及装置、存储介质、处理器
US20150296014A1 (en) Picture download method and apparatus
WO2018119611A1 (zh) 多操作系统多媒体数据编解码方法、装置、电子设备和计算机程序产品
CN114666514B (zh) 数据处理方法、装置、电子设备和存储介质
CN117130749A (zh) 一种基于WebGPU提升Web播放器硬件解码能力的方法
US20230106217A1 (en) Web-end video playing method and apparatus, and computer device
CN114339415B (zh) 客户端视频播放方法、装置、电子设备和可读介质
CN108093258B (zh) 码流数据的解码方法、计算机装置及计算机可读存储介质
CN109688468A (zh) 一种开机视频的播放方法、智能终端、系统及存储介质
CN115022725A (zh) 一种视频播放方法和装置
CN115567754A (zh) 视频播放方法、装置、设备及存储介质
CN112527535B (zh) 一种基于原生WebView扩展应用的互动方法及终端
CN110515674B (zh) 应用加载方法以装置
CN114244758A (zh) 安卓平台的网络诊断方法、存储介质、电子设备及系统
US20100076944A1 (en) Multiprocessor systems for processing multimedia data and methods thereof
CN112423099A (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