CN104067627B - 一种视频重定向的方法、装置、系统及计算机可读介质 - Google Patents

一种视频重定向的方法、装置、系统及计算机可读介质 Download PDF

Info

Publication number
CN104067627B
CN104067627B CN201380000046.7A CN201380000046A CN104067627B CN 104067627 B CN104067627 B CN 104067627B CN 201380000046 A CN201380000046 A CN 201380000046A CN 104067627 B CN104067627 B CN 104067627B
Authority
CN
China
Prior art keywords
data frame
video data
video
client
instruction
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
CN201380000046.7A
Other languages
English (en)
Other versions
CN104067627A (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104067627A publication Critical patent/CN104067627A/zh
Application granted granted Critical
Publication of CN104067627B publication Critical patent/CN104067627B/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/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements

Abstract

本发明实施例通过截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,并且根据客户端是否支持视频数据帧解码,将视频数据帧、视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,或者将解码后的视频数据帧、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,从而可以在客户端实现视频数据帧后处理,保证用户视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不需要依赖某一种特定的视频播放器。

Description

一种视频重定向的方法、装置、系统及计算机可读介质
技术领域
本发明涉及信息技术领域,特别涉及一种视频重定向的方法、装置、系统及计算机可读介质。
背景技术
随着计算机技术的不断发展,远程桌面成为一种流行技术。远程桌面技术通过登陆到远程服务器,将该远程服务器屏幕显示的内容传递到本地客户端进行显示。远程桌面应用并不仅指远程的屏幕显示,还可以包含远程视频传送。
现有技术中,在使用远程桌面中的视频播放器播放视频文件时,使用基于公司推出的框架的多媒体播放器,在远程服务器上通过该视频播放器加载视频文件后,可以从中的Filter截获未解码的视频数据,在客户端的框架中也插入Filter,接收远程服务器发送的视频数据进行解码显示,同时将视频数据显示信息发送到客户端,但是该视频重定向方案需要依赖公司的 视频播放器,并且不能对视频数据进行后处理,从而影响用户体验。
发明内容
本发明实施例公开了一种视频重定向的方法、装置、系统及计算机可读介质,以实现视频数据帧后处理。
第一方面,本发明实施例公开了一种视频重定向的方法,包括:
截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
结合本发明第一方面实施例,在第一种可能的实施方式中,还包括:当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
结合本发明第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
结合本发明第一方面的实施例,在第三种可能的实施方式中,还包括当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
结合本发明第一方面实施例,或第一方面的第三种可能的实施方式,在第四种可能的实施方式中,还包括:当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
结合本发明第一方面或第一方面的第一至第四种任一可能的实施方式,在第五种可能的实施方式中,还包括:所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
结合本发明第一方面的第一种、第二种或第五种可能的实施方式,在第六种可能的实施方式中,还包括:根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
结合本发明第一方面,或第一至第六种任一可能的实施方式,在第七种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令,具体为所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
第二方面,本发明实施例公开了一种服务器,包括:
截获单元,用于截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
发送单元,用于当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
结合本发明第二方面,在第一种可能的实施方式中,还包括转换单元,所述转换单元用于当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
结合本发明第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述转换单元具体为所述虚拟显示驱动,则所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
结合本发明第二方面的实施例,在第三种可能的实施方式中,还包括解码单元,用于当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
结合本发明第二方面或第二方面的第三种可能的实施方式,在第四种可能的实施方式中,还包括压缩单元,所述压缩单元用于当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
结合本发明第二方面,或者第二方面的第一至第四种任一可能的实施方式,在第五种可能的实施方式中,还包括获取单元,所述获取单元用于所述截获单元截获所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
结合本发明第二方面的第一种、第二种或第五种可能的实施方式,在第六种可能的实施方式中,所述获取单元还用于根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
结合本发明第二方面,或者第二方面的第一至第六种任一可能的实施方式,在第七种可能的实施方式中,所述截获单元具体为虚拟显示驱动,所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
第三方面,本发明实施例公开了一种服务器,包括存储器和中央处理器,所述存储器和所述中央处理器通过系统总线相连,所述存储器存储计算机可执行指令,当所述服务器运行时,所述中央处理器执行所述存储器存储的计算机可执行指令,使所述服务器执行如下步骤:
截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
结合本发明第三方面的实施例,在第一种可能的实施方式中,还包括:当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
结合本发明第三方面的第一种可能的实施方式,在第二种可能的实施方式中,所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
结合本发明第三方面的实施例,在第三种可能的实施方式中,还包括所述当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
结合本发明第三方面或第三方面的第三种可能的实施方式,在第四种可能的实施方式中,还包括:当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送所述第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
结合本发明第三方面,或者第三方面的第一至第四种任一可能的实施方式,在第五种可能的实施方式中,还包括:所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
结合本发明第三方面的第一、第二或第五种可能的实施方式,在第六种可能的实施方式中,还包括:根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
结合本发明第三方面,或者第三方面的第一至第六种任一可能的实施方式,在第七种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令,具体为所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
第四方面,本发明实施例公开了一种视频重定向系统,包括客户端和本发明实施例第二方面任一所述的服务器。
第五方面,本发明实施例公开了一种视频重定向系统,包括客户端和本发明实施例第三方面任一所述的服务器。
第六方面,本发明实施例公开了一种计算机可读存储介质,当计算机执行所述计算机可读存储介质时,所述计算机执行如下步骤:截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
结合本发明第六方面,在第一种可能的实施方式中,还包括:当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
结合本发明第六方面的第一种可能的实施方式,在第二种可能的实施方式中,所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
结合本发明第六方面,在第三种可能的实施方式中,还包括当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
结合本发明第六方面或第六方面的第三种可能的实施方式,在第四种可能的实施方式中,还包括:当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
结合本发明第六方面,或者第六方面的第一至第四种任一可能的实施方式,在第五种可能的实施方式中,还包括:所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
结合本发明第六方面的第一、第二或第五种可能的实施方式,在第六种可能的实施方式中,还包括:根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
结合本发明第六方面,或者本发明第六方面的第一至第六种任一可能的实施方式,在第七种可能的实施方式中,所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令,具体为所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
本发明实施例通过截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,并且根据客户端是否支持视频数据帧解码,将视频数据帧、视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,或者将解码后的视频数据帧、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,从而可以在客户端实现视频数据帧后处理,保证用户视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不需要依赖某一种特定的视频播放器。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例应用场景系统示意图;
图2为本发明实施例远程桌面服务器结构示意图;
图3为本发明实施例视频数据帧后处理流程图;
图4a和图4b为本发明实施例视频数据帧后处理效果图;
图5为本发明实施例视频数据帧呈现效果图;
图6a、6b、6c、6d为本发明实施例虚拟桌面结构示意图;
图7为本发明实施例视频重定向流程图;
图8为本发明实施例服务器结构示意图;
图9为本发明实施例系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
远程桌面环境中,客户端发起视频播放请求,服务器根据客户端的视频播放请求,通过视频播放器加载视频文件,将视频文件的视频流传输到客户端,这一过程称为视频重定向。本发明实施例中的服务器可以为普通个人计算机或其他终端,也可以为商业服务器等,在这里并不具体限定,本发明实施例以向客户端提供基于操作系统平台的远程桌面服务为例对发明方案进行详细描述。但是本发明方案并不仅限于操作系统,根据本发明方案,同样可以扩展到其他常见的系统平台,如操作系统等。
本发明实施例公开了视频重定向的方法,应用于远程桌面场景。远程桌面场景通常由本地计算机和远程计算机组成。本地计算机通过访问远程计算机,将远程计算机桌面传送到本地计算机。本地计算机,即本发明实施例中的客户端;远程计算机,即本发明实施例中的服务器。本发明实施例中的视频重定向是指将服务器上的视频文件的视频数据流传送到客户端。其中一种远程桌面场景为虚拟桌面基础架构场景,但是本发明并不局限于图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,加载视频文件。用户使用客户端101a登陆到虚拟机205a时,向虚拟机205a提供客户端101a的视频数据帧处理能力,其中,视频数据帧处理能力包括视频数据帧解码能力,还向虚拟机205a提供客户端101a支持的视频数据帧的视频编码格式信息,比如支持H.264、AVI和FLV等视频编码格式的视频文件。本发明实施例以观看本地视频为例,通过桌面协议服务端335接收到来自客户端101a的视频播放请求,视频播放器332根据该视频播放请求,加载视频文件。视频播放器332对加载的视频文件解复用获得视频数据帧。视频播放器332在初始化时需要确定虚拟机205a是否支持视频硬件加速功能,视频播放器332向虚拟显示驱动334发送视频硬件加速能力查询请求。视频硬件加速是指利用计算机硬件代替视频播放器的软件算法对视频数据帧进行处理,具体可以包括对视频数据帧进行解码和视频数据帧后处理。
其中关于视频数据帧后处理,本实施例中以的视频硬件加速(Video Acceleration,简称为DXVA)为例,对视频数据帧后处理及经视频数据帧后处理后的视频数据帧呈现进行描述。DXVA不仅仅提供视频数据帧解码处理,还包括视频数据帧后处理,比如图像缩放、色彩空间转换和反交错等。如图3所示,DXVA为视频数据帧后处理流程图。DXVA可以对主数据流和15路分数据流进行处理,将主数据流进行噪声过滤、反交错处理、细节过滤和色彩空间转换后,与经过色彩空间转换后的分数据流进行混合,将混合后的视频数据流进行图像调整,其中图像调整包括亮度、对比度、饱和度调整等。将经过图像调整后的视频数据流进行图像缩放,从而可以调整图像大小。将经图像缩放处理后的数据进行色彩空间转换,从而使视频数据流进行视频数据帧呈现。其中,颜色空间转换,包括由RGB色彩空间转换至YUV色彩空间,或者由YUV色彩空间转换至RGB色彩空间,其中RGB分别表示红、绿和蓝色,YUV分别表示明亮度、色度和浓度,本发明实施例在此不再赘述。
图3描述了视频后处理的过程。实际应用中不一定所有的功能都会用到。实际测试中发现,多数播放器如Media Player,暴风影音影音播放器等默认只使用了图像缩放功能,用以将解码后的视频数据帧从原始大小缩放到播放窗口大小。本发明实施例中进行视频数据帧后处理具体以图像缩放为例,将解码后的视频数据帧进行图像缩放,将原始图像大小调整以适合在显示器上呈现。具体效果如图4a所示。视频数据帧后处理还可以包括透明度混合,如图4b所示。本发明实施例中视频数据帧后处理还可以包括亮度、对比度和饱和度调整。从而使客户端呈现给用户更好的视频体验效果。
将解码后的视频数据帧进行视频数据帧后处理,根据视频数据帧呈现指令,将经视频数据帧后处理的视频数据帧发送到显卡,通过显示器进行呈现。其中,视频数据帧呈现指令携带呈现参数,呈现参数包括要呈现的视频数据帧和视频数据帧的呈现区域。如图5所示,经过视频数据帧后处理之后形成的图像,包括需要呈现的4个区域,分别表示为①、②、③和④,以及桌面图像,在显示器上呈现,其中,桌面图像有一处区域用于对用户呈现“显示设定、音频设定和字幕设定”选项,在呈现视频时,同时需要呈现“显示设定、音频设定和字幕设定”选项区域,而该“显示设定、音频设定和字幕设定”选项区域与①、②、③和④四个呈现区域围成的中间区域对应。因此,①、②、③和④四个呈现区域围成的中间区域对应的视频数据帧不需要呈现,构成①、②、③和④四个呈现区域围成的中间区域的视频数据帧中包含的视频数据帧呈现参数用于确认呈现区域,呈现参数用于定义不呈现该视频数据帧。从而使视频画面与桌面融合为一体,为用户提供更好的视频观看体验。本发明实施例中客户端101a进行视频数据帧后处理原理与此相同,不再赘述。
在本发明实施例中,这里虚拟机205a的硬件,本领域技术人员可以理解,并不是虚拟机205a的真实物理硬件,而是通过虚拟机监视器320a提供的虚拟硬件。视频播放器332向虚拟显示驱动334查询虚拟机205a的视频硬件加速能力,可以通过调用GetCaps函数进行查询,或者,可以通过调用CreateDevice或CreateDecodeDevice函数创建硬件加速设备,确定虚拟机205a是否支持视频硬件加速功能。当视频播放器332启动向虚拟显示驱动334查询虚拟机205a的视频硬件加速能力时,虚拟显示驱动334向视频播放器332返回支持视频硬件加速能力的查询请求响应,视频播放器332根据该查询请求响应确定虚拟机205a支持的视频硬件加速能力,其中,视频硬件加速能力包括视频数据帧解码能力和视频数据帧后处理能力。
视频播放器332向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令,如图6a所示,一种实现方式为虚拟显示驱动334截获视频播放器332发送的视频数据帧和视频数据帧处理指令。
下面具体描述虚拟显示驱动334截获视频数据帧和视频数据帧处理指令的过程。具体地,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,视频播放器332加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,通过视频播放器332调用运行库333启动视频硬件加速,通知虚拟显示驱动334根据视频数据帧处理指令对视频播放器332发送的视频数据帧进行处理。当视频数据帧和视频数据帧处理指令发送至虚拟显示驱动334时,虚拟显示驱动334截获视频数据帧和视频数据帧处理指令。如图6a所示,在操作系统平台,虚拟显示驱动为Display Driver Model(简称WDDM显示驱动模型)或者为XPDisplay Driver Model(简称XPDM显示驱动模型)。具体地,WDDM或XPDM显示驱动模型均包括Display Driver和Miniport Driver两部分模块。本发明实施例中,一种实现方案为虚拟显示驱动的Display Driver模块截获视频数据帧和视频数据帧处理指令。具体地,一种实现方案为WDDM或XPDM显示驱动模型在Display Driver模块中定义视频硬件加速接口,当视频数据帧和视频数据帧处理指令通过该接口时,截获该视频数据帧和视频数据帧处理指令。
本发明实施例截获视频数据帧和视频数据帧处理指令的另一种实施方式,如图6b所示,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,视频播放器332加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,通过视频播放器332调用运行库333启动视频硬件加速,通知虚拟显示驱动334根据视频数据帧处理指令对视频播放器332发送的视频数据帧进行处理。运行库333调用所述虚拟显示驱动334对所述视频数据帧进行处理时,即在视频数据帧和视频数据帧处理指令通过运行库333后,到达虚拟显示驱动334之前,动态链接库截获该视频数据帧和视频数据帧处理指令。具体地,其中一种动态链接库实现方式为采用Hook技术截获运行库333对虚拟显示驱动334的调用,需要实现一个对虚拟显示驱动334Hook的动态链接库文件(dll文件),并在注册表中将其设为最先加载,以此拦截运行库333对虚拟显示驱动334的调用,从而实现视频数据帧和视频数据帧处理指令的截获。
本发明实施例截获视频数据帧和视频数据帧处理指令的另一种实施方式,如图6c所示,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,视频播放器332加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,通过视频播放器332调用运行库333向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令,启动视频硬件加速,通知虚拟显示驱动334对视频播放器332发送的视频数据帧进行处理。在视频数据帧和视频数据帧处理指令通过运行库333时,运行库截获该视频数据帧和视频数据帧处理指令。
本发明实施例截获视频数据帧和视频数据帧处理指令的另一种实施方式,如图6d所示,虚拟机205a中的视频播放器332根据对应的客户端101a发送的视频播放请求,视频播放器332加载视频文件之后,开启视频硬件加速,向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令。视频播放器332加载视频文件后,对加载后的视频文件,即对视频数据流解复用,获得其中的视频数据帧。具体地,就视频播放而言,在运行库333中定义了视频硬件加速接口,视频播放器332调用运行库333启动视频硬件加速,发送视频数据帧和视频数据帧处理指令时,即视频数据帧和视频数据帧处理指令到达运行库333之前,动态链接库截获视频数据帧和视频数据帧处理指令。为此,需要实现一个对运行库333Hook的动态链接库文件(dll文件),并在注册表中将其设为最先加载,以此截获视频播放器332对运行库333的调用,从而实现视频数据帧和视频数据帧处理指令的截获。
在上述图6a、图6b、图6c和图6d四种截获视频播放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令的方案中,视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧解码和视频数据帧后处理,并且获取客户端101a支持视频数据帧解码和视频播放器332向虚拟显示驱动334发送的视频数据帧的视频编码格式时,截获视频数据帧和视频数据帧处理指令,将截获的视频数据帧和视频数据帧发送到桌面协议服务端335。桌面协议服务端335将截获的视频数据帧和视频数据帧处理指令发送到客户端101a。其中,视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令。由于服务器204a中的虚拟机205a并没有根据视频数据帧处理指令对视频数据帧进行处理,因此,节约了服务器的计算资源和网络传输带宽,充分利用了客户端的计算资源。本实施例适用于如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当客户端101a支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端101a根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧。
在上述图6a、图6b、图6c和图6d四种截获视频播放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令的方案中,视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧解码和视频数据帧后处理,并且客户端101a支持视频数据帧解码,但是不支持视频播放器332向虚拟显示驱动334发送的视频数据帧的视频编码格式时,截获视频数据帧和视频数据帧处理指令,其中视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,桌面协议服务端335接收截获的视频数据帧,桌面协议服务端335的视频编解码模块根据视频数据帧解码指令对所述视频数据帧进行解码,根据客户端101a支持的视频数据帧的视频编码格式对所述解码的视频数据帧进行编码,生成新的视频数据帧解码指令,所述新的视频数据帧解码指令包含重新编码后的视频数据帧的视频编码格式参数。发送重新编码后的视频数据帧和视频数据帧处理指令到客户端101a,所述视频数据帧处理指令包括、视频数据帧后处理指令、视频数据帧呈现指令和视频数据帧解码指令,其中,视频数据帧解码指令包含重新编码后的视频数据帧的视频编码格式参数。从而使得客户端能够根据自身的视频编码格式处理能力对所述重新编码后的视频数据帧的进行解码。由于服务器204a中的虚拟机205a并没有根据视频数据帧后处理指令对视频数据帧进行处理,因此节约了服务器的计算资源和网络传输带宽,充分利用了客户端的计算资源。本实施例适用于如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当客户端101a支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端101a根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧。
在另一种实施方式中,在如图6a所示的虚拟显示驱动334截获视频播放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令的方案中,视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧解码和视频数据帧后处理,并且客户端101a支持视频数据帧解码,但是不支持视频播放器332向虚拟显示驱动334发送的视频数据帧的视频编码格式时,所述虚拟显示驱动334中的视频编解码模块根据截获的视频数据帧解码指令对所述截获的视频数据帧进行解码,根据客户端101a支持的视频数据帧的视频编码格式对所述解码的视频数据帧进行编码,生成新的视频数据帧解码指令,所述新的视频数据帧解码指令包含重新编码后的视频数据帧的视频编码格式参数,所述视频数据帧处理指令包括、视频数据帧后处理指令、视频数据帧呈现指令和视频数据帧解码指令,其中,视频数据帧解码指令包含重新编码后的视频数据帧的视频编码格式参数。从而使得客户端能够根据自身的视频编码格式处理能力对所述重新编码后的视频数据帧的进行解码。桌面协议服务端335发送重新编码后的视频数据帧和视频数据帧处理指令到客户端101a,所述视频数据帧处理指令包括、视频数据帧后处理指令、视频数据帧呈现指令和视频数据帧解码指令,其中,视频数据帧解码指令包含重新编码后的视频数据帧的视频编码格式参数。从而使得客户端能够根据自身的视频编码格式处理能力对所述重新编码后的视频数据帧的进行解码。同时服务器204a上的虚拟机205a没有根据视频数据帧后处理指令对视频数据帧进行处理,而是由客户端处理,充分利用了客户端的计算资源,同时节省了服务器的计算资源。本实施例适用于如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当客户端101a支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端101a根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧。
在上述图6a、图6b、图6c和图6d四种截获视频播放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令的方案中,当客户端101a不支持视频数据帧解码,并且视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧后处理但不支持视频数据帧解码时,视频播放器332加载视频文件后,对视频文件解复用,获取视频数据帧,视频播放器332对所述视频数据帧进行解码,获得解码后的视频数据帧,视频播放器332向虚拟显示驱动334发送解码后的视频数据帧和视频数据帧处理指令;其中视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令。截获视频播放器332发送的解码后的视频数据帧和视频数据帧处理指令,桌面协议服务端335发送解码后的视频数据帧和视频数据帧处理指令至客户端101a。为减少网络传输带宽,桌面协议服务端335发送解码后的视频数据帧和视频数据帧处理指令之前,可以压缩解码后的视频数据帧,具体可以由桌面协议服务端335中的压缩模块来实现。由于服务器204a中的虚拟机205a并没有根据视频数据帧后处理指令对视频数据帧进行处理,因此节约了服务器的计算资源和网络传输带宽,充分利用了客户端的计算资源。本实施例适用如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当所述客户端101a不支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端101a根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令。
在另一种实施方式中,在如图6a所示的虚拟显示驱动334截获视频播放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令的方案中,当客户端101a不支持视频数据帧解码,并且视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧后处理但不支持视频数据帧解码时,视频播放器332加载视频文件后,对视频文件解复用,获取视频数据帧,视频播放器332对所述视频数据帧进行解码,获得解码后的视频数据帧,视频播放器332向虚拟显示驱动334发送解码后的视频数据帧和视频数据帧处理指令;其中视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令。截获视频播放器332发送的解码后的视频数据帧和视频数据帧处理指令,桌面协议服务端335发送解码后的视频数据帧和视频数据帧处理指令至客户端101a。为减少网络传输带宽,虚拟显示驱动334截获解码后的视频数据帧和视频数据帧处理指令,可以压缩解码后的视频数据帧,具体可以由虚拟显示驱动334中的压缩模块来实现。由于服务器204a中的虚拟机205a并没有根据视频数据帧后处理指令对视频数据帧进行处理,因此节约了服务器的计算资源和网络传输带宽,充分利用了客户端的计算资源。本实施例适用如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当所述客户端101a不支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端101a根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令。
在上述图6a图6b、图6c和图6d四种截获视频播放器332向虚拟显示驱动334发送的视频数据帧和视频数据帧处理指令的方案中,当客户端101a不支持视频数据帧解码,并且视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧解码和视频数据帧后处理时,视频播放器332加载视频文件后,对视频文件解复用,获取视频数据帧,视频播放器332向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令;其中视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令。截获视频播放器332发送的视频数据帧和视频数据帧处理指令,桌面协议服务端335根据视频数据帧处理指令中的视频数据帧解码指令对视频数据帧进行解码,桌面协议服务端335发送解码后的视频数据帧和视频数据帧处理指令至客户端101a,其中视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令。为减少网络传输带宽,桌面协议服务端335可以压缩解码后的视频数据帧,具体可以由桌面协议服务端335中的压缩模块来实现,也可以由虚拟显示驱动334中的压缩模块来实现,然后由桌面协议服务端335发送压缩的解码后的视频数据帧和视频数据帧处理指令至客户端101a。由于服务器204a中的虚拟机205a并没有根据视频数据帧后处理指令对视频数据帧进行处理,因此节约了服务器的计算资源和网络传输带宽,充分利用了客户端的计算资源。本实施例适用如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当所述客户端101a不支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端101a根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的所述第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
在另一种实施方式中,在如图6a所示的方案中,当客户端101a不支持视频数据帧解码,并且视频播放器332向虚拟显示驱动334查询获知虚拟机205a支持视频数据帧解码和视频数据帧后处理时,视频播放器332加载视频文件后,对视频文件解复用,获取视频数据帧,视频播放器332向虚拟显示驱动334发送视频数据帧和视频数据帧处理指令;其中视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令。虚拟显示驱动334截获视频播放器332发送的视频数据帧和视频数据帧处理指令,根据视频数据帧处理指令中的视频数据帧解码指令对视频数据帧进行解码,桌面协议服务端335发送解码后的视频数据帧和视频数据帧处理指令至客户端101a,其中视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令。为减少网络传输带宽,虚拟显示驱动334将截获视频数据帧解码后,可以压缩解码后的视频数据帧,具体可以由虚拟显示驱动334中的压缩模块来实现,也可以由桌面协议服务端335中的压缩模块来实现,然后由桌面协议服务端335发送压缩的解码后的视频数据帧和视频数据帧处理指令至客户端101a。由于服务器204a中的虚拟机205a并没有根据视频数据帧后处理指令对视频数据帧进行处理,因此节约了服务器的计算资源和网络传输带宽,充分利用了客户端的计算资源。本实施例适用如下场景:截获视频播放器332向虚拟显示驱动334发送的第一视频数据帧和第一视频数据帧处理指令;当所述客户端101a不支持视频数据帧解码时,向所述客户端101a发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端101a根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的所述第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
本发明实施例通过截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,并且根据客户端是否支持视频数据帧解码,将视频数据帧、视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,或者将解码后的视频数据帧、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,从而可以在客户端实现视频数据帧后处理,保证用户视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不需要依赖某一种特定的视频播放器。
本发明实施例一种具体的示例性流程图,如图7所示,具体步骤如下:
步骤701:判断客户端是否具有视频数据帧解码能力,并且虚拟机是否支持视频数据帧解码和视频数据帧后处理。
当客户端具有视频数据帧解码能力,并且虚拟机支持视频数据帧解码和视频数据帧后处理时,执行步骤702a;
当客户端不具有视频数据帧解码能力,虚拟机不支持视频数据帧解码但支持视频数据帧后处理,执行步骤702b;
当客户端不具有视频数据帧解码能力,虚拟机支持视频数据帧解码和视频数据帧后处理,执行步骤702c。
步骤702a:截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令;视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
步骤703a:判断客户端是否支持视频播放器发送的视频数据帧的视频编码格式;
当客户端支持视频播放器发送的视频数据帧的视频编码格式时,执行步骤704a;当客户端不支持视频播放器发送的视频数据帧的视频编码格式时,执行步骤704a’。
步骤704a:发送截获的视频数据帧和视频数据帧处理指令到客户端;
步骤704a’:将所述视频数据帧转换为客户端支持的视频编码格式的视频数据帧。
步骤702b:截获视频播放器向虚拟显示驱动发送的解码后的视频数据帧、视频数据帧后处理指令和视频数据帧呈现指令;
步骤703B:可选的,步骤702b之后,压缩截获的解码后的视频数据帧;
步骤704C:发送解码后的视频数据帧和视频数据帧处理指令到客户端;视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令。
步骤702c:截获视频播放器发送的视频数据帧和视频数据帧处理指令;视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令;
步骤703c:根据视频数据帧解码指令对所述视频数据帧进行解码。
可选地,步骤703c之后,还可以继续执行步骤703B和704C。
图7所示的流程图,其具体实现可以参见各实施例基于图6a至图6d的描述,在此不再赘述。
与上述各实施例相对应,本发明实施例提供了一种服务器800,如图8所示,包括截获单元801和发送单元802。其中,截获单元801,用于截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
发送单元802,用于当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
发送单元802,用于当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
本发明实施例通过截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,并且根据客户端是否支持视频数据帧解码,将视频数据帧、视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,或者将解码后的视频数据帧、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,从而可以在客户端实现视频数据帧后处理,保证用户视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不需要依赖某一种特定的视频播放器。
进一步的,还包括转换单元803,所述转换单元803用于当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。一种可能的实施情况,所述转换单元803具体为所述虚拟显示驱动,则所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
本发明实施例提供的服务器800除包括截获单元801和发送单元802,还包括解码单元804,用于当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
本发明实施例提供的服务器800除包含截获单元801和发送单元802外,或服务器800除包含截获单元801、发送单元802和解码单元803外,还包括压缩单元805,所述压缩单元805用于当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧,从而节省网络传输带宽。
本发明上述实施例所述各服务器800还包括获取单元806,所述获取单元806用于所述截获单元801截获所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。进一步的,所述获取单元806还根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
本发明上述实施例所述服务器800,所述截获单元具体为虚拟显示驱动,所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
本发明实施例还提供了一种视频重定向系统900,包括服务器800和客户端1000。其中,服务器800用于截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
当客户端1000支持视频数据帧解码时,向所述客户端1000发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端1000根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端1000不支持视频数据帧解码时,向所述客户端1000发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端1000根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的所述第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
客户端1000用于根据服务器800发送的视频数据帧处理指令对视频数据帧进行处理。
本发明实施例通过截获视频播放器向虚拟显示驱动发送的视频数据帧和视频数据帧处理指令,并且根据客户端是否支持视频数据帧解码,将视频数据帧、视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,或者将解码后的视频数据帧、视频数据帧后处理指令和视频数据帧呈现指令发送到客户端进行处理,从而可以在客户端实现视频数据帧后处理,保证用户视频体验。同时只要服务器侧视频播放器支持视频重定向功能即可实现本发明,不需要依赖某一种特定的视频播放器。
关于本实施例提供的系统900的细节描述可参见服务器800的描述以及如图6a、图6b、图6c、图6d和图7所示的各实施例的描述,在此不再赘述。本发明实施例中提供的服务器800和客户端1000具体可以为普通的计算机、移动终端、工作站或专用服务器等,本发明不作具体限定,具有存储器和至少一个中央处理器,所述存储器与所述至少一个中央处理器通过总线相连,存储器存储计算机指令,所述至少一个中央处理器用于执行存储器中的计算机指令,同时也包含通用的外部接口等实现服务器功能的一些必要组件。其中,存储器中存储的计算机指令的算法可以参照图7所示流程图的描述,具体实现可以参见图6a、图6b、图6c和图6d所示的具体实施例。
本发明实施例提供的基于虚拟桌面的远程桌面架构,本领域技术人员可以意识到,本发明并不限于本实施例的所描述的虚拟桌面架构,对于基于其他类型的虚拟桌面的远程桌面本发明同样适用。另外,本发明并不仅仅适用于基于虚拟桌面的远程桌面架构,同样也适用于其他向远程客户端提供视频数据的应用场景。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所公开的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:NAS(Network Attached Storage)、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (26)

1.一种视频重定向的方法,其特征在于,包括:
截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的所述第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
2.如权利要求1所述的方法,其特征在于,还包括:当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
3.如权利要求2所述的方法,其特征在于,所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
4.如权利要求1所述的方法,其特征在于,还包括:
当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
5.如权利要求1或4所述的方法,其特征在于,还包括:当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;
则向所述客户端发送所述第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
6.如权利要求1至4任一所述的方法,其特征在于,还包括:所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
7.如权利要求2或3所述的方法,其特征在于,还包括:所述当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
8.如权利要求1至4任一所述的方法,其特征在于,所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令,具体为所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
9.一种服务器,其特征在于,包括:
截获单元,用于截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
发送单元,用于当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
10.如权利要求9所述的服务器,其特征在于,还包括转换单元,所述转换单元用于当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
11.如权利要求10所述的服务器,其特征在于,所述转换单元具体为所述虚拟显示驱动,则所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
12.如权利要求9所述的服务器,其特征在于,还包括解码单元,用于当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
13.如权利要求9或12所述的服务器,其特征在于,还包括压缩单元,所述压缩单元用于当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
14.如权利要求9至12任一所述的服务器,其特征在于,还包括获取单元,所述获取单元用于所述截获单元截获所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
15.如权利要求14所述的服务器,其特征在于,所述获取单元还用于根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
16.如权利要求9至12任一所述的服务器,其特征在于,所述截获单元具体为虚拟显示驱动,所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
17.一种服务器,其特征在于,包括存储器和中央处理器,所述存储器和所述中央处理器通过系统总线相连,所述存储器存储计算机可执行指令,当所述服务器运行时,所述中央处理器执行所述存储器存储的计算机可执行指令,使所述服务器执行如下步骤:
截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令;
当客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令,以使所述客户端根据所述第一视频数据帧处理指令对所述第二视频数据帧进行处理,所述第一视频数据帧处理指令包括视频数据帧解码指令、视频数据帧后处理指令和视频数据帧呈现指令,所述第二视频数据帧为所述第一视频数据帧或为所述第一视频数据帧经过视频编码格式转换获得的视频数据帧;
当所述客户端不支持视频数据帧解码时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令,以使所述客户端根据所述第二视频数据帧处理指令对所述第二视频数据帧进行处理,其中,所述第二视频数据帧处理指令包括视频数据帧后处理指令和视频数据帧呈现指令;当所述第一视频数据帧为解码后的视频数据帧时,所述第二视频数据帧为所述第一视频数据帧,所述第二视频数据帧处理指令为所述第一视频数据帧处理指令;当所述第一视频数据帧为未解码的视频数据帧时,所述第二视频数据帧为解码后的第一视频数据帧,所述第一视频数据帧处理指令包括视频数据帧解码指令、所述视频数据帧后处理指令和所述视频数据帧呈现指令。
18.如权利要求17所述的服务器,其特征在于,还包括:当所述客户端支持视频数据帧解码时,并且所述客户端不支持所述视频播放器向所述虚拟显示驱动发送的所述第一视频数据帧的视频编码格式时,将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧;其中,所述第二视频数据帧的视频编码格式为所述客户端支持的视频编码格式。
19.如权利要求18所述的服务器,其特征在于,所述将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧,具体包括:所述虚拟显示驱动将所述第一视频数据帧进行视频编码格式转换,获得所述第二视频数据帧。
20.如权利要求17所述的服务器,其特征在于,还包括当所述客户端不支持视频数据帧解码时,并且当所述第一视频数据帧为未解码的视频数据帧时,向所述客户端发送第二视频数据帧和第二视频数据帧处理指令之前,根据所述第一视频数据帧处理指令中的所述视频数据帧解码指令对所述第一视频数据帧进行解码,以获得所述第二视频数据帧。
21.如权利要求17或20所述的服务器,其特征在于,还包括:当所述客户端不支持视频数据帧解码时,向所述客户端发送所述第二视频数据帧和所述第二视频数据帧处理指令之前,压缩所述第二视频数据帧;则向所述客户端发送所述第二视频数据帧,具体为向所述客户端发送压缩后的第二视频数据帧。
22.如权利要求17至20任一所述的服务器,其特征在于,还包括:所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令之前,获取所述客户端的视频数据帧处理能力;所述客户端的视频数据帧处理能力包括视频数据帧解码能力,以根据所述视频数据帧解码能力,确定所述客户端是否支持视频数据帧解码。
23.如权利要求18或19所述的服务器,其特征在于,还包括:根据所述客户端的视频数据帧处理能力,确定所述客户端支持视频数据帧解码时,向所述客户端发送第二视频数据帧和所述第一视频数据帧处理指令之前,获取所述客户端支持的视频数据帧的视频编码格式信息,以根据所述视频编码格式信息,确定所述客户端是否支持所述第一视频数据帧的视频编码格式。
24.如权利要求17至20任一所述的服务器,其特征在于,所述截获视频播放器向虚拟显示驱动发送的第一视频数据帧和第一视频数据帧处理指令,具体为所述虚拟显示驱动截获所述第一视频数据帧和所述第一视频处理指令。
25.一种视频重定向系统,包括客户端和如权利要求9至16任一所述的服务器。
26.一种视频重定向系统,包括客户端和如权利要求17至24任一所述的服务器。
CN201380000046.7A 2013-02-07 2013-02-07 一种视频重定向的方法、装置、系统及计算机可读介质 Active CN104067627B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/071493 WO2014121477A1 (zh) 2013-02-07 2013-02-07 一种视频重定向的方法、装置、系统及计算机可读介质

Publications (2)

Publication Number Publication Date
CN104067627A CN104067627A (zh) 2014-09-24
CN104067627B true CN104067627B (zh) 2017-08-04

Family

ID=51299186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000046.7A Active CN104067627B (zh) 2013-02-07 2013-02-07 一种视频重定向的方法、装置、系统及计算机可读介质

Country Status (2)

Country Link
CN (1) CN104067627B (zh)
WO (1) WO2014121477A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202615A (zh) * 2014-09-25 2014-12-10 湖北第二师范学院 一种基于云计算的视频重定向方法
CN106034241B (zh) * 2015-03-19 2019-04-26 华为技术有限公司 一种多媒体重定向的方法、客户端、服务器和系统
CN105025359A (zh) * 2015-07-07 2015-11-04 国鼎网络空间安全技术有限公司 一种基于spice协议的远程视频显示方法及系统
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
CN106101794A (zh) * 2016-06-22 2016-11-09 杭州华三通信技术有限公司 一种虚拟桌面视频数据的处理方法、装置及系统
CN106888385A (zh) * 2017-01-17 2017-06-23 武汉噢易云计算股份有限公司 客户端在虚拟化环境下的视频播放方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390397A (zh) * 2006-02-24 2009-03-18 微软公司 加速视频编码
CN101582926A (zh) * 2009-06-15 2009-11-18 中国电信股份有限公司 实现远程媒体播放重定向的方法和系统
CN102158553A (zh) * 2011-03-31 2011-08-17 华为技术有限公司 用于远程桌面的播放多媒体文件的方法和装置
CN102541555A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 一种使用api拦截方式实现远程桌面视频流畅播放的方法
CN102695094A (zh) * 2012-05-15 2012-09-26 福建升腾资讯有限公司 Vdi环境下软硬件一体化音视频重定向的方法
CN102761603A (zh) * 2012-06-07 2012-10-31 福建升腾资讯有限公司 VDI环境下的网页flash视频重定向的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102547394B (zh) * 2011-12-27 2013-10-09 福建升腾资讯有限公司 Vdi环境下云接入设备通用的音视频重定向方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390397A (zh) * 2006-02-24 2009-03-18 微软公司 加速视频编码
CN101582926A (zh) * 2009-06-15 2009-11-18 中国电信股份有限公司 实现远程媒体播放重定向的方法和系统
CN102158553A (zh) * 2011-03-31 2011-08-17 华为技术有限公司 用于远程桌面的播放多媒体文件的方法和装置
CN102541555A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 一种使用api拦截方式实现远程桌面视频流畅播放的方法
CN102695094A (zh) * 2012-05-15 2012-09-26 福建升腾资讯有限公司 Vdi环境下软硬件一体化音视频重定向的方法
CN102761603A (zh) * 2012-06-07 2012-10-31 福建升腾资讯有限公司 VDI环境下的网页flash视频重定向的方法

Also Published As

Publication number Publication date
WO2014121477A1 (zh) 2014-08-14
CN104067627A (zh) 2014-09-24

Similar Documents

Publication Publication Date Title
CN104067627B (zh) 一种视频重定向的方法、装置、系统及计算机可读介质
CN103283250B (zh) 一种视频重定向的方法、装置、系统
CN111399964B (zh) 一种基于视频串流技术的云桌面平台
CN110227259B (zh) 一种数据处理的方法、装置、服务器和系统
CN103023872B (zh) 一种云游戏服务平台
CN105262825A (zh) 基于h.265的spice云桌面传输和展现方法及系统
CN113457160B (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN104159151A (zh) 一种在ott盒子上进行视频截取并处理的装置及方法
CN101854380B (zh) 一种实现跨平台的p2p视频聊天的方法
WO2022257699A1 (zh) 图像画面显示方法、装置、设备、存储介质及程序产品
CN104349177B (zh) 一种在桌面云下转向播放多媒体文件的方法、虚拟机及系统
CN106390449A (zh) 一种基于图形虚拟化技术的云游戏框架
CN103841389A (zh) 一种视频播放方法及播放器
CN107402782A (zh) 一种用于在直播软件中加载插件的方法及装置
CN110876078B (zh) 动画图片的处理方法、装置、存储介质和处理器
CN111901414A (zh) 基于虚拟化环境的安全桌面传输协议的实现方法及实现系统
CN108966006A (zh) 视频的播放方法、浏览器设备及可读存储介质
CN204013943U (zh) 一种在ott盒子上进行视频截取并处理的装置
CN115065684B (zh) 数据处理方法、装置、设备以及介质
CN109040786A (zh) 摄像头数据的传输方法、装置、系统及存储介质
US20150103894A1 (en) Systems and methods to limit lag between a client and a server for remote computing
CN103873924B (zh) 一种视频重定向的方法、装置、系统
EP3334165B1 (en) Video stream storing and video stream reading method and apparatus therefor
CN107613365A (zh) 一种视频播放方法及装置
KR102199270B1 (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
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.