CN103283250B - 一种视频重定向的方法、装置、系统 - Google Patents
一种视频重定向的方法、装置、系统 Download PDFInfo
- Publication number
- CN103283250B CN103283250B CN201280002716.4A CN201280002716A CN103283250B CN 103283250 B CN103283250 B CN 103283250B CN 201280002716 A CN201280002716 A CN 201280002716A CN 103283250 B CN103283250 B CN 103283250B
- Authority
- CN
- China
- Prior art keywords
- data frame
- video data
- display driver
- video
- virtual display
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing 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/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
Abstract
本发明实施例公开了视频重定向方法、装置、系统及计算机可读存储介质,所述方法包括:截获视频播放器向虚拟显示驱动发送的视频数据帧和包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令的视频数据帧处理指令,发送视频数据帧和视频数据帧处理指令到客户端,使客户端根据视频数据帧处理指令对视频数据帧进行解码、后处理和显示,保证客户端用户的视频体验;同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明;并且视频播放器向虚拟显示驱动发送的视频数据帧并没有在服务器侧根据视频数据帧处理指令进行处理,发送的仍是编码的视频数据帧,从而可以进一步节约服务器计算资源和网络传输带宽。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种视频重定向的方法、装置、系统及计算机可读介质。
背景技术
随着计算机技术的不断发展,远程桌面成为一种流行技术。远程桌面技术通过登陆到远程服务器,将该远程服务器屏幕显示的内容传递到本地客户端进行显示。远程桌面应用并不仅指远程的屏幕显示,还可以包含远程视频传送。
现有技术中,使用远程桌面中的视频播放器播放视频文件时,为了减轻远程服务器压力,使用基于公司推出的框架的多媒体播放器时,在远程服务器上通过该视频播放器加载视频文件后,可以从中的Filter截获未解码的视频数据,在客户端的 框架中也插入Filter,接收远程服务器发送的视频数据进行解码显示,同时将视频数据显示信息发送到客户端,但是该方案依赖特定播放器,并且不能对视频数据进行后处理操作,影响用户体验。
发明内容
本发明实施例公开了视频重定向的方法、装置、系统和计算机可读存储介质,用于通过视频重定向,在客户端实现视频数据帧后处理,提高客户端用户视频体验。
第一方面,本发明实施例公开了一种视频重定向的方法,包括:
截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解 复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合第一方面实施例,在第一种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
结合第一方面实施例,在第二种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令,所述运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合第一方面实施例,在第三种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令时,所述运行库截获所述视频数据帧和所述视频数据帧处理指令。
结合第一方面,在第四种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器调用运行库向所述虚拟显示驱动发送所 述视频数据帧和所述视频数据帧处理指令时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合第一方面、第一方面的第一种、第二种、第三种或第四种可能的实施方式,在第五种可能的实施方式中,还包括:所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,所述虚拟显示驱动接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
结合第一方面的第五种可能的实施方式,在第六种可能的实施方式中,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
第二方面,本发明实施例公开了一种视频重定向的方法,包括:
客户端接收视频数据帧和视频数据帧处理指令;其中,所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合第二方面实施例,在第一种可能的实施方式中,根据所述视频数据帧处理指令对所述视频数据帧进行处理,具体包括:
根据所述视频数据帧解码指令对所述视频数据帧进行解码;
根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理;
根据所述视频数据帧呈现指令对所述视频后处理的视频数据帧进行显示。
结合第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述根据所述视频数据帧解码指令对所述视频数据帧进行解码;根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理,具体为,在所述客户端启动视频硬件加速条件下,根据所述视频数据帧解码指令对所述视频数据帧进行解码,根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理。
第三方面,本发明实施例公开了一种服务器,包括:中央处理器和存储器,所述中央处理器与所述存储器通过系统总线连接,当所述服务器运行时,所述中央处理器执行所述存储器存储的计算机执行指令,使所述服务器执行如下步骤:
截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合第三方面实施例,在第一种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
结合第三方面实施例,在第二种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令,所述运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合第三方面实施例,在第三种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令时,所述运行库截获所述视频数据帧和所述视频数据帧处理指令。
结合第三方面实施例,在第四种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器调用运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第三方面、第三方面的第一种、第二种、第三种或第四种可能的实施方式,在第五种可能的实施方式中,还用于执行:所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,所述虚拟显示驱动接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
结合本发明第三方面的第五种可能的实施方式,在第六种可能的实施 方式中,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
第四方面,本发明实施例公开了一种客户端,包括中央处理器和存储器,所述中央处理器与所述存储器通过系统总线连接,当所述客户端运行时,所述中央处理器执行所述存储器存储的计算机执行指令,使所述客户端执行如下步骤:
客户端接收视频数据帧和视频数据帧处理指令;其中,所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合本发明第四方面实施例,在第一种可能的实施方式中,根据所述视频数据帧处理指令对所述视频数据帧进行处理,具体包括:
根据所述视频数据帧解码指令对所述视频数据帧进行解码;
根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理;
根据所述视频数据帧呈现指令对所述视频后处理的视频数据帧进行显示。
结合本发明第四方面的第一种可能的实施方式,在第二种可能的实施 方式中,所述根据所述视频数据帧解码指令对所述视频数据帧进行解码;根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理,具体为,在所述客户端启动视频硬件加速条件下,根据所述视频数据帧解码指令对所述视频数据帧进行解码,根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理。
本发明第五方面,本发明实施例公开了一种视频重定向系统,包括本发明第三方面任一所述的服务器和本发明第四方面任一所述的客户端。
第六方面,本发明实施例公开了一种服务器,包括:
截获单元,用于截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
发送单元,用于向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合本发明第六方面实施例,在第一种可能的实施方式中,所述截获单元具体为所述虚拟显示驱动;所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第六方面实施例,在第二种可能的实施方式中,所述截获单元具体为动态链接库,当所述视频播放器通过运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令,所述 运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,所述动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第六方面实施例,在第三种可能的实施方式中,所述截获单元具体为运行库,当所述视频播放器通过所述运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指 令时,所述运行库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第六方面实施例,在第四种可能的实施方式中,所述截获单元具体为动态链接库,当所述视频播放器调用运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第六方面、第六方面的第一种、第二种、第三种或第四种可能的实施方式,在第五种可能的实施方式中,所述虚拟显示驱动还用于所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
结合本发明第六方面的第五种可能的实施方式,在第六种可能的实施方式中,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
第七方面,本发明实施例公开了一种客户端,包括:接收单元,用于接收视频数据帧和视频数据帧处理指令;其中,所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指 令;
处理单元,用于根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合本发明第七方面实施例,在第一种可能的实施方式中,所述处理单元,具体用于:
根据所述视频数据帧解码指令对所述视频数据帧进行解码;
根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理;
根据所述视频数据帧呈现指令对所述视频后处理的视频数据帧进行显示。
第八方面,本发明实施例公开了一种视频重定向系统,包括本发明第六方面所述的任一服务器和本发明第七方面任一所述的客户端。
第九方面,本发明实施例公开了一种计算机可读存储介质,当计算机执行所述计算机可读存储介质时,所述计算机执行如下步骤:
截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合本发明第九方面实施例,在第一种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第九方面实施例,在第二种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令,所述运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第九方面实施例,在第三种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令时,所述运行库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第九方面实施例,在第四种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器调用运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
结合本发明第九方面、第九方面第一种、第二种、第三种或第四种可能的实施方式,在第五种可能的实施方式中,还包括:所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,所述虚拟显示驱动接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
结合本发明第九方面的第五种可能的实施方式,在第六种可能的实施 方式中,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
第十方面,本发明实施例公开了一种计算机可读存储介质,包括,当计算机执行所述计算机可读存储介质时,所述计算机执行如下步骤:
客户端接收视频数据帧和视频数据帧处理指令;其中,所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
根据所述视频数据帧处理指令对所述视频数据帧进行处理。
结合本发明第十方面的实施例,在第一种可能的实施方式中,根据所述视频数据帧处理指令对所述视频数据帧进行处理,具体包括:
根据所述视频数据帧解码指令对所述视频数据帧进行解码;
根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理;
根据所述视频数据帧呈现指令对所述视频后处理的视频数据帧进行显示。
结合本发明第十方面的第一种可能的实施方式,在第二种可能的实施方式中,所述根据所述视频数据帧解码指令对所述视频数据帧进行解码;根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据 帧后处理,具体为,在所述客户端启动视频硬件加速条件下,根据所述视频数据帧解码指令对所述视频数据帧进行解码,根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理。
本发明实施例公开的视频重定向方法、装置、系统及计算机可读存储介质,截获视频播放器向虚拟显示驱动发送的视频数据帧和包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令的视频数据帧处理指令,发送视频数据帧和视频数据帧处理指令到客户端,使客户端根据视频数据帧处理指令对视频数据帧进行解码、后处理和呈现,保证客户端用户的视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不依赖某一种视频播放器。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例应用场景系统示意图;
图2为本发明实施例远程桌面服务器结构示意图;
图3a、3b、3c、3d为本发明实施例虚拟桌面结构示意图;
图4为本发明实施例视频重定向流程图;
图5为本发明实施例客户端结构示意图;
图6为本发明实施例视频数据帧后处理流程图;
图7a和图7b为本发明实施例视频数据帧后处理效果图;
图8为本发明实施例视频数据帧呈现效果图;
图9为本发明实施例服务器结构图;
图10为本发明实施例客户端结构示意图;
图11为本发明实施例系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
远程桌面环境中,客户端发起视频播放请求,服务器根据客户端的视频播放请求,通过视频播放器加载视频文件,将视频文件的视频流传输到客户端,这一过程称为视频重定向。本发明实施例中的服务器可以包括普通个人计算机或其他终端,也可以为商业服务器等,在这里并不具体限定,本发明实施例以向客户端提供基于操作系统平台的远程桌面服务为例对发明方案进行详细描述。但是本发明方案并不仅限于操作系统,根据本发明方案,同样可以扩展到其他常见的系统平台,如 操作系统等。
本发明实施例公开了视频重定向的方法,应用于远程桌面场景。远程桌面场景通常由本地计算机和远程计算机组成。本地计算机通过访问远程计算机,将远程计算机桌面传送到本地计算机。本地计算机,即本发明实施例中的客户端;远程计算机,即本发明实施例中的服务器。本发明实施例中的视频重定向是指将服务器上的视频文件的视频数据流传送到客户端。其中一种远程桌面场景为虚拟桌面基础架构场景,但是本发明并不局限于图1所示架构,本发明方案可以应用于其他用于传送远程视频数据到客户端的场景。虚拟桌面基础架构场景如图1所示,本实施场景仅是一种示例性说明,只是给出了与本发明实施例相关的组成部分,但是图1并不是对本发明应用的具体限定。图1中左侧是虚拟桌面的客户端,通常称为瘦客户端,客户端的设备形式可以是普通计算机101a、平板电脑101b、智能手机101c等。它们通过网络102使用远程桌面协议103访问远程桌 面服务。服务器204a....204n提供了远程桌面的载体,用户的虚拟桌面(Virtual Desktop)以虚拟机205a、205b....205n的形式存在于服务器上。虚拟桌面管理系统106,用于提供用户的客户端与虚拟机的映射等功能。客户端首先连接到虚拟桌面管理系统106,获取用户的虚拟机地址,进而连接到虚拟机,虚拟桌面管理系统106可以为服务器,也可以为普通个人计算机等,本发明对此不作具体限定。用户通过客户端访问服务器上分配给该用户的虚拟桌面(即虚拟机),该虚拟桌面将用户访问的内容传输到用户的客户端进行显示。
以服务器204a为例,硬件结构和软件结构是虚拟桌面基础架构中最重要的组件,它的典型结构如图2所示。服务器204a中的典型结构包括3个部分,分别为硬件平台300、虚拟化平台(也可以称为Hypervisor)301和虚拟机执行空间302。硬件平台300中可以包括服务器物理结构中的硬盘310、中央处理器311、网络接口卡312和存储器313。Hypervisor301和虚拟机执行空间302分别提供了虚拟机的硬件平台和软件平台。
Hypervisor包含了虚拟机监视器320a、320b....320n。Hypervisor是物理硬件和虚拟机之间的中间层,负责协调各个虚拟机对硬件平台的访问。虚拟机监视器包括实现虚拟机的虚拟硬件平台。图2中,虚拟机监视器320a中包含虚拟硬件平台321a,虚拟硬件平台中包含了虚拟出来的存储器322,中央处理器323,硬盘324,显卡325和网络接口卡326等。虚拟机执行空间302中运行了多个虚拟机205a、205b....205n。虚拟机205a的软件系统运行在虚拟机监视器320a的虚拟硬件平台321a上,其他虚拟机的软件系统也运行在对应的虚拟机监视器的虚拟硬件平台上。客户操作系统330运行在虚拟机205a中,客户操作系统330包含了一个设备驱动层331,设备驱动层331安装了虚拟显示驱动334、网络接口卡驱动336等驱动程序。虚拟机205a中包括视频播放器332。其中,客户操作系统330可以为微软 公司提供的操作系统平台。
如图2所示,用户使用客户端101a登陆到虚拟机205a时,用户观看视频时,比如观看优酷网络视频,或者虚拟机205a本地视频文件时,通过视频播放器332,加载视频文件。本发明实施例以观看本地视频为例,通过显示协议代理335接收到来自客户端101a的视频播放请求,视频播放器332根据该视频播放请求,加载视频文件。视频播放器332对加载的视频文件解复用获得视频数据帧。视频播放器332在初始化时需要确定虚拟机205a是否支持视频硬件加速功能,视频播放器332发送向虚拟显示驱动334发送视频硬件加速能力查询请求。视频硬件加速是指利用计算机硬件代替视频播放器的软件算法对视频数据帧进行处理,具体可以包括对视频数据帧进行解码、后处理和呈现;其中关于视频数据帧后处理和呈现将后面的进行详细描述。在本发明实施例中,即利用虚拟机205a的硬件代替视频播放器332自身的软件算法对视频数据帧进行处理,这里虚拟机的205a硬件,本领域技术人员可以理解,并不是虚拟机的205a真实硬件,而是通过虚拟机监视器320a提供的虚拟硬件。其中一种实现方式为,视频播放器332在启动查询虚拟显示驱动334的视频硬件加速能力,可以通过调用GetCaps函数进行查询,或者,可以通过调用CreateDevice或CreateDecodeDevice函数创建硬件加速设备,确定虚拟显示驱动334是否支持视频硬件加速功能。当视频播放器332启动查询虚拟显示驱动334的视频硬件加速能力时,虚拟显示驱动334向视频播放器332返回支持视频硬件加速能力的查询请求响应,视频播放器332根据该查询请求响应确定虚拟机205a支持视频硬件加速能力。本发明实现过程中,发现一些视频播放器会从客户端获取客户端已经解码的视频数据帧,从而影响正常的视频处理,因此视频播放器332向虚拟显示驱动334查询视频硬件加速能力的同时,本发明实施例还可以确定视频播放器332是否支持视频重定向功能,确定视频播放器332是否支持视频重定向的一种方式为虚拟机205a通过网络从虚拟桌面管理系统106中获取支持视频重定向的视频播放器的 列表(该支持视频重定向的视频播放器的列表也可以存储在远程服务器204a本地),该列表中包括了支持视频重定向的视频播放器的信息,支持视频重定向的视频播放器的信息包括支持视频重定向的视频播放器的名称、进程名和版本号。其中,视频播放器332启动时,视频播放器332发送向虚拟显示驱动334发送视频硬件加速能力查询请求,会调用GetCaps函数查询视频硬件加速能力,或者调用CreateDevice或CreateDecodeDevice函数创建视频硬件加速。虚拟显示驱动334在收到视频播放器332的GetCaps、或者CreateDevice或CreateDecodeDevice调用时,检查发起调用的视频播放器332名称和视频播放器332进程名,与从虚拟桌面管理系统106获得的视频播放器列表中的视频播放器的信息进行匹配。若发起调用视频播放器332名称和视频播放器332进程名在该列表中,则通过客户操作系统330的应用程序接口API定位到该视频播放器332的进程的可执行文件(exe),并从可执行文件中提取出版本号,与从虚拟桌面管理系统106获取的视频播放器列表中的视频播放器的版本号匹配,若匹配则确定视频播放器332支持视频重定向,并响应视频播放器332的GetCaps、或者CreateDevice或CreateDecodeDevice函数调用,虚拟显示驱动334向所述视频播放器332发送查询请求响应;所述查询请求响应表明虚拟显示驱动334支持视频硬件加速,即在视频播放器332向虚拟显示驱动334查询是否支持视频硬件加速的同时,虚拟显示驱动判断视频播放器332是否支持视频重定向,只有当虚拟显示驱动334支持视频硬件加速并且视频播放器332支持视频重定向时,虚拟显示驱动334才向视频播放器332返回查询请求响应,视频硬件加速查询请求响应表明虚拟显示驱动334支持视频硬件加速。如果视频播放器332不支持视频重定向,则不响应查询请求。本发明实施例关于确定视频播放器332是否支持重定向的方法只是一种示例性说明,也即视频播放器332的信息和支持视频重定向的视频播放器列表的信息不仅仅局限于视频播放器的名称、进程名和版本 号,其他可以唯一确定视频播放器的信息也可以适用于本发明。同时其他可以判断视频播放器332是否支持视频重定向的方法也适用于本案。
视频播放器332向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令,如图3a所示,一种实现方式为虚拟显示驱动334截获视频播放器332发送的视频数据帧和视频数据帧处理指令。
支持视频重定向功能的视频播放器332加载视频文件后,启动视频硬件加速功能,通过运行库333向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频硬件加速(Video Acceleration,简称为DXVA),是微软公司专门定制的视频加速规范,它共有两个版本,分别是DXVA1.0和DXVA2.0。视频硬件加速规范不仅仅是在视频播放过程中的视频数据帧解码计算规范,其还与视频数据帧后期处理相关。运行库是由微软公司创建的多媒体编程接口。由C++编程语言实现,被广泛使用于和 Xbox电子游戏开发,本发明实施例及后面发明实施例描述的运行库与此相同。
其中,视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令。通常,视频数据帧发送到虚拟显示驱动334,根据视频数据帧解码指令,对该视频数据帧进行解码,然后再根据视频数据帧后处理指令对该解码的视频数据帧进行后处理;通常, 运行库333调用虚拟显示驱动334提供的视频硬件加速接口中用于视频后处理的接口,通知虚拟显示驱动334完成视频数据帧的后处理。视频数据帧后处理指令类型包括对视频数据帧进行亮度、色调、饱和度和缩放等操作中的至少一种,后面将详细描述视频数据帧后处理。将进行后处理的视频数据帧根据呈现指令发送至显卡325(即虚拟显卡),由显卡325发送至物理显卡(本发明实施例附图2中省略了物理显卡)通过显示装置进行呈现。本发明实施例中,视频数据帧及视频数据帧处理指令发送 至虚拟显示驱动334时,虚拟显示驱动334截获该视频数据帧和视频数据帧处理指令,并将截获的该视频数据帧和视频数据帧处理指令发送到显示协议代理335,显示协议代理335通过虚拟网络接口卡326再经物理网络接口卡312,将截获的该视频数据帧和视频数据帧处理指令发送到客户端101a。虚拟显卡驱动334实际上并没有根据视频数据帧处理指令对视频数据帧进行处理,而是将视频数据帧和视频数据帧处理指令截获,并通过显示协议代理335发送至客户端101a进行处理。因此,本发明实施例中截获视频数据帧和视频数据帧处理指令,使得视频播放器332向虚拟显示驱动334发送的视频数据帧并没有在服务器204a侧根据视频数据帧处理指令进行处理,而是发送到客户端进行处理,从而客户端能够根据视频数据帧处理指令对视频数据帧进行解码、后处理和呈现,保证客户端用户的视频体验;同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不依赖某一种视频播放器,如不依赖于公司推出的 框架的Media播放器。并且视频播放器向虚拟显示驱动发送的视频数据帧并没有在服务器侧根据视频数据帧处理指令进行处理,发送的仍是编码的视频数据帧,从而可以进一步节约服务器计算资源和网络传输带宽。
下面具体描述虚拟显示驱动334截获视频数据帧和视频数据帧处理指令的过程。具体地,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,通过视频播放器332调用运行库333启动视频硬件加速,通知虚拟显示驱动334根据视频数据帧处理指令对视频播放器332发送的视频数据帧进行处理。当视频数据帧和视频数据帧处 理指令发送至虚拟显示驱动334时,虚拟显示驱动334截获视频数据帧和视频数据帧处理指令。如图3a所示,在操作系统平台,虚拟显示驱动为Display Driver Model(简称WDDM显示驱动模型)或者为XP Display Driver Model(简称XPDM显示驱动模型)。具体地,WDDM或XPDM显示驱动模型均包括Display Driver和Miniport Driver两部分模块。本发明实施例中,一种实现方案为虚拟显示驱动的Display Driver模块截获视频数据帧和视频数据帧处理指令。本发明实施例中虚拟显示驱动的Display Driver模块将截获的视频数据帧和视频数据帧处理指令,发送到显示协议代理335,显示协议代理335将截获的视频数据帧和视频数据帧处理指令发送到客户端101a进行处理。具体地,一种实现方案为WDDM或XPDM显示驱动模型在Display Driver模块中定义视频硬件加速接口,当视频数据帧和视频数据帧处理指令通过该接口时,截获该视频数据帧和视频数据帧处理指令。另一种实现方案是Display Driver模块截获该视频数据帧和视频数据帧处理指令,经Miniport Driver模块,将截获的视频数据帧和视频数据帧处理指令发送到显示协议代理335,显示协议代理335向客户端101a发送截获的视频数据帧和视频数据帧处理指令。
本发明实施例截获视频数据帧和视频数据帧处理指令的另一种实施方式,如图3b所示,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,通过视频播放器332调用运行库333启动视频硬件加速,通知虚拟显示驱动334根据视频数据帧解码指令对视频播放器332发送的视频数据帧进行解码。运行库333调用所述 虚拟显示驱动334对所述视频数据帧进行处理时,即在视频数据帧和视频数据帧处理指令通过运行库333后,到达虚拟显示驱动334之前,动态链接库截获该视频数据帧和视频数据帧处理指令。具体地,其中一种动态链接库实现方式为采用Hook技术截获运行库333对虚拟显示驱动334的调用,需要实现一个对虚拟显示驱动334Hook的动态链接库文件(dll文件),并在注册表中将其设为最先加载,以此拦截运行库333对虚拟显示驱动334的调用,从而实现视频数据帧和视频数据帧处理指令的截获。将截获的视频数据帧和视频数据帧处理指令发送到显示协议代理335,显示协议代理335将截获的视频数据帧和视频数据帧处理指令发送到客户端101a。仍以操作系统平台,虚拟显示驱动为Display Driver Model(简称WDDM显示驱动模型)或者为 XP Display Driver Model(简称XPDM显示驱动模型),这里以WDDM显示驱动模型为例,进行说明。具体地,WDDM显示驱动模型包括Display Driver和Miniport Driver两部分模块。当运行库333调用虚拟显示驱动334的Display Driver时,动态链接库截获视频数据帧和视频数据帧处理指令,动态链接库将截获的视频数据帧和视频数据帧处理指令,发送到显示协议代理335,显示协议代理335将截获的视频数据帧和视频数据帧处理指令发送到客户端101a进行处理。
本发明实施例截获视频数据帧和视频数据帧处理指令的另一种实施方式,如图3c所示,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,通过视频播放器332调用运行库333向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令,启动视频硬 件加速,通知虚拟显示驱动334对视频播放器332发送的视频数据帧进行处理。在视频数据帧和视频数据帧处理指令通过运行库333时, 运行库截获该视频数据帧和视频数据帧处理指令。
本发明实施例截获视频数据帧和视频数据帧处理指令的另一种实施方式,如图3d所示,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,视频播放器332调用运行库333启动视频硬件加速,发送视频数据帧和视频数据帧处理指令时,即视频数据帧和视频数据帧处理指令到达运行库333之前,动态链接库截获视频数据帧和视频数据帧处理指令。为此,需要实现一个对运行库333Hook的动态链接库文件(dll文件),并在注册表中将其设为最先加载,以此截获视频播放器332对运行库333的调用,从而实现视频数据帧和视频数据帧处理指令的截获。
本发明实施例结合图3a,具体流程描述如图4所示,服务器204a上的虚拟机205a通过显示协议代理335接收来自客户端101a发送的视频播放请求。步骤401:视频播放器332加载视频文件。位于虚拟机205a中的视频播放器332根据来自客户端101a的视频播放请求加载视频文件。步骤402:通过运行库333向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载的视频文件解复用获得视频数据帧,启动视频硬件加速,视频播放器332通过 运行库333向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令。步骤403:虚拟显示驱动334截获视频播 放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令。步骤404:显示协议代理335向客户端101a发送截获的所述视频数据帧和所述视频数据帧处理指令。具体地,显示协议代理335通过虚拟网络接口卡326,然后经物理网络接口卡312,将截获的所述视频数据帧和所述视频数据帧处理指令发送至客户端101a。步骤405:客户端101a接收视频数据帧和视频数据帧处理指令。步骤406:根据所述视频数据帧处理指令对所述视频数据帧进行处理。
如图5所示,客户端101a通过远程协议接收模块501接收虚拟机205a通过显示协议代理335发送的视频数据帧和视频数据帧处理指令。具体地,图5,作为客户端的一种示例性说明,并不是对本发明中使用的客户端的具体限定,同时附图中只是给出了一些组件的说明,对于实现客户端正常功能的一些其他组件此处并没有说明,但是本领域技术人员根据具体实现,可以从附图中获得这些组件。包括存储器500、中央处理器510、网络接口卡520、显卡530、硬盘540和串行接口(简称串口)550,串口可以连接鼠标和键盘等外设。其中,显卡530连接显示器560,在另一种客户端中,显示器560可以与客户端连接在一起,而不必是两个独立的物理装置。客户端运行时,存储器500中加载计算机程序,图5中,存储器500中包括远程桌面协议接收模块501、视频播放器502和操作系统503。网络接口卡520用于接收虚拟机205a通过显示协议代理335发送的视频数据帧和视频数据帧处理指令,并通过系统总线传递到远程桌面协议接收模块501。远程桌面协议接收模块501用于接收该视频数据帧和视频数据帧处理指令。视频播放器502对远程桌面协议接收模块501接收的视频数据帧和视频数据帧处理指令进行处理。操作系统503为客户端提供系统运行环境,可以为操作系统、操作系统及其他操作系统,本发明对此不作具体限定。视频播放器502根据接收的视频数据帧处理指令对视频数据帧进行处理。针对某一帧视频数据,视频数据帧处理指令依 次包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令。当客户端101a的视频播放器502使用视频播放器自身的视频处理能力来处理视频数据帧时,即利用视频播放器对视频数据帧进行软件解码,然后根据视频数据帧后处理指令对解码的视频数据帧进行后处理。将进行后处理的视频数据帧根据视频数据帧呈现指令发送到显卡,通过客户端101a连接的显示器560显示视频数据图像。
当客户端101a支持视频硬件加速时,视频播放器502调用视频硬件加速应用程序接口(API),启动视频硬件加速,将视频数据帧和视频数据帧处理指令通过视频硬件加速API发送至相应的硬件(如 或等公司的显卡芯片,或者Atom CPU芯片中的核芯显卡),进行视频硬件加速。视频播放器502在启动时会检测客户端硬件是否支持视频硬件加速,对于查询是否支持视频硬件加速,如前面描述视频播放器332进行视频硬件加速能力查询的方式类似,对此不再赘述。如果支持视频硬件加速,则远程协议接收模块501接收虚拟机205a通过显示协议代理335发送的视频数据帧和视频数据帧处理指令,视频播放器502通过调用视频硬件加速API,启动视频硬件加速。客户端101启动视频硬件加速功能,可以节约客户端中央处理器的计算资源。接下来,将详细描述客户端101a对解码的视频数据帧根据视频数据帧后处理指令和视频数据帧呈现指令进行相应处理的过程。
本实施例中以的DXVA为例,对视频数据帧后处理和视频数据帧呈现进行描述。DXVA不仅仅提供视频数据帧解码处理,还包括视频数据帧后处理能力,比如图像缩放、色彩空间转换和反交错等。如图6所示,DXVA为视频数据帧后处理流程图。DXVA可以对主数据流和15路分数据流进行处理,将主数据流进行噪声过滤、反交错处理、细节过滤和色彩空间转换后,与经过色彩空间转换后的分数据流进行混合,将混合后的视频数据流进行图像调整,其中图像调整包括亮度、对比度、饱和度 调整等。将经过图像调整后的视频数据流进行图像缩放,从而可以调整图像大小。将经图像缩放处理后的数据进行色彩空间转换,从而使视频数据流进行显示。其中,颜色空间转换,包括由RGB色彩空间转换至YUV色彩空间,或者由YUV色彩空间转换至RGB色彩空间,其中RGB分别表示红、绿和蓝色,YUV分别表示明亮度、色度和浓度,本发明实施例在此不再赘述。
图6描述了视频后处理的过程。实际应用中不一定所有的功能都会用到。实际测试中发现,多数播放器如Media Player,暴风影音 影音播放器等默认只使用了图像缩放功能,用以将解码后的视频数据帧从原始大小缩放到播放窗口大小。本发明实施例中客户端101a进行视频数据帧后处理以图像缩放为例,将解码后的视频数据帧进行图像缩放,以将原始图像大小调整到适合在客户端连接的显示器560上显示。具体效果如图7a所示。视频数据帧后处理还可以包括透明度混合,如图7b所示。本发明实施例中视频数据帧后处理还可以包括亮度、对比度和饱和度调整。从而使客户端呈现给用户更好的视频体验效果。
将解码的视频数据帧进行视频数据帧后处理,根据视频数据帧呈现指令,将经视频数据帧后处理的视频数据帧发送到显卡530,通过显示器560进行显示。其中,视频数据帧呈现指令携带显示参数,显示参数包括要显示的视频数据帧和视频数据帧的显示区域。如图8所示,图中经过视频数据帧后处理之后形成的图像,包括需要显示的4个区域,分别表示为①、②、③和④,同时远程桌面图像,即虚拟机205a的桌面图像通过远程桌面协议传递到客户端101a,客户端101a通过2D渲染显示功能,在客户端101显示器560上显示,其中,远程桌面图像有一处区域用于对用户呈现“显示设定、音频设定和字幕设定”选项,在呈现视频时,同时需要呈现“显示设定、音频设定和字幕设定”选项区域,而该显示设定、音频设定和字幕设定”选项区域与①、②、③和④四个显示区域围成的中间区域 对应。因此,①、②、③和④四个显示区域围成的中间区域对应的视频数据帧不需要显示,构成①、②、③和④四个显示区域围成的中间区域的视频数据帧中包含的视频数据帧显示参数用于确认显示区域,显示参数用于定义不显示该视频数据帧。从而使视频画面与远程桌面融合为一体,为客户端用户提供更好的视频观看体验。
本发明实施例中如果客户端101a为非操作系统,则可以使用其他视频硬件加速功能根据视频数据帧处理对视频数据帧进行处理。
基于本发明上述实施例的描述,本发明实施例还公开了如图9所示的服务器90,包括截获单元901和发送单元902。其中,截获单元901用于截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;发送单元902,用于向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。本实施例中的截获单元901将视频播放器发送到虚拟显示驱动的视频数据帧和视频数据帧处理指令截获,从而服务器90并未根据视频数据帧处理指令对视频数据帧进行处理,通过发送单元902发送至客户端。一种实现方案为服务器90的截获单元901将视频播放器发送到虚拟显示驱动的视频数据帧和视频数据帧处理指令截获,从而服务器90并未根据视频数据帧处理指令对视频数据帧进行处理,而是直接由虚拟显示驱动截获通过发送单元902发送至客户端,从而客户端能够根据视频数据帧处理指令对视频数据帧进行解码、后处理和呈现,保护客户端用户的视频体验;同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不依赖某一种视频播放器,如不依赖于公司推出的框架的多媒体播放器。并且视频播放器向虚拟显示驱动发送的视频数据帧并没有在服务器侧根据视频 数据帧处理指令进行处理,发送的仍是编码的视频数据帧,从而可以进一步节约服务器计算资源和网络传输带宽。
另一种实施方案,截获单元901为动态连接库,视频播放器332调用 运行库333启动视频硬件加速,通知虚拟显示驱动334对视频播放器332发送的视频数据帧进行解码。运行库333调用所述虚拟显示驱动334根据所述视频数据帧处理指令对所述视频数据帧进行处理时,即在视频数据帧和视频数据帧解码指令通过运行库333后,到达虚拟显示驱动334之前,动态链接库截获该视频数据帧和视频数据帧处理指令。具体地,其中一种动态链接库实现方式为采用Hook技术截获 运行库333对虚拟显示驱动334的调用,需要实现一个对虚拟显示驱动334Hook的动态链接库文件(dll文件),并在注册表中将其设为最先加载,以此拦截运行库333对虚拟显示驱动334的调用,从而实现视频数据帧和视频数据帧处理指令的截获。发送单元902将截获的视频数据帧和视频数据帧处理指令发送到客户端101a。仍以操作系统平台,虚拟显示驱动为Display Driver Model(简称WDDM显示驱动模型)或者为XP Display Driver Model(简称XPDM显示驱动模型),这里WDDM显示驱动模型以为例,进行说明。具体地,WDDM显示驱动模型包括Display Driver和Miniport Driver两部分模块。当 运行库333调用虚拟显示驱动334的Display Driver时,动态链接库截获视频数据帧和视频数据帧处理指令,发送单元902将截获的视频数据帧和视频数据帧处理指令发送到客户端101a进行处理。
另一种实现方式,截获单元901作为动态链接库,在视频播放器332调用运行库333启动视频硬件加速时截获视频数据帧和视频数据帧处理指令,即在视频数据帧和视频数据帧处理指令到达运行库333之前截获视频数据帧和视频数据帧处理指令。具体实现原理同在视频数据帧和视频数据帧处理指令通过运行库333,到达虚拟显示 驱动334之前,动态链接库截获该视频数据帧和视频数据帧处理指令的实现方式。
另一种实现方式,截获单元901为运行库333,在视频数据帧和视频数据帧处理指令通过运行库333时,运行库截获该视频数据帧和视频数据帧处理指令。
本实施例中截获视频数据帧和视频数据帧处理指令的方案可以参见前面实施例相应部分的描述,在此不再赘述。
本发明实施例中,虚拟显示驱动用于在所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。在本发明实现中,发现一些视频播放器会从客户端获取客户端已经解码的视频数据帧,从而影响视频播放,此类视频播放器并不真正支持视频重定向。因此,还可以判断视频播放器是否支持视频重定向,具体实施方式可以为视频播放器向所述虚拟显示驱动发送视频硬件加速能力查询请求时,所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。虚拟显示驱动通过确认视频播放器支持视频重定向,才向视频播放器返回查询响应,以表明虚拟显示驱动支持视频硬件加速。即只有当视频播放器支持视频重定向时,虚拟显示驱动才向视频播放器返回查询请求响应,表明虚拟显示驱动支持视频硬件加速。以便于当视频播放器查询到虚拟显示驱动支持视频硬件加速,向虚拟显示驱动发送视频数据帧和包 括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令的视频数据帧处理指令,截获视频数据帧和视频数据帧处理指令并发送至客户端处理,从而节约服务器计算机资源和网络传输带宽,保证客户端用户的视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不依赖某一种视频播放器。关于本发明实施例提供的服务器的描述可以参见前述实施例的描述。
与服务器相对应,本发明实施例还公开了如图10所示的客户端100,包括接收单元1001和处理单元1002。其中,接收单元1001用于接收视频数据帧和视频数据帧处理指令;其中,所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;处理单元1002,用于根据所述视频数据帧处理指令对所述视频数据帧进行处理。其中,处理单元1002具体用于:根据所述视频数据帧解码指令对所述视频数据帧进行解码;根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理;根据所述视频数据帧呈现指令对所述视频后处理的视频数据帧进行显示。
本发明实施例提供的客户端100,通过接收服务器发送的视频数据帧和包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令的视频数据帧处理指令,根据视频数据帧处理指令对视频数据帧进行处理,从而保证客户端用户的视频体验,同时充分利用了客户端的计算资源。
本发明实施例公开了一种视频重定向系统,如图11所示,包括服务器90和客户端100。服务器90截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,并向客户端100发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端100根据所述视频数据帧处理指令对所述视频数据帧进行处理。 客户端100接收所述视频数据帧和所述视频数据帧处理指令;并根据所述视频数据帧处理指令对所述视频数据帧进行处理。根据所述视频数据帧处理指令对所述视频数据帧进行处理,具体包括:根据所述视频数据帧解码指令对所述视频数据帧进行解码;根据所述视频数据帧后处理指令对所述解码的视频数据帧进行视频数据帧后处理;根据所述视频数据帧呈现指令对所述视频后处理的视频数据帧进行显示。
关于本实施例提供的系统的细节描述可参见服务器90和客户端100的描述。本发明实施例中提供的服务器90和客户端100具体可以为普通的计算机、移动终端、工作站或专用服务器等,本发明不作具体限定,具有存储器和至少一个中央处理器,所述存储器与所述至少一个中央处理器通过总线相连,存储器存储计算机指令,所述至少一个中央处理器用于执行存储器中的计算机指令,同时也包含通用的外部接口等实现服务器功能的一些必要组件。其中,存储器中存储的计算机指令的算法可以参照发明实施例中对应的方法描述。
本发明实施例提供的视频重定向系统,在服务器侧截获视频播放器向虚拟显示驱动发送视频数据帧和包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令的视频数据帧处理指令,并发送到客户端,客户端接收所述视频数据帧和所述视频数据帧处理指令,根据所述视频数据帧处理指令对所述视频数据帧进行解码、视频后处理和呈现,保证客户端用户的视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不依赖某一种视频播放器,如不依赖于公司推出的框架的Media播放器。并且视频播放器向虚拟显示驱动发送的视频数据帧并没有在服务器侧根据视频数据帧处理指令进行处理,发送的仍是编码的视频数据帧,从而可以进一步节约服务器计算资源和网络传输带宽。。
本发明实施例提供的基于虚拟桌面的远程桌面架构,本领域技术人员 可以意识到,本发明并不限于本实施例的所描述的虚拟桌面架构,对于基于其他类型的虚拟桌面的远程桌面本发明同样适用。另外,本发明并不仅仅适用于基于虚拟桌面的远程桌面架构,同样也适用于其他向远程客户端提供视频数据的应用场景。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所公开的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在 一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:NAS(Network Attached Storage)、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (23)
1.一种视频重定向的方法,其特征在于,包括:
截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
2.如权利要求1所述的方法,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
3.如权利要求1所述的方法,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令,所述DirectX运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
4.如权利要求1所述的方法,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述DirectX运行库截获所述视频数据帧和所述视频数据帧处理指令。
5.如权利要求1所述的方法,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器调用DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
6.如权利要求1至5任一所述的方法,其特征在于,还包括:所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,所述虚拟显示驱动接收所述视频播放器发送的视频硬件加速能力查询请求;所述虚拟显示驱动向所述视频播放器发送查询请求响应,所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
7.如权利要求6所述的方法,其特征在于,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
8.一种服务器,其特征在于,包括中央处理器和存储器,所述中央处理器与所述存储器通过系统总线连接,当所述服务器运行时,所述中央处理器执行所述存储器存储的计算机执行指令,使所述服务器执行如下步骤:
截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
9.如权利要求8所述的服务器,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
10.如权利要求8所述的服务器,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过DirectX运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令,所述DirectX运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
11.如权利要求8所述的服务器,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器通过DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述DirectX运行库截获所述视频数据帧和所述视频数据帧处理指令。
12.如权利要求8所述的服务器,其特征在于,所述截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,具体包括:
当所述视频播放器调用DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
13.如权利要求8至12任一所述的服务器,其特征在于,还用于执行:所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,所述虚拟显示驱动接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
14.如权利要求13所述的服务器,其特征在于,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
15.一种视频重定向系统,包括如权利要求8至14任一所述的服务器和所述客户端,其中,所述客户端用于根据所述视频数据帧处理指令对所述视频数据帧进行处理。
16.一种服务器,其特征在于,包括:
截获单元,用于截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;其中,所述视频数据帧是由所述视频播放器对加载的视频文件解复用获得的;所述视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
发送单元,用于向客户端发送截获的所述视频数据帧和所述视频数据帧处理指令,以使所述客户端根据所述视频数据帧处理指令对所述视频数据帧进行处理。
17.如权利要求16所述的服务器,其特征在于,所述截获单元具体为所述虚拟显示驱动;所述虚拟显示驱动截获所述视频数据帧和所述视频数据帧处理指令。
18.如权利要求16所述的服务器,其特征在于,所述截获单元具体为动态链接库,当所述视频播放器通过DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令,所述DirectX运行库调用所述虚拟显示驱动对所述视频数据帧进行处理时,所述动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
19.如权利要求16所述的服务器,其特征在于,所述截获单元具体为DirectX运行库,当所述视频播放器通过所述DirectX运行库向所述虚拟显示驱动发送的所述视频数据帧和所述视频数据帧处理指令时,所述DirectX运行库截获所述视频数据帧和所述视频数据帧处理指令。
20.如权利要求16所述的服务器,其特征在于,所述截获单元具体为动态链接库,当所述视频播放器调用DirectX运行库向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令时,所述动态链接库截获所述视频数据帧和所述视频数据帧处理指令。
21.如权利要求16至20任一所述的服务器,其特征在于,所述虚拟显示驱动还用于所述视频播放器向所述虚拟显示驱动发送所述视频数据帧和所述视频数据帧处理指令之前,接收所述视频播放器发送的视频硬件加速能力查询请求,所述虚拟显示驱动向所述视频播放器发送查询请求响应;所述查询请求响应表明所述虚拟显示驱动支持视频硬件加速。
22.如权利要求21所述的服务器,其特征在于,所述虚拟显示驱动向所述视频播放器发送查询请求响应,具体包括:
所述虚拟显示驱动根据所述视频硬件加速能力查询请求获取所述视频播放器的信息;
所述虚拟显示驱动根据所述视频播放器的信息,与支持视频重定向的视频播放器列表进行匹配;
如果所述视频播放器的信息与所述支持视频重定向的视频播放器列表中视频播放器的信息匹配,则所述虚拟显示驱动向所述视频播放器发送所述查询请求响应;其中所述支持视频重定向的视频播放器列表包含支持视频重定向的视频播放器的信息。
23.一种视频重定向系统,包括如权利要求16至22任一所述的服务器和所述客户端,其中,所述客户端用于根据所述视频数据帧处理指令对所述视频数据帧进行处理。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2012/086499 WO2014089793A1 (zh) | 2012-12-13 | 2012-12-13 | 一种视频重定向的方法、装置、系统及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103283250A CN103283250A (zh) | 2013-09-04 |
CN103283250B true CN103283250B (zh) | 2015-01-21 |
Family
ID=49064294
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280002716.4A Active CN103283250B (zh) | 2012-12-13 | 2012-12-13 | 一种视频重定向的方法、装置、系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103283250B (zh) |
WO (1) | WO2014089793A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103957445A (zh) * | 2014-03-28 | 2014-07-30 | 山东乾云启创信息科技有限公司 | 一种基于应用虚拟化技术的视频重定向系统及方法 |
CN104239121B (zh) * | 2014-08-28 | 2017-11-21 | 浙江云巢科技有限公司 | 显卡重定向系统和利用该系统实现图形显示的方法 |
CN105740081A (zh) * | 2014-12-12 | 2016-07-06 | 华为技术有限公司 | 客户端、usb设备及显示处理系统和方法 |
CN106034241B (zh) * | 2015-03-19 | 2019-04-26 | 华为技术有限公司 | 一种多媒体重定向的方法、客户端、服务器和系统 |
CN106550001B (zh) * | 2015-09-23 | 2021-02-23 | 中兴通讯股份有限公司 | 一种重定向的方法及装置 |
CN105611394B (zh) * | 2015-12-21 | 2018-11-06 | 福建时迅信息科技有限公司 | Vdi环境下的视频重定向方法及系统 |
US10979470B2 (en) | 2015-12-28 | 2021-04-13 | Industrial Technology Research Institute | Server device, client device and dynamic image transmission method for virtual desktop infrastructure |
CN106658070B (zh) * | 2017-01-19 | 2020-02-21 | 深圳市云点科技有限公司 | 视频重定向的方法和装置 |
CN108804068B (zh) * | 2017-05-05 | 2021-01-12 | 晶涌科技股份有限公司 | 音频装置重导向系统的客户端及相关音频装置重导向方法 |
CN107302458B (zh) * | 2017-07-03 | 2023-05-30 | 武汉攀升鼎承科技有限公司 | 一种分布式桌面云结构及实现方法 |
CN107920259A (zh) * | 2017-10-31 | 2018-04-17 | 深信服科技股份有限公司 | 虚拟化平台视频播放加速方法、虚拟机服务器及存储介质 |
CN110022497A (zh) * | 2018-01-10 | 2019-07-16 | 中兴通讯股份有限公司 | 视频播放方法及装置、终端设备及计算机可读存储介质 |
CN108810583A (zh) * | 2018-06-26 | 2018-11-13 | 中国联合网络通信集团有限公司 | 桌面虚拟化环境下视频流传输的方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968395A (zh) * | 2005-11-17 | 2007-05-23 | 腾讯科技(深圳)有限公司 | 一种视频图像的视窗切换控制方法及系统 |
CN1972402A (zh) * | 2005-11-24 | 2007-05-30 | 腾讯科技(深圳)有限公司 | 一种视频通信画面显示控制装置及方法 |
CN101390397A (zh) * | 2006-02-24 | 2009-03-18 | 微软公司 | 加速视频编码 |
CN102547394A (zh) * | 2011-12-27 | 2012-07-04 | 福建升腾资讯有限公司 | Vdi环境下云接入设备通用的音视频重定向方法 |
-
2012
- 2012-12-13 CN CN201280002716.4A patent/CN103283250B/zh active Active
- 2012-12-13 WO PCT/CN2012/086499 patent/WO2014089793A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1968395A (zh) * | 2005-11-17 | 2007-05-23 | 腾讯科技(深圳)有限公司 | 一种视频图像的视窗切换控制方法及系统 |
CN1972402A (zh) * | 2005-11-24 | 2007-05-30 | 腾讯科技(深圳)有限公司 | 一种视频通信画面显示控制装置及方法 |
CN101390397A (zh) * | 2006-02-24 | 2009-03-18 | 微软公司 | 加速视频编码 |
CN102547394A (zh) * | 2011-12-27 | 2012-07-04 | 福建升腾资讯有限公司 | Vdi环境下云接入设备通用的音视频重定向方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014089793A1 (zh) | 2014-06-19 |
CN103283250A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103283250B (zh) | 一种视频重定向的方法、装置、系统 | |
US11909820B2 (en) | Method and apparatus for execution of applications in a cloud system | |
CN113457160B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US20180219929A1 (en) | Method and system for distributed processing, rendering, and displaying of content | |
WO2020238441A1 (zh) | 多端投屏方法、计算机设备及存储介质 | |
CN111258526B (zh) | 投屏方法和系统 | |
CN104067627B (zh) | 一种视频重定向的方法、装置、系统及计算机可读介质 | |
CN109309842B (zh) | 直播数据处理方法和装置、计算机设备和存储介质 | |
JP2009506717A (ja) | 拡張可能な機能セットを有する可搬型遠隔装置 | |
CN111803940A (zh) | 游戏的处理方法、装置、电子设备及计算机可读存储介质 | |
CN111478930B (zh) | Stb云化方法、系统、瘦stb、虚拟stb及平台、存储介质 | |
CN103841389A (zh) | 一种视频播放方法及播放器 | |
CN113542757A (zh) | 云应用的图像传输方法、装置、服务器及存储介质 | |
CN111988392A (zh) | 一种基于云业务的资源分配方法、相关装置、设备及系统 | |
CN114501062A (zh) | 视频渲染协同方法、装置、设备及存储介质 | |
CN111569417A (zh) | 一种云游戏的外设数据传输方法及系统 | |
US11936928B2 (en) | Method, system and device for sharing contents | |
CN103873924B (zh) | 一种视频重定向的方法、装置、系统 | |
CN115065684B (zh) | 数据处理方法、装置、设备以及介质 | |
KR102199270B1 (ko) | 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치 | |
CN114398018A (zh) | 画面显示方法、装置、存储介质及电子设备 | |
CN104618733A (zh) | 图像远程投射方法和相关装置 | |
US10560727B2 (en) | Server structure for supporting multiple sessions of virtualization | |
CN107707930B (zh) | 视频处理方法、装置及系统 | |
CN115037978B (zh) | 投屏方法及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220224 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |