CN110620959A - 一种数据处理方法、装置、电子设备、系统及存储介质 - Google Patents

一种数据处理方法、装置、电子设备、系统及存储介质 Download PDF

Info

Publication number
CN110620959A
CN110620959A CN201810638973.6A CN201810638973A CN110620959A CN 110620959 A CN110620959 A CN 110620959A CN 201810638973 A CN201810638973 A CN 201810638973A CN 110620959 A CN110620959 A CN 110620959A
Authority
CN
China
Prior art keywords
video data
audio
data
web client
target
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.)
Granted
Application number
CN201810638973.6A
Other languages
English (en)
Other versions
CN110620959B (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201810638973.6A priority Critical patent/CN110620959B/zh
Priority to US17/253,972 priority patent/US11470384B2/en
Priority to EP19821522.0A priority patent/EP3813379B1/en
Priority to PCT/CN2019/091094 priority patent/WO2019242559A1/zh
Publication of CN110620959A publication Critical patent/CN110620959A/zh
Application granted granted Critical
Publication of CN110620959B publication Critical patent/CN110620959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2858Access network architectures
    • H04L12/2861Point-to-multipoint connection from the data network to the subscribers
    • 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing 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 video buffer management, e.g. video decoder buffer or video display buffer
    • 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
    • H04N21/440281Processing 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 by altering the temporal resolution, e.g. by frame skipping
    • 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • 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/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4431OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • 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/816Monomedia components thereof involving special video data, e.g 3D video
    • 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/8173End-user applications, e.g. Web browser, game
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实例提供了一种数据处理方法、装置、电子设备、系统及存储介质,该方法应用于Web客户端,Web客户端与服务端通过WebSocket协议通信连接,该方法包括:Web客户端的主线程从服务端获取目标视频的音视频数据;对所获取的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至web客户端的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和第二音视频数据中的音频数据作为目标视频对应的待播放数据。通过本发明实例提供的技术方案,Web客户端不依赖浏览器中的插件,就可以播放音视频数据。

Description

一种数据处理方法、装置、电子设备、系统及存储介质
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据处理方法、装置、电子设备、系统及存储介质。
背景技术
随着音视频的网络化,用户可以通过浏览器中的Web客户端来观看音视频数据。现有技术中,Web客户端通过调用浏览器中所安装的某些插件,来实现音视频数据的解码和渲染,得到待播放的音视频数据。
举例而言,浏览器中安装有ActiveX/NPAPI插件。在Web客户端接收到服务端发送的音视频数据后,对所接收到的音视频数据解封装;通过该Active X/NPAPI插件调用解码库与渲染库以对解封装后的音视频数据进行解码、渲染,得到待播放音视频数据;进而Web客户端播放所得到的待播放音视频数据。
但是,在某些场景中,浏览器中被禁止安装播放视频数据所需的插件。因此,在不依赖浏览器中的插件的前提下,Web客户端如何播放音视频是一个亟待解决的问题。
发明内容
本发明实施例的目的在于提供一种数据处理方法、装置、电子设备、系统及存储介质,以使得Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。具体技术方案如下:
第一方面,本发明实施例提供了一种数据处理方法,应用于Web客户端,所述Web客户端与服务端通过WebSocket协议通信连接,所述方法包括:
Web客户端中的主线程从服务端获取目标视频的音视频数据;
对所获取到的音视频数据解封装,得到第一音视频数据;
将所述第一音视频数据发送至所述web客户端中的目标子线程,以使得所述目标子线程解码所述第一音视频数据,得到第二音视频数据;
将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
可选的,所述从服务端获取目标视频的音视频数据的步骤,包括:
调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
可选的,所述对所获取到的音视频数据解封装,得到第一音视频数据的步骤,包括:
通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
可选的,所述目标子线程解码所述第一音视频数据,得到第二音视频数据的步骤,包括:
所述目标子线程通过Javascript/WASM解码所述第一音视频数据,得到第二音视频数据。
可选的,所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据的步骤,包括:
所述浏览器的主线程通过WebGL渲染所述第二音视频数据中的视频数据,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
可选的,所述将所述第一音视频数据发送至所述web客户端中的目标子线程的步骤,包括:
当判断出目标音视频数据的数据量大于第一预设数量时,对当前待发送至所述目标子线程的第一音视频数据进行抽帧处理,将经过抽帧处理所得到的第一音视频数据发送至所述目标子线程;否则,将所述第一音视频数据发送至所述web客户端中的目标子线程;
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述方法还包括:
当判断出目标音视频数据的数据量大于第二预设数量时,向所述服务端发送第一指令,以使得所述服务端在接收到所述第一指令后,将所述服务端向所述客户端发送音视频数据的速率调低。
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述将所述第二音视频数据发送至所述web客户端的浏览器的主线程的步骤,包括:
当判断出目标视频数据的数据量大于第三预设数量时,对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,并将经过抽帧处理所得到的视频数据和第二音视频数据中的音频数据发送至所述web客户端的浏览器的主线程;否则,将所述第二音视频数据发送至所述web客户端的浏览器的主线程;其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
可选的,所述方法还包括:
当判断出目标视频数据的数据量大于第四预设数量时,向所述服务端发送第二指令,以使得所述服务端在接收到所述第二指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
第二方面,本发明实施例还提供了一种数据处理装置,应用于Web客户端,所述Web客户端与服务端通过WebSocket协议通信连接,所述装置包括:
用于实现Web客户端中的主线程的处理功能的获取单元、解封装单元、第一处理单元和第二处理单元,以及,用于实现Web客户端中的目标子线程的处理功能的解码单元;
其中,所述获取单元,用于从服务端获取目标视频的音视频数据;
所述解封装单元,用于对所获取到的音视频数据解封装,得到第一音视频数据;
第一处理单元,用于将所述第一音视频数据发送至所述web客户端中的目标子线程;
所述解码单元,用于解码所述第一音视频数据,得到第二音视频数据;
第二处理单元,用于将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
可选的,所述获取单元,具体用于:
调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
可选的,所述解封装单元,具体用于:
通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
可选的,所述解码单元,具体用于:
通过Javascript/WASM解码所述第一音视频数据,得到第二音视频数据。
可选的,所第二处理单元,具体用于:
将所述第二音频数据发送至所述Web客户端的浏览器的主线程,以使得所述浏览器的主线程通过WegGL渲染所述第二音视频数据中的视频数据,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
可选的,所述第一处理单元,具体用于:
当判断出目标音视频数据的数据量大于第一预设数量时,对当前待发送至所述目标子线程的第一音视频数据进行抽帧处理,将经过抽帧处理所得到的第一音视频数据发送至所述目标子线程;否则,将所述第一音视频数据发送至所述web客户端中的目标子线程;其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述装置还包括:
第一发送单元,用于当判断出目标音视频数据的数据量大于第二预设数量时,向所述服务端发送第一指令,以使得所述服务端在接收到所述第一指令后,将所述服务端向所述客户端发送音视频数据的速率调低。
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述第二处理单元,具体用于:
当判断出目标视频数据的数据量大于第三预设数量时,对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,并将经过抽帧处理所得到的视频数据和第二音视频数据中的音频数据发送至所述web客户端的浏览器的主线程;否则,将所述第二音视频数据发送至所述web客户端的浏览器的主线程;其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
可选的,所述装置还包括:
第二发送单元,用于当判断出目标视频数据的数据量大于第四预设数量时,向所述服务端发送第二指令,以使得所述服务端在接收到所述第二指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面所述的数据处理方法。
第四方面,本发明实施例还提供了一种数据处理系统,包括:Web客户端和服务端,所述Web客户端与服务端通过WebSocket协议通信连接;
所述Web客户端的主线程用于从所述服务端获取目标视频的音视频数据;并对所获取到的音视频数据解封装,得到第一音视频数据;将所述第一音视频数据发送至所述web客户端中的目标子线程;
所述web客户端中的目标子线程用于接收所述Web客户端的主线程发送的第一音视频数据,并解码所述第一音视频数据,得到第二音视频数据;
所述Web客户端的主线程还用于将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据;
所述服务端用于将目标视频的音视频数据发送至Web客户端的主线程。
第五方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现实现第一方面所述的数据处理方法。
本发明实施例提供的技术方案,Web客户端与服务端通过WebSocket协议通信连接。Web客户端在获得待播放的音视频数据的过程为:Web客户端中的主线程从服务端获取目标视频的音视频数据;对所获取到的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至Web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和第二音视频数据中的音频数据作为目标视频对应的待播放数据。可见,本发明实施例提供的技术方案中,Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种数据处理方法的流程图;
图2为本发明实施例所提供的一种数据处理装置的结构示意图;
图3为本发明实施例所提供的一种电子设备的结构示意图。
图4为本发明实施例所提供的一种数据处理系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决背景技术中记载的技术问题,本发明实施例提供了一种数据处理方法、装置、电子设备、系统及存储介质,以使得Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
需要说明的是,本发明实施例所提供的一种数据处理方法的执行主体可以为运行于电子设备中的Web客户端,该Web客户端与服务端通过WebSocket协议通信连接。
下面将对本发明实施例所提供的一种数据处理方法、装置、电子设备、系统及存储介质进行详细阐述。
第一方面,对本发明实施例所提供的一种数据处理方法进行介绍。
如图1所示,本发明实施例所提供的一种数据处理方法可以包括如下步骤:
S110,Web客户端中的主线程从服务端获取目标视频的音视频数据。
服务端中存储有大量视频,服务端中存储的任一视频均可以为上述目标视频。其中,对于一个目标视频而言,该目标视频可以包含多个音视频数据,即音视频数据段。Web客户端中的主线程可以持续地从服务器中获得目标视频的音视频数据。
其中,服务端存储音视频数据的过程可以为:通过音视频采集器采集音视频数据,并对所采集到的音视频数据进行编码、封装,即得到待发送的Web客户端的音视频数据,当然并不局限于此。
需要说明的是,Web客户端中的主线程从服务端获取目标视频的音视频数据的方式可以有以下两种:
第一种方式为:服务端主动向Web客户端的主线程发送音视频数据。这是由于Web客户端与服务端通过WebSocket协议通信连接,其中,WebSocket协议是基于TCP的网络协议,可以使得Web客户端与服务端进行全双工通信。因此,服务端能够主动地向Web客户端的主线程发送音视频数据。并且,服务器可以按照所采集音视频数据的帧率、码率确定向客户端发送音视频数据的速率。
第二种方式为:Web客户端可以通过调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
当然,本发明实施例对Web客户端中的主线程从服务端获取目标视频的音视频数据的方式不作具体限定。
S120,对所获取到的音视频数据解封装,得到第一音视频数据。
由于Web客户端中的主线程从服务端中获取的音视频数据是是经过服务器封装后的音视频数据,因此,Web客户端的主线程需要对从服务端获取到的音视频数据解封装,得到解封装后的音视频数据,即得到第一音视频数据。
在一种实施方式中,Web客户端的主线程可以通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
其中,WASM是WebAssembly的缩写,WASM运行在一个沙箱化的执行环境中,可以在现有的JavaScript虚拟机中实现。WebAssembly可以被JavaScript调用,进入JavaScript上下文,从而实现对所获取的音视频数据进行解封装。
S130,将第一音视频数据发送至web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据。
需要说明的是,Web客户端中存在用于解码第一音视频数据的解码线程,在本实施例中,将该解码线程称为目标子线程。其中,该目标子线程可以是在Web客户端的主线程中存在待解码的音视频数据时建立的子线程;该目标子线程还可以是Web客户端预先建立的子线程,这都是合理的。
在一种实施方式中,web客户端中的目标子线程接收到第一音视频数据后,可以通过Javascript/WASM来解码第一音视频数据,得到第二音视频数据。
需要强调的是,为了防止因目标子线程中存在大量未解码的音视频数据而造成目标子线程的负载太重,Web客户端的主线程可以监控目标子线程中当前未解码的音视频数据的数据量,即监控目标音视频数据的数据量。
在一种实施方式中,Web客户端的主线程可以判断目标音视频数据的数据量是否大于第一预设数量,如果目标音视频数据的数据量大于第一预设数量,说明目标子线程中当前存在较多未解码的音视频数据,即目标子线程的负载较重,此时,Web客户端的主线程可以对待发送至目标子线程的第一音视频数据进行抽帧处理,并将抽帧处理得到的第一音视频数据发送至目标子线程。相应地,如果目标音视频数据的数据量不大于第一预设数量,可以直接将第一音视频数据发送至web客户端中的目标子线程。
其中,Web客户端的主线程可以按照预设的抽帧规则对待发送至目标子线程的第一音视频数据进行抽帧处理。其中,预设的抽帧规则可以按照实际情况设定,例如,预设的抽帧规则可以是每隔5帧抽取1帧;每隔10帧抽取1帧,这都是合理的。本发明实施例对预设的抽帧规则不作具体限定。
在一种实施方式中,Web客户端的主线程可以判断目标音视频数据的数据量是否大于第二预设数量,在Web客户端的主线程判断出目标音视频数据的数据量大于第二预设数量时,Web客户端的主线程还可以向服务端发送第一指令,该第一指令用于指示服务端调低向客户端发送音视频数据的速率。
可以理解的是,Web客户端的主线程可以实时监控目标音视频数据的数据量是否大于第一预设数量。在Web客户端的主线程监控到目标音视频数据的数据量大于第一预设数量时,Web客户端的主线程执行对待发送至目标子线程的第一音视频数据进行抽帧处理的操作,同样地,Web客户端的主线程可以实时监控目标音视频数据的数据量是否大于第二预设数量,在Web客户端的主线程监控到目标音视频数据的数据量大于第二预设数量时,执行向服务端发送第一指令的操作。
需要说明的是,第一预设数量和第二预设数量均可以根据具体情况进行设置,本发明实施例对第一预设数量以及第二预设数量不做具体限定。可以理解的是,第一预设数量可以与第二预设数量相同,也可以与第二预设数量不同,本发明实施例对第一预设数量与第二预设数量之间的大小关系不作具体限定。
S140,将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
为了能够得到目标视频对应的待播放数据,需要对解码后的视频数据进行渲染,即需要对第二音视频数据中的视频数据进行渲染。可以理解的是,该待播放数据可以包括:渲染得到的视频数据和第二音视频数据中的音频数据。
其中,可以利用web客户端的浏览器的主线程,对第二音视频数据中的视频数据进行渲染。具体的,Web客户端的主线程可以将第二音视频数据发送至Web客户端的浏览器的主线程,Web客户端的浏览器的主线程接收到该第二音视频数据后,通过WebGL渲染该第二音视频数据中的视频数据。
具体的,WebGL(Web Graphics Library)是一种3D绘图协议,WebGL可以提供3D加速渲染,这样,浏览器的主线程可以更加流畅地展示3D场景和模型。浏览器的主线程对第二音视频数据中的视频数据进行WebGL渲染的具体过程可以为:确定第二音视频数据中的视频数据的各个帧数据在显示器的2D坐标,并为各个2D坐标赋予颜色值,从而实现了对第二音视频数据中视频数据的渲染。WebGL可以使得浏览器不依赖于插件即能够实现视频数据的渲染。本领域技术人员可以理解的是,音频数据不需要渲染就可以直接播放,因此,浏览器的主线程不对第二音视频数据中的音频数据进行渲染。
需要强调的是,为了防止因Web客户端的浏览器的主线程中存在大量未渲染的视频数据而造成Web客户端的浏览器的主线程的负载太重,Web客户端的主线程可以监控浏览器的主线程中当前未渲染的视频数据的数据量,即监控目标视频数据的数据量。
在一种实施方式中,Web客户端的主线程可以判断目标视频数据的数据量是否大于第三预设数量,如果目标视频数据的数据量大于第三预设数量,说明浏览器的主线程中当前存在较多未渲染的视频数据,即浏览器的主线程的负载较重,此时,Web客户端的主线程可以对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,这样,web客户端的浏览器的主线程可以对经过抽帧处理所得到的视频数据进行渲染。相应地,如果目标视频数据的数据量不大于第三预设数量,可以直接将第二音视频数据发送至web客户端的浏览器的主线程。
在一种实施方式中,Web客户端的主线程可以判断目标视频数据的数据量是否大于第四预设数量,在Web客户端的主线程判断出目标视频数据的的数据量大于第四预设数量时,Web客户端的主线程可以向服务端发送第二指令,该第二指令用于指示服务端调低向客户端发送音视频数据的速率。
可以理解的是,Web客户端的主线程可以实时监控目标视频数据的数据量是否大于第三预设数量。在Web客户端的主线程监控到目标视频数据的数据量大于第三预设数量时,Web客户端的主线程执行对当前待渲染的第二音视频数据中的视频数据进行抽帧处理的操作;同样地,Web客户端的主线程可以实时监控目标视频数据的数据量是否大于第四预设数量。在Web客户端的主线程监控到目标视频数据的数据量大于第四预设数量时,Web客户端的主线程可以执行向服务端发送第二指令的操作。
需要说明的是,第三预设数量和第四预设数量均可以根据具体情况进行设置,本发明实施例对第三预设数量以及第四预设数量不做具体限定。可以理解的是,第三预设数量可以与第四预设数量相同,也可以与第四预设数量不同,本发明实施例对第三预设数量与第四预设数量之间的大小关系不作具体限定。
需要强调的是,Web客户端的主线程可以单独监控目标音视频数据的数据量是否大于第一预设数量或者第二预设数量,也可以单独监控目标视频数据的数据量是否大于第三预设数量或者第四预设数量,还可以同时监控目标音视频数据的数据量是否大于第一预设数量或者第二预设数量,以及目标视频数据的数据量是否大于第三预设数量或者第四预设数量,这都是合理的,本发明实施例不做具体限定。
本发明实施例提供的技术方案,Web客户端与服务端通过WebSocket协议通信连接。Web客户端在获得待播放的音视频数据的过程为:Web客户端中的主线程从服务端获取目标视频的音视频数据;对所获取到的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至Web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和第二音视频数据中的音频数据作为目标视频对应的待播放数据。可见,本发明实施例提供的技术方案中,Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
第二方面,本发明实施例还提供了一种数据处理装置,应用于Web客户端,所述Web客户端与服务端通过WebSocket协议通信连接,如图2所示,所述装置包括:
用于实现Web客户端中的主线程的处理功能的获取单元210、解封装单元220、第一处理单元230和第二处理单元240,以及,用于实现Web客户端中的目标子线程的处理功能的解码单元250;
其中,所述获取单元210,用于从服务端获取目标视频的音视频数据;
所述解封装单元220,用于对所获取到的音视频数据解封装,得到第一音视频数据;
第一处理单元230,用于将所述第一音视频数据发送至所述web客户端中的目标子线程;
所述解码单元240,用于解码所述第一音视频数据,得到第二音视频数据;
第二处理单元250,用于将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
本发明实施例提供的技术方案,Web客户端与服务端通过WebSocket协议通信连接。Web客户端在获得待播放的音视频数据的过程为:Web客户端中的主线程从服务端获取目标视频的音视频数据;对所获取到的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至Web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为目标视频对应的待播放数据。可见,本发明实施例提供的技术方案中,Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
可选的,所述获取单元,具体用于:
调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
可选的,所述解封装单元,具体用于:
通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
可选的,所述解码单元,具体用于:
通过Javascript/WASM解码所述第一音视频数据,得到第二音视频数据。
可选的,所第二处理单元,具体用于:
将所述第二音频数据发送至所述Web客户端的浏览器的主线程,以使得所述浏览器的主线程通过WegGL渲染所述第二音视频数据中的视频数据,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
可选的,所述第一处理单元,具体用于:
当判断出目标音视频数据的数据量大于第一预设数量时,对当前待发送至所述目标子线程的第一音视频数据进行抽帧处理,将经过抽帧处理所得到的第一音视频数据发送至所述目标子线程;否则,将所述第一音视频数据发送至所述web客户端中的目标子线程;其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述装置还包括:
第一发送单元,用于当判断出目标音视频数据的数据量大于第二预设数量时,向所述服务端发送第一指令,以使得所述服务端在接收到所述第一指令后,将所述服务端向所述客户端发送音视频数据的速率调低。
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述第二处理单元,具体用于:
当判断出目标视频数据的数据量大于第三预设数量时,对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,并将经过抽帧处理所得到的视频数据和第二音视频数据中的音频数据发送至所述web客户端的浏览器的主线程;否则,将所述第二音视频数据发送至所述web客户端的浏览器的主线程;其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
可选的,所述装置还包括:
第二发送单元,用于当判断出目标视频数据的数据量大于第四预设数量时,向所述服务端发送第二指令,以使得所述服务端在接收到所述第二指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
第三方面,本发明实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现上述第一方面所述的数据处理方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明实施例提供的技术方案,Web客户端与服务端通过WebSocket协议通信连接。Web客户端在获得待播放的音视频数据的过程为:Web客户端中的主线程从服务端获取目标视频的音视频数据;对所获取到的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至Web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为目标视频对应的待播放数据。可见,本发明实施例提供的技术方案中,Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
第四方面,本发明实施例还提供了一种数据处理系统,如图4所示,所述系统包括:Web客户端410和服务端420,所述Web客户端与服务端通过WebSocket协议通信连接;
所述Web客户端的主线程用于从所述服务端获取目标视频的音视频数据;并对所获取到的音视频数据解封装,得到第一音视频数据;将所述第一音视频数据发送至所述web客户端中的目标子线程;
所述web客户端中的目标子线程用于接收所述Web客户端的主线程发送的第一音视频数据,并解码所述第一音视频数据,得到第二音视频数据;
所述Web客户端的主线程还用于将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据;
所述服务端用于将目标视频的音视频数据发送至Web客户端的主线程。
本发明实施例提供的技术方案,Web客户端与服务端通过WebSocket协议通信连接。Web客户端在获得待播放的音视频数据的过程为:Web客户端中的主线程从服务端获取目标视频的音视频数据;对所获取到的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至Web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为目标视频对应的待播放数据。可见,本发明实施例提供的技术方案中,Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
可选的,所述Web客户端的主线程,具体用于:
调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
可选的,所述Web客户端的主线程,具体用于:
通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
可选的,所述Web客户端的目标子线程,具体用于:
通过Javascript/WASM解码所述第一音视频数据,得到第二音视频数据。
可选的,所述浏览器的主线程,具体用于:
通过WegGL渲染所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
可选的,所述Web客户端的主线程,具体用于:
当判断出目标音视频数据的数据量大于第一预设数量时,对当前待发送至所述目标子线程的第一音视频数据进行抽帧处理,将经过抽帧处理所得到的音视频数据发送至所述目标子线程;否则,将所述第一音视频数据发送至所述web客户端中的目标子线程;
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述Web客户端的主线程,还用于:
当判断出目标音视频数据的数据量大于第二预设数量时,向所述服务端发送第一指令;
可选的,所述服务端还用于在接收到所述第一指令后,将所述服务端向所述客户端发送音视频数据的速率调低。
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
可选的,所述Web客户端的主线程,具体用于:
当判断出目标视频数据的数据量大于第三预设数量时,对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,并将经过抽帧处理所得到的视频数据和第二音视频数据中的音频数据发送至所述web客户端的浏览器的主线程;否则,将所述第二音视频数据发送至所述web客户端的浏览器的主线程;其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
可选的,所述Web客户端的主线程,还用于:
当判断出目标视频数据的数据量大于第四预设数量时,向所述服务端发送第二指令,
可选的,所述服务端用于在接收到所述第二指令后,将所述服务端向所述客户端发送音视频数据的速率调低。
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
第五方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据处理方法。
本发明实施例提供的技术方案,Web客户端与服务端通过WebSocket协议通信连接。Web客户端在获得待播放的音视频数据的过程为:Web客户端中的主线程从服务端获取目标视频的音视频数据;对所获取到的音视频数据解封装,得到第一音视频数据;将第一音视频数据发送至Web客户端中的目标子线程,以使得目标子线程解码第一音视频数据,得到第二音视频数据;将第二音视频数据发送至web客户端的浏览器的主线程,以使得浏览器的主线程对第二音视频数据中的视频数据,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为目标视频对应的待播放数据。可见,本发明实施例提供的技术方案中,Web客户端不依赖浏览器中的插件,可以实现音视频数据的播放。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (21)

1.一种数据处理方法,其特征在于,应用于Web客户端,所述Web客户端与服务端通过WebSocket协议通信连接,所述方法包括:
Web客户端中的主线程从服务端获取目标视频的音视频数据;
对所获取到的音视频数据解封装,得到第一音视频数据;
将所述第一音视频数据发送至所述web客户端中的目标子线程,以使得所述目标子线程解码所述第一音视频数据,得到第二音视频数据;
将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
2.根据权利要求1所述的方法,其特征在于,所述从服务端获取目标视频的音视频数据的步骤,包括:
调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
3.根据权利要求1所述的方法,其特征在于,所述对所获取到的音视频数据解封装,得到第一音视频数据的步骤,包括:
通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
4.根据权利要求1所述的方法,其特征在于,所述目标子线程解码所述第一音视频数据,得到第二音视频数据的步骤,包括:
所述目标子线程通过Javascript/WASM解码所述第一音视频数据,得到第二音视频数据。
5.根据权利要求1所述的方法,其特征在于,所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据的步骤,包括:
所述浏览器的主线程通过WebGL渲染所述第二音视频数据中的视频数据,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述将所述第一音视频数据发送至所述web客户端中的目标子线程的步骤,包括:
当判断出目标音视频数据的数据量大于第一预设数量时,对当前待发送至所述目标子线程的第一音视频数据进行抽帧处理,将经过抽帧处理所得到的第一音视频数据发送至所述目标子线程;否则,将所述第一音视频数据发送至所述web客户端中的目标子线程;
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
当判断出目标音视频数据的数据量大于第二预设数量时,向所述服务端发送第一指令,以使得所述服务端在接收到所述第一指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述将所述第二音视频数据发送至所述web客户端的浏览器的主线程的步骤,包括:
当判断出目标视频数据的数据量大于第三预设数量时,对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,并将经过抽帧处理所得到的视频数据和第二音视频数据中的音频数据发送至所述web客户端的浏览器的主线程;否则,将所述第二音视频数据发送至所述web客户端的浏览器的主线程;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
当判断出目标视频数据的数据量大于第四预设数量时,向所述服务端发送第二指令,以使得所述服务端在接收到所述第二指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
10.一种数据处理装置,其特征在于,应用于Web客户端,所述Web客户端与服务端通过WebSocket协议通信连接,所述装置包括:
用于实现Web客户端中的主线程的处理功能的获取单元、解封装单元、第一处理单元和第二处理单元,以及,用于实现Web客户端中的目标子线程的处理功能的解码单元;
其中,所述获取单元,用于从服务端获取目标视频的音视频数据;
所述解封装单元,用于对所获取到的音视频数据解封装,得到第一音视频数据;
第一处理单元,用于将所述第一音视频数据发送至所述web客户端中的目标子线程;
所述解码单元,用于解码所述第一音视频数据,得到第二音视频数据;
第二处理单元,用于将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
11.根据权利要求10所述的装置,其特征在于,所述获取单元,具体用于:
调用WebSocket回调函数,从服务端获取目标视频的音视频数据。
12.根据权利要求10所述的装置,其特征在于,所述解封装单元,具体用于:
通过Javascript/WASM对所获取到的音视频数据解封装,得到第一音视频数据。
13.根据权利要求10所述的装置,其特征在于,所述解码单元,具体用于:
通过Javascript/WASM解码所述第一音视频数据,得到第二音视频数据。
14.根据权利要求10所述的装置,其特征在于,所第二处理单元,具体用于:
将所述第二音频数据发送至所述Web客户端的浏览器的主线程,以使得所述浏览器的主线程通过WegGL渲染所述第二音视频数据中的视频数据,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据。
15.根据权利要求10至14任一项所述的装置,其特征在于,所述第一处理单元,具体用于:
当判断出目标音视频数据的数据量大于第一预设数量时,对当前待发送至所述目标子线程的第一音视频数据进行抽帧处理,将经过抽帧处理所得到的第一音视频数据发送至所述目标子线程;否则,将所述第一音视频数据发送至所述web客户端中的目标子线程;
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
16.根据权利要求10至14任一项所述的装置,其特征在于,所述装置还包括:
第一发送单元,用于当判断出目标音视频数据的数据量大于第二预设数量时,向所述服务端发送第一指令,以使得所述服务端在接收到所述第一指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标音视频数据为:所述web客户端中的目标子线程已接收到的第一音视频数据中当前未解码的数据。
17.根据权利要求10至14任一项所述的装置,其特征在于,所述第二处理单元,具体用于:
当判断出目标视频数据的数据量大于第三预设数量时,对当前待渲染的第二音视频数据中的视频数据进行抽帧处理,并将经过抽帧处理所得到的视频数据和第二音视频数据中的音频数据发送至所述web客户端的浏览器的主线程;否则,将所述第二音视频数据发送至所述web客户端的浏览器的主线程;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
18.根据权利要求10至14任一项所述的装置,其特征在于,所述装置还包括:
第二发送单元,用于当判断出目标视频数据的数据量大于第四预设数量时,向所述服务端发送第二指令,以使得所述服务端在接收到所述第二指令后,将所述服务端向所述客户端发送音视频数据的速率调低;
其中,所述目标视频数据为:所述web客户端的浏览器的主线程已接收到的第二音视频数据中当前未渲染的视频数据。
19.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9任一所述的方法步骤。
20.一种数据处理系统,其特征在于,包括:Web客户端和服务端,所述Web客户端与服务端通过WebSocket协议通信连接;
所述Web客户端的主线程用于从所述服务端获取目标视频的音视频数据;并对所获取到的音视频数据解封装,得到第一音视频数据;将所述第一音视频数据发送至所述web客户端中的目标子线程;
所述web客户端中的目标子线程用于接收所述Web客户端的主线程发送的第一音视频数据,并解码所述第一音视频数据,得到第二音视频数据;
所述Web客户端的主线程还用于将所述第二音视频数据发送至所述web客户端的浏览器的主线程,以使得所述浏览器的主线程对所述第二音视频数据中的视频数据进行渲染,并将渲染后的视频数据和所述第二音视频数据中的音频数据作为所述目标视频对应的待播放数据;
所述服务端用于将目标视频的音视频数据发送至Web客户端的主线程。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一所述的方法步骤。
CN201810638973.6A 2018-06-20 2018-06-20 一种数据处理方法、装置、电子设备、系统及存储介质 Active CN110620959B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201810638973.6A CN110620959B (zh) 2018-06-20 2018-06-20 一种数据处理方法、装置、电子设备、系统及存储介质
US17/253,972 US11470384B2 (en) 2018-06-20 2019-06-13 Data processing method and apparatus, electronic device, system, and storage medium
EP19821522.0A EP3813379B1 (en) 2018-06-20 2019-06-13 Data processing method and apparatus, electronic device, system, and storage medium
PCT/CN2019/091094 WO2019242559A1 (zh) 2018-06-20 2019-06-13 一种数据处理方法、装置、电子设备、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810638973.6A CN110620959B (zh) 2018-06-20 2018-06-20 一种数据处理方法、装置、电子设备、系统及存储介质

Publications (2)

Publication Number Publication Date
CN110620959A true CN110620959A (zh) 2019-12-27
CN110620959B CN110620959B (zh) 2020-12-25

Family

ID=68920792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810638973.6A Active CN110620959B (zh) 2018-06-20 2018-06-20 一种数据处理方法、装置、电子设备、系统及存储介质

Country Status (4)

Country Link
US (1) US11470384B2 (zh)
EP (1) EP3813379B1 (zh)
CN (1) CN110620959B (zh)
WO (1) WO2019242559A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111107391A (zh) * 2020-01-16 2020-05-05 深圳市信义科技有限公司 一种基于分布式的web无插件视频直播方法
CN111432262A (zh) * 2020-02-24 2020-07-17 杭州海康威视数字技术股份有限公司 页面视频渲染方法及装置
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111881401A (zh) * 2020-08-04 2020-11-03 浪潮云信息技术股份公司 基于WebAssembly的浏览器深度学习方法及系统
CN112383539A (zh) * 2020-11-11 2021-02-19 视若飞信息科技(上海)有限公司 一种基于远程过程调用云浏览器的方法、装置和电子设备
CN112423117A (zh) * 2020-06-11 2021-02-26 上海哔哩哔哩科技有限公司 Web端视频播放方法、装置及计算机设备
CN114390340A (zh) * 2021-12-30 2022-04-22 北京鸿合爱学教育科技有限公司 视频播放方法、装置和电子设备
CN115379257A (zh) * 2021-05-20 2022-11-22 阿里巴巴新加坡控股有限公司 一种渲染方法、装置、系统、存储介质及程序产品

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111787185B (zh) * 2020-08-04 2023-09-05 成都云图睿视科技有限公司 一种vpu平台下的多路摄像头数据实时处理的方法
CN114063966A (zh) * 2021-11-04 2022-02-18 厦门雅基软件有限公司 音频处理方法、装置、电子设备及计算机可读存储介质
CN114501149B (zh) * 2022-02-10 2024-09-24 天脉拓道(北京)科技有限公司 一种音频/视频文件的解码方法、装置、设备及可读介质
CN114900507B (zh) * 2022-04-29 2024-10-08 阿里巴巴(中国)有限公司 Rtc音频数据的处理方法、装置、设备以及存储介质
CN115243102B (zh) * 2022-09-21 2023-02-28 天讯瑞达通信技术有限公司 基于Web技术的视频播放方法、装置、设备以及存储介质
CN117909071B (zh) * 2023-05-29 2024-08-23 荣耀终端有限公司 图像显示方法、电子设备、存储介质和芯片系统
CN117938822B (zh) * 2024-03-21 2024-06-04 四川广飞视信息技术有限公司 一种基于wasm的实时语音通信方法、终端及摄像头
CN118338093B (zh) * 2024-06-14 2024-09-06 杭州阿启视科技有限公司 一种基于web前端播放H.265视频流的软解方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111674A (zh) * 2010-12-22 2011-06-29 深圳市五巨科技有限公司 一种移动终端播放在线视频的系统、方法及移动终端
CN106790132A (zh) * 2016-12-28 2017-05-31 天津天地伟业生产力促进有限公司 基于rtmp的无插件预览视频方法
CN107277612A (zh) * 2016-04-05 2017-10-20 韩华泰科株式会社 用于在web浏览器上播放媒体流的方法和设备
CN107483972A (zh) * 2017-07-24 2017-12-15 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端
WO2018067294A1 (en) * 2016-10-07 2018-04-12 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple cpu threads

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360058A (zh) 2008-09-08 2009-02-04 华为技术有限公司 一种控制缓存溢出的方法及装置
KR102321859B1 (ko) * 2016-07-21 2021-11-03 한화테크윈 주식회사 자바 스크립트를 이용한 실시간 미디어 스트리밍 방법 및 그 장치
KR102130429B1 (ko) 2016-11-07 2020-07-07 한화테크윈 주식회사 멀티미디어 수신 장치에서 디코딩을 수행하는 방법 및 멀티미디어 장치
US10887645B2 (en) * 2017-07-13 2021-01-05 Qualcomm Incorporated Processing media data using file tracks for web content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111674A (zh) * 2010-12-22 2011-06-29 深圳市五巨科技有限公司 一种移动终端播放在线视频的系统、方法及移动终端
CN107277612A (zh) * 2016-04-05 2017-10-20 韩华泰科株式会社 用于在web浏览器上播放媒体流的方法和设备
WO2018067294A1 (en) * 2016-10-07 2018-04-12 Microsoft Technology Licensing, Llc Browser-based video decoder using multiple cpu threads
CN106790132A (zh) * 2016-12-28 2017-05-31 天津天地伟业生产力促进有限公司 基于rtmp的无插件预览视频方法
CN107483972A (zh) * 2017-07-24 2017-12-15 平安科技(深圳)有限公司 一种音视频的直播处理方法、存储介质和一种移动终端

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111107391A (zh) * 2020-01-16 2020-05-05 深圳市信义科技有限公司 一种基于分布式的web无插件视频直播方法
CN111432262A (zh) * 2020-02-24 2020-07-17 杭州海康威视数字技术股份有限公司 页面视频渲染方法及装置
CN111432262B (zh) * 2020-02-24 2022-05-24 杭州海康威视数字技术股份有限公司 页面视频渲染方法及装置
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN112423117A (zh) * 2020-06-11 2021-02-26 上海哔哩哔哩科技有限公司 Web端视频播放方法、装置及计算机设备
CN111881401A (zh) * 2020-08-04 2020-11-03 浪潮云信息技术股份公司 基于WebAssembly的浏览器深度学习方法及系统
CN111881401B (zh) * 2020-08-04 2023-12-26 浪潮云信息技术股份公司 基于WebAssembly的浏览器深度学习方法及系统
CN112383539A (zh) * 2020-11-11 2021-02-19 视若飞信息科技(上海)有限公司 一种基于远程过程调用云浏览器的方法、装置和电子设备
CN115379257A (zh) * 2021-05-20 2022-11-22 阿里巴巴新加坡控股有限公司 一种渲染方法、装置、系统、存储介质及程序产品
CN115379257B (zh) * 2021-05-20 2024-05-14 阿里巴巴创新公司 一种渲染方法、装置、系统、存储介质及程序产品
CN114390340A (zh) * 2021-12-30 2022-04-22 北京鸿合爱学教育科技有限公司 视频播放方法、装置和电子设备

Also Published As

Publication number Publication date
EP3813379A1 (en) 2021-04-28
CN110620959B (zh) 2020-12-25
WO2019242559A1 (zh) 2019-12-26
US11470384B2 (en) 2022-10-11
EP3813379A4 (en) 2021-08-25
EP3813379B1 (en) 2024-02-14
US20210274246A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
CN110620959B (zh) 一种数据处理方法、装置、电子设备、系统及存储介质
CN109327727B (zh) 一种WebRTC中的直播流处理方法及推流客户端
CN110415325B (zh) 云渲染三维可视化实现方法及系统
CA2922867C (en) Desktop-cloud-based media control method and device
WO2021082299A1 (zh) 一种视频播放方法及装置
CN108337246B (zh) 防止重放延迟的媒体重放设备和媒体服务设备
US11070886B2 (en) Method and apparatus for looping a video file
CN103905927A (zh) 虚拟桌面场景下视频重定向的方法、桌面服务器和系统
KR101942270B1 (ko) 재생 지연 방지 시스템을 포함하는 미디어 재생 장치 및 방법
EP3410302B1 (en) Graphic instruction data processing method, apparatus
US11800199B2 (en) Video playing method and apparatus
CN113535063A (zh) 直播页面切换方法、视频页面切换方法、电子设备及存储介质
CN109525852B (zh) 直播视频流处理方法、装置、系统及计算机可读存储介质
CN114374869A (zh) 一种全景视频播放方法、装置及计算机存储介质
CN108377243B (zh) 一种直播流的传输方法及装置
CN113645214B (zh) 数据检测方法、装置、电子设备及可读存储介质
CN114401445B (zh) 视频处理控制方法、装置、监控设备、客户端及存储介质
CN113824962B (zh) 一种传输光标信息的方法、系统、设备和存储介质
CN109451361B (zh) Android系统的码流清晰度切换方法、装置、终端及可读介质
CN106250077A (zh) 一种应用关联的内容界面呈现方法、装置及其电子设备
CN115942000A (zh) 基于h.264格式的视频流转码方法及装置、设备及介质
CN117979076A (zh) 一种虚拟投屏方法、装置和电子设备
CN118233707A (zh) 网页音视频流数据的渲染方法、装置及电子装置
CN112801854A (zh) 一种视频数据处理方法、装置、存储介质及电子设备
CN115550689A (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