CN115695385B - 视频数据的处理方法及装置、电子设备和存储介质 - Google Patents
视频数据的处理方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115695385B CN115695385B CN202211706255.0A CN202211706255A CN115695385B CN 115695385 B CN115695385 B CN 115695385B CN 202211706255 A CN202211706255 A CN 202211706255A CN 115695385 B CN115695385 B CN 115695385B
- Authority
- CN
- China
- Prior art keywords
- virtual display
- video frame
- encoder
- interface
- notification message
- 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
Links
Images
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种视频数据的处理方法及装置、电子设备和存储介质,其中,该方法应用于WebRTC,所述WebRTC包括第一虚拟显示器和第二虚拟显示器;所述方法包括:基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧;获取所述第一虚拟显示器在合成视频帧后发送的通知消息;响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,所述第一接口用于连接所述第二虚拟显示器和编码器。通过本申请,解决了现有技术中存在的在高帧率的情况下,前后帧会出现交叉导致出现退帧现象的技术问题。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种视频数据的处理方法及装置、电子设备和存储介质。
背景技术
云游戏领域中,一种常见的架构是基于ARM板卡,其上运行Android,其内置一个WebRTC(Web Real-Time Communications,网页实时运行)服务,该服务会创建一个VirtualDisplay(虚拟显示器),然后将显示的结果通过编码器编码,再以视频流的方式推送到远端。具体地,WebRTC的逻辑是创建一个虚拟显示器,每当虚拟显示器合成完一个新视频帧,WebRTC都会收到一个消息,然后将视频帧的信息通过GPU(Graphics Processing Unit,图形处理器)获取,并转换成YUV(YUV是一种颜色空间,基于YUV的颜色编码是流媒体的常用编码方式,Y表示流明,U、V分别表示色度、浓度)的数据帧,进而发送给编码单元进行编码,由于使用GPU进行转换的时候,是用的同一块内存缓冲区,导致在高帧率的情况下,前后帧会出现交叉的情况,从而出现退帧现象以使得服务不可用。
发明内容
本申请实施例的目的在于提供一种视频数据的处理方法及装置、电子设备和存储介质,解决了现有技术中存在的在高帧率的情况下,前后帧会出现交叉导致出现退帧现象的技术问题。
根据本发明的一个实施例,提供了一种视频数据的处理方法,应用于WebRTC,所述WebRTC包括第一虚拟显示器和第二虚拟显示器;所述方法包括:基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧;获取所述第一虚拟显示器在合成视频帧后发送的通知消息;响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,所述第一接口用于连接所述第二虚拟显示器和编码器。
可选的,在基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧之前,所述方法还包括:基于所述WebRTC创建所述第一虚拟显示器、所述编码器和所述第二虚拟显示器;其中,所述第二虚拟显示器通过第一接口与所述编码器进行数据交互;通过与所述编码器关联的第一接口创建画面纹理,并将所述画面纹理绑定至所述第二虚拟显示器。
可选的,响应于所述通知消息,响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果,包括:响应于所述通知消息,创建视频帧并将所述视频帧加入待编码队列;通过所述第一接口获取所述编码器对所述第二虚拟显示器上合成的视频帧编码后的待验证的编码结果;在所述待编码队列中存在与所述待验证的编码结果对应的视频帧的情况下,确定所述待验证的编码结果为响应于所述通知消息获取到的所述编码结果。
可选的,所述方法还包括:在所述待编码队列中不存在与所述编码结果对应的视频帧的情况下,继续等待以获取新的通知消息。
可选的,所述方法还包括:通过与回调函数关联的第二接口发送所述编码结果。
根据本发明的另一个实施例,提供了一种视频数据的处理装置,应用于WebRTC,所述WebRTC包括第一虚拟显示器和第二虚拟显示器;所述装置包括:合成模块,用于基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧;获取模块,用于获取所述第一虚拟显示器在合成视频帧后发送的通知消息;第一处理模块,用于响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,所述第一接口用于连接所述第二虚拟显示器和编码器。
可选的,所述装置还包括:创建模块,用于在所述合成模块基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧之前,基于所述WebRTC创建所述第一虚拟显示器、所述编码器和所述第二虚拟显示器;其中,所述第二虚拟显示器通过第一接口与所述编码器进行数据交互;第二处理模块,用于通过与所述编码器关联的第一接口创建画面纹理,并将所述画面纹理绑定至所述第二虚拟显示器。
可选的,所述第一处理模块包括:创建单元,用于响应于所述通知消息,创建视频帧并将所述视频帧加入待编码队列;获取单元,用于通过所述第一接口获取所述编码器对所述第二虚拟显示器上合成的视频帧编码后的待验证的编码结果;确定单元,用于在所述待编码队列中存在与所述待验证的编码结果对应的视频帧的情况下,确定所述待验证的编码结果为响应于所述通知消息获取到的所述编码结果。
根据本发明的另一个实施例,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述的方法步骤。
根据本发明的另一个实施例,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的方法。
应用本申请的技术方案,在WebRTC服务中创建了两个虚拟显示器,第一虚拟显示器在合成视频帧后不再发送视频帧,只是用来充当一个消息产生器以产生通知消息,因此,相应于该通知消息可以通过第一接口获取编码器对第二虚拟显示器上合成的视频帧进行编码后的编码结果,由于第二虚拟显示器直接连接到编码器,因此在合成视频帧后直接进入编码器进行编码,使得缓冲区的使用是同步的,相比于现有技术,本方案无需将视频帧通过GPU获取然后转换成YUV格式的数据帧再发送给编码单元进行编码,从而避免了在高帧率的情况下,前后帧会出现交叉导致出现退帧现象的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了根据本申请的视频数据的处理方法的流程示意图之一;
图2示出了根据本申请的视频数据的处理方法的流程示意图之二;
图3示出了根据本申请的视频数据的处理方法的流程示意图之三;
图4示出了根据本申请的具体实施方式中基于WebRTC的双VirtualDisplay的视频数据处理示意图;
图5示出了根据本申请的视频数据的处理装置的结构示意图;
图6为本申请实施例中电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供了一种视频数据的处理方法,该方法应用于WebRTC,在本申请中该WebRTC包括第一虚拟显示器和第二虚拟显示器,如图1所示,该方法的步骤包括:
步骤101,基于第一虚拟显示器和第二虚拟显示器分别合成视频帧;
步骤102,获取第一虚拟显示器在合成视频帧后发送的通知消息;
步骤103,响应于通知消息,通过第一接口获取编码器对第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,第一接口用于连接第二虚拟显示器和编码器。
可见,在本申请实施例中在WebRTC服务中创建了两个虚拟显示器,第一虚拟显示器在合成视频帧后不再发送视频帧,只是用来充当一个消息产生器以产生通知消息,因此,响应于该通知消息可以通过第一接口获取编码器对第二虚拟显示器上合成的视频帧进行编码后的编码结果,由于第二虚拟显示器直接连接到编码器,因此在合成视频帧后直接进入编码器进行编码,使得缓冲区的使用是同步的,相比于现有技术,本方案无需将视频帧通过GPU获取然后转换成YUV格式的数据帧再发送给编码单元进行编码,从而避免了在高帧率的情况下,前后帧会出现交叉导致出现退帧现象的问题。
此外,需要说明的是,本申请实施例中的方法步骤的执行主体除了可以是两个虚拟显示器外,还可以是WebRTC服务中的HardwareVideoEncoder(视频帧编码模块)和SurfaceTextureHelper(画面纹理助手),基于此,该第一接口可以是createInputSurface接口。
在本申请实施例的可选实施方式中,在基于第一虚拟显示器和第二虚拟显示器分别合成视频帧之前,如图2所示,本申请实施例的方法还可以包括:
步骤201,基于WebRTC创建第一虚拟显示器、编码器和第二虚拟显示器;其中,第二虚拟显示器通过第一接口与编码器进行数据交互;
步骤202,通过与编码器关联的第一接口创建画面纹理,并将画面纹理绑定至第二虚拟显示器。
可见,在本申请实施例中,对于WebRTC服务会创建两个虚拟显示器,一个编码器,该编码器与其中一个显示器连接。相比于现有技术中基于WebRTC服务仅创建一个虚拟显示器的方式,本方案中额外增加一个虚拟显示器,将该虚拟显示器直接连接到编码器,二者对缓冲区的使用是同步的,因此不会出现退帧,而原有的虚拟显示器不再发送视频帧,只是用来充当一个消息产生器以产生通知消息,因此原有消息通知逻辑是正常运行的。
在本申请实施例的另一个可选实施方式中,对于上述步骤103中涉及到的响应于通知消息,通过第一接口获取编码器对第二虚拟显示器上合成的视频帧进行编码后的编码结果,进一步可以包括:
步骤11,响应于通知消息,创建视频帧并将视频帧加入待编码队列;
步骤12,通过第一接口获取编码器对第二虚拟显示器上合成的视频帧编码后的待验证的编码结果;
步骤13,在待编码队列中存在与待验证的编码结果对应的视频帧的情况下,确定待验证的编码结果为响应于通知消息获取到的编码结果。
需要说明的是,本申请实施例中并不使用待编码队列中的视频帧上的画面纹理,而仅仅是在待编码队列中存储这些视频帧,由于第一虚拟显示器和第二虚拟显示器是同时进行视频帧合成的,即是对同一视频帧进行合成,也就是说,在第一虚拟显示器合成视频帧之后,发送通知消息以告知第一显示视频帧合成了视频帧,进而会再创建一个视频帧,该视频帧的作用是不使用视频帧上的画面纹理的数据,只是把视频帧当一个消息通知,表示新来了一帧数据。因此将该视频帧放入待编码队列后,如果第二虚拟显示器合成了视频帧,并通过编码器进行了编码,在该待编码队列中存在与对第二虚拟显示器合成的视频帧进行编码后的视频帧,则表明该编码结果是有效的,如果待编码队列中不存在与该编码结果对应的视频帧,则需要继续等待直到第一虚拟显示器发送通知消息,因为有可能是数据延迟了。
在本申请实施例的可选实施方式,如图3所示,本申请实施例的方法还可以包括:
步骤301,通过与回调函数关联的第二接口发送编码结果。
需要说明的是,该第二接口在具体示例中可以是onEncodedFrame接口,因此基于该回调函数将该编码结果发送至所需的第三方。
下面结合本申请实施例的具体实施方式对本申请进行举例说明,该具体实施方式提供了一种基于WebRTC的双虚拟显示器VirtualDisplay(包括VirtualDisplay1和VirtualDisplay2)进行编码的方法,如图4所示,该方法的步骤包括:
步骤401,SurfaceTextureHelper(画面纹理助手)创建一个SurfaceTexture(画面纹理),并将其绑定到VirtualDisplay1(VD1);
步骤402,HardwareVideoEncoder(视频帧编码模块)创建一个Encoder(编码器),通过Encoder的createInputSurface接口创建一个Surface;
步骤403,HardwareVideoEncoder额外创建一个VirtualDisplay2(VD2),并将402中的编码器的输入Surface(用于缓冲VirtualDisplay所产生的数据)绑定到VirtualDisplay2,这样VirtualDisplay2合成后的数据可以直接到达编码器;
步骤404,每当VitualDisplay1合成完一个完整的数据帧,VitualDisplay1就通过onFrameAvailable接口通知SurfaceTextureHelper;
步骤405,SurfaceTextureHelper收到消息后,创建一个VideoFrame(视频帧),但并不使用VideoFrame上的SurfaceTexture的数据,而只是把VideoFrame当一个消息通知以表征新来了一帧数据;
步骤406,SurfaceTextureHelper通知HardwareVideoEncoder将VideoFrame编码;
步骤407,HardwareVideoEncoder将VideoFrame放入待编码队列;
步骤408,HardwareVideoEncoder通过编码器的dequeueOutputBuffer接口,获取对VirutalDisplay2上的数据的编码结果;
步骤409,HardwareVideoEncoder检查待编码队列,如果待编码队列中有VideoFrame,则表示VirutalDisplay2的编码结果是有效的,如果待编码队列为空,继续等待,直到VirutalDisplay1有新的数据送来为止;
步骤410,HardwareVideoEncoder将编码结果基于回调函数(Call back)通过onEncodedFrame接口发送。
可见,在本申请的具体实施方式中,额外创建一个虚拟显示器,将该虚拟显示器直接连接到编码单元,二者对缓冲区的使用是同步的,因此不会出现退帧现象,原有的虚拟显示器不再发送视频帧,只是用来充当一个消息产生器,使得原有消息通知逻辑正常运行。
对应于上述图1,本申请实施例还提供了一种视频数据的处理装置,应用于WebRTC,其特征在于,WebRTC包括第一虚拟显示器和第二虚拟显示器;如图5所示,该装置包括:
合成模块52,用于基于第一虚拟显示器和第二虚拟显示器分别合成视频帧;
获取模块54,用于获取第一虚拟显示器在合成视频帧后发送的通知消息;
第一处理模块56,用于响应于通知消息,通过第一接口获取对第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,第一接口用于连接第二虚拟显示器和编码器。
可见,在本申请实施例中在WebRTC服务中创建了两个虚拟显示器,第一虚拟显示器在合成视频帧后不再发送视频帧,只是用来充当一个消息产生器以产生通知消息,因此,响应于该通知消息可以通过第一接口获取对第二虚拟显示器上合成的视频帧进行编码后的编码结果,由于第二虚拟显示器直接连接到编码器,因此在合成视频帧后直接进入编码器进行编码,使得缓冲区的使用是同步的,相比于现有技术,本方案无需将视频帧通过GPU获取然后转换成YUV格式的数据帧再发送给编码单元进行编码,从而避免了在高帧率的情况下,前后帧会出现交叉导致出现退帧现象的问题。
可选地,本申请实施例中的装置还可以包括:创建模块,用于在合成模块基于第一虚拟显示器和第二虚拟显示器分别合成视频帧之前,基于WebRTC创建第一虚拟显示器、编码器和第二虚拟显示器;其中,第二虚拟显示器通过第一接口与编码器进行数据交互;第二处理模块,用于通过与编码器关联的第一接口创建画面纹理,并将画面纹理绑定至第二虚拟显示器。
可选地,本申请实施例中的第一处理模块进一步可以包括:创建单元,用于响应于通知消息,创建视频帧并将视频帧加入待编码队列;获取单元,用于通过第一接口获取第二虚拟显示器上合成的视频帧编码后的待验证的编码结果;确定单元,用于在待编码队列中存在与待验证的编码结果对应的视频帧的情况下,确定待验证的编码结果为响应于通知消息获取到的编码结果。
可选地,本申请实施例中的装置还可以包括:获取模块,用于在待编码队列中不存在与编码结果对应的视频帧的情况下,继续等待以获取新的通知消息。
可选地,本申请实施例中的装置还可以包括:发送模块,用于通过与回调函数关联的第二接口发送编码结果。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现图1中的方法步骤,其所起到的作用与图1中的方法步骤一样。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频数据的处理方法。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频数据的处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk (SSD))等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (7)
1.一种视频数据的处理方法,应用于WebRTC,其特征在于,所述WebRTC包括第一虚拟显示器和第二虚拟显示器;所述方法包括:
基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧;
获取所述第一虚拟显示器在合成视频帧后发送的通知消息;
响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,所述第一接口用于连接所述第二虚拟显示器和编码器;
其中,响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果,包括:
响应于所述通知消息,创建视频帧并将所述视频帧加入待编码队列;
通过所述第一接口获取所述编码器对所述第二虚拟显示器上合成的视频帧编码后的待验证的编码结果;
在所述待编码队列中存在与所述待验证的编码结果对应的视频帧的情况下,确定所述待验证的编码结果为响应于所述通知消息获取到的所述编码结果;
在所述待编码队列中不存在与所述编码结果对应的视频帧的情况下,继续等待以获取新的通知消息。
2.根据权利要求1所述的方法,其特征在于,在基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧之前,所述方法还包括:
基于所述WebRTC创建所述第一虚拟显示器、所述编码器和所述第二虚拟显示器;其中,所述第二虚拟显示器通过第一接口与所述编码器进行数据交互;
通过与所述编码器关联的第一接口创建画面纹理,并将所述画面纹理绑定至所述第二虚拟显示器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过与回调函数关联的第二接口发送所述编码结果。
4.一种视频数据的处理装置,应用于WebRTC,其特征在于,所述WebRTC包括第一虚拟显示器和第二虚拟显示器;所述装置包括:
合成模块,用于基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧;
获取模块,用于获取所述第一虚拟显示器在合成视频帧后发送的通知消息;
第一处理模块,用于响应于所述通知消息,通过第一接口获取编码器对所述第二虚拟显示器上合成的视频帧进行编码后的编码结果;其中,所述第一接口用于连接所述第二虚拟显示器和编码器,
其中,所述第一处理模块还包括:
创建单元,用于响应于所述通知消息,创建视频帧并将所述视频帧加入待编码队列;
获取单元,用于通过所述第一接口获取所述编码器对所述第二虚拟显示器上合成的视频帧编码后的待验证的编码结果;
确定单元,用于在所述待编码队列中存在与所述待验证的编码结果对应的视频帧的情况下,确定所述待验证的编码结果为响应于所述通知消息获取到的所述编码结果;
获取模块,还用于在待编码队列中不存在与编码结果对应的视频帧的情况下,继续等待以获取新的通知消息。
5.根据权利要求4所述的装置,其特征在于,所述装置还包括:
创建模块,用于在所述合成模块基于所述第一虚拟显示器和所述第二虚拟显示器分别合成视频帧之前,基于所述WebRTC创建所述第一虚拟显示器、所述编码器和所述第二虚拟显示器;其中,所述第二虚拟显示器通过第一接口与所述编码器进行数据交互;
第二处理模块,用于通过与所述编码器关联的第一接口创建画面纹理,并将所述画面纹理绑定至所述第二虚拟显示器。
6.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口、存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3中任一所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706255.0A CN115695385B (zh) | 2022-12-29 | 2022-12-29 | 视频数据的处理方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211706255.0A CN115695385B (zh) | 2022-12-29 | 2022-12-29 | 视频数据的处理方法及装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115695385A CN115695385A (zh) | 2023-02-03 |
CN115695385B true CN115695385B (zh) | 2023-03-21 |
Family
ID=85055098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211706255.0A Active CN115695385B (zh) | 2022-12-29 | 2022-12-29 | 视频数据的处理方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115695385B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454416A (zh) * | 2017-09-12 | 2017-12-08 | 广州酷狗计算机科技有限公司 | 视频流发送方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3016341B1 (de) * | 2014-10-27 | 2018-12-12 | Deutsche Telekom AG | Verfahren und Anordnung zur effizienten Gestaltung von Web-basierten Kommunikationsdiensten |
CN114401253B (zh) * | 2021-11-24 | 2024-03-15 | 江苏龙源振华海洋工程有限公司 | 一种基于WebRTC的模拟网络中视频传输方法 |
CN114189742B (zh) * | 2021-12-06 | 2024-06-04 | 武汉卡比特信息有限公司 | 手机互联时自适应投射帧率到计算机类终端的系统及方法 |
-
2022
- 2022-12-29 CN CN202211706255.0A patent/CN115695385B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107454416A (zh) * | 2017-09-12 | 2017-12-08 | 广州酷狗计算机科技有限公司 | 视频流发送方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115695385A (zh) | 2023-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016146078A1 (zh) | 一种多媒体重定向的方法、设备和系统 | |
CN104971499B (zh) | 游戏提供服务器 | |
CN110166810B (zh) | 视频渲染引擎切换方法、装置、设备及可读存储介质 | |
KR20080103929A (ko) | 멀티-미디어 신호들의 인코딩 | |
US11196868B2 (en) | Audio data processing method, server, client and server, and storage medium | |
CN112714357B (zh) | 视频播放方法、视频播放装置、电子设备和存储介质 | |
CN108108139A (zh) | 一种云会议的投屏接入方法 | |
CN113438442A (zh) | 一种会议资料的共享方法及装置 | |
CN114025202B (zh) | 视频处理方法、装置及存储介质 | |
CN115695385B (zh) | 视频数据的处理方法及装置、电子设备和存储介质 | |
CN114598931A (zh) | 一种多开云游戏的串流方法、系统、装置及介质 | |
CN113411660B (zh) | 视频数据的处理方法、装置和电子设备 | |
CN113094015A (zh) | 全息多屏显示实现方法、系统、计算机设备和存储介质 | |
CN116456149A (zh) | 基于ue引擎分布式渲染视频同步系统和方法 | |
CN114675914B (zh) | 虚拟桌面的图像传输方法、装置、电子设备及存储介质 | |
CN115766695A (zh) | 基于WebSocket的工业相机实时画面的远程浏览方法及装置 | |
CN115567754A (zh) | 视频播放方法、装置、设备及存储介质 | |
CN116966546A (zh) | 图像处理方法、装置、介质、设备和程序产品 | |
CN111866508B (zh) | 视频处理方法、装置、介质及电子设备 | |
CN116546262A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN114697555A (zh) | 一种图像处理方法、装置、设备及存储介质 | |
CN110418197B (zh) | 一种视频转码方法、装置和计算机可读存储介质 | |
CN113051032A (zh) | 应用画面处理方法、装置和系统 | |
CN109874052B (zh) | 图像处理方法、装置、设备及系统 | |
WO2016107174A1 (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 | ||
CP03 | Change of name, title or address |
Address after: 230031 Room 672, 6/F, Building A3A4, Zhong'an Chuanggu Science Park, No. 900, Wangjiang West Road, High-tech Zone, Hefei, Anhui Patentee after: Anhui Haima Cloud Technology Co.,Ltd. Address before: 100015 rooms 304 and 305, 3 / F, 201 / F, yard 10, Jiuxianqiao North Road, Chaoyang District, Beijing Patentee before: BEIJING HAIYUDONGXIANG TECHNOLOGY Co.,Ltd. |
|
CP03 | Change of name, title or address |