CN106034241B - 一种多媒体重定向的方法、客户端、服务器和系统 - Google Patents
一种多媒体重定向的方法、客户端、服务器和系统 Download PDFInfo
- Publication number
- CN106034241B CN106034241B CN201510124397.XA CN201510124397A CN106034241B CN 106034241 B CN106034241 B CN 106034241B CN 201510124397 A CN201510124397 A CN 201510124397A CN 106034241 B CN106034241 B CN 106034241B
- Authority
- CN
- China
- Prior art keywords
- client
- video
- instruction
- server
- decoder
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000005540 biological transmission Effects 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 22
- 238000012545 processing Methods 0.000 claims description 20
- 230000006378 damage Effects 0.000 claims description 9
- 230000009467 reduction Effects 0.000 claims description 9
- 238000009877 rendering Methods 0.000 claims description 8
- 230000008859 change Effects 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 6
- 239000000306 component Substances 0.000 description 5
- 238000007906 compression Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 241000208340 Araliaceae Species 0.000 description 2
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 2
- 235000003140 Panax quinquefolius Nutrition 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 235000008434 ginseng Nutrition 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2408—Monitoring of the upstream path of the transmission network, e.g. client requests
-
- 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/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
- H04N21/42607—Internal components of the client ; Characteristics thereof for processing the incoming bitstream
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/452—Remote windowing, e.g. X-Window System, desktop virtualisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供一种多媒体重定向的方法、设备和系统,涉及多媒体技术领域,能够解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。具体方案为:服务器接收客户端发送的硬件解码能力,硬件解码能力是客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,服务器在接收到硬件解码能力后,将视频数据还原为标准编码格式的视频码流,服务器将视频码流发送至客户端进行解码并显示。本发明实施例用于基于非Windows操作系统的客户端的多媒体重定向。
Description
技术领域
本发明实施例涉及多媒体技术领域,尤其涉及一种多媒体重定向的方法、设备和系统。
背景技术
基于虚拟桌面基础架构(Virtual Desktop Infrastructure,VDI)的远程桌面技术可以通过本地客户端远程控制服务器的虚拟桌面,从而进行远程屏幕显示、远程声音传送、可插拔硬件映射等操作。在通过远程虚拟桌面进行多媒体文件例如视频文件(视频文件的视频数据可以包括文字、音频、视觉媒体、动画等各种类型的多媒体数据)播放时,服务器通常通过中央处理器(Central Processing Unit,CPU)将视频数据进行软件解码,并将解码后的视频数据传递给显示驱动,而后将解码后的视频数据发送至客户端进行显示,上述过程可以参见图1,其中,服务器的桌面协议服务端根据桌面协议组织网络报文将解码后的视频数据发送至桌面协议客户端。这样以来,由于视频数据需要通过服务器的CPU进行软件解码,使得服务器的CPU、内存等资源占用率较高。
现有技术中,当基于Windows操作系统的客户端将微软视频硬件加速(DirectXVideo Acceleration,DXVA)规范的硬件解码能力发送至基于Windows操作系统的服务器时,服务器可以将该硬件解码能力当作自身的硬件解码能力,又由于客户端具有该硬件解码能力,因而服务器可以不通过CPU对视频数据进行软件解码,而可以通过Windows显示驱动模型(Windows Display Driver Model,WDDM)截取到未解码的视频数据,并将未解码的视频数据通过桌面协议服务端发送至桌面协议客户端进行硬件解码并显示,从而实现视频数据的重定向,该过程可以参见图2。这里的重定向是指,服务器将解码前的视频数据发送至客户端进行解码从而进行视频播放。但现有技术中的重定向方案仅适用于基于Windows操作系统的客户端,不适用于基于Linux、Android、IOS等非Windows操作系统的客户端。
发明内容
本发明实施例提供一种多媒体重定向的方法、设备和系统,能够解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供了一种多媒体重定向的方法,包括:
服务器接收客户端发送的硬件解码能力,所述硬件解码能力是所述客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力;
所述服务器在接收到所述硬件解码能力后,将视频数据还原为标准编码格式的视频码流;
所述服务器将所述视频码流发送至所述客户端进行解码并显示。
结合第一方面,在第一方面的第一种可能的实现方式中,所述DXVA规范的硬件解码能力为视频比特流处理VLD级别。
结合第一方面,在第一方面的第二种可能的实现方式中,所述将视频数据还原为标准编码格式的视频码流包括:
所述服务器从图片缓冲区中获取解码所述视频数据所需要的解码参数信息,所述解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率,并从所述码流缓冲区中获取所述视频数据的视频帧序列;
所述服务器将所述解码参数信息填充到所述标准编码格式对应的结构中;
所述服务器将所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列合成得到所述标准编码格式的视频码流。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能实现的方式中,所述服务器将所述视频码流发送至所述客户端进行解码并显示包括:
所述服务器向所述客户端发送视频帧指令,所述视频帧指令包括所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧;
所述服务器向所述客户端发送所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域。
结合第一方面至第一方面的第三种可能的实现方式中的任意一种,在第一方面的第四种可能实现的方式中,在所述服务器将视频数据还原为标准编码格式的视频码流之前,所述方法还包括:
所述服务器根据所述客户端需要创建的解码器类型构建解码器初始化指令;
所述服务器将所述解码器初始化指令发送至所述客户端,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器,以等待接收视频帧。
结合第一方面的第四种可能实现的方式,在第一方面的第五种可能实现的方式中,所述方法还包括:
所述服务器在发送完所述视频帧之后,向所述客户端发送解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
第二方面,提供一种多媒体重定向的方法,包括:
客户端将其硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,所述客户端包括非Windows操作系统;
所述客户端向服务器发送所述DXVA规范的硬件解码能力;
所述客户端接收所述服务器将视频数据还原为标准编码格式之后的视频码流,进而对所述视频码流进行解码并显示。
结合第二方面,在第二方面的第一种可能实现的方式中,所述客户端将其硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力包括:
所述客户端将所述硬件解码能力按照所述DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
结合第二方面,在第二方面的第二种可能实现的方式中,所述客户端接收所述服务器将视频数据还原为标准编码格式之后的视频码流,进而对所述视频码流进行解码并显示包括:
所述客户端接收所述服务器发送的视频帧指令,所述视频帧指令包括标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧,所述标准编码格式对应的结构中的解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率;
所述客户端接收所述服务器发送的所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域;
所述客户端根据所述视频帧指令和所述渲染指令,对所述视频码流进行解码并显示。
结合第二方面至第二方面的第二种可能的实现方式中的任一种,在第二方面的第三种可能实现的方式中,所述方法还包括:
在所述客户端接收所述视频码流之前,接收所述服务器发送的解码器初始化指令,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器;
在完成解码后,所述客户端接收所述服务器发送的解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
第三方面,提供一种服务器,包括:
接收单元,用于接收客户端发送的硬件解码能力,所述硬件解码能力是所述客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力;
还原单元,用于在所述接收单元接收到所述硬件解码能力后,将视频数据还原为标准编码格式的视频码流;
发送单元,用于将所述视频码流发送至所述客户端进行解码并显示。
结合第三方面,在第三方面的第一种可能的实现方式中,所述DXVA规范的硬件解码能力为视频比特流处理VLD级别。
结合第三方面,在第三方面的第二种可能的实现方式中,所述还原单元具体用于:
从图片缓冲区中获取解码所述视频数据所需要的解码参数信息,所述解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率,并从所述码流缓冲区中获取所述视频数据的视频帧序列;
将所述解码参数信息填充到所述标准编码格式对应的结构中;
将所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列合成得到所述标准编码格式的视频码流。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能实现的方式中,所述发送单元具体用于:
向所述客户端发送视频帧指令,所述视频帧指令包括所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧;
向所述客户端发送所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域。
结合第三方面至第三方面的第三种可能的实现方式中的任意一种,在第三方面的第四种可能实现的方式中,还包括:
构建单元,用于根据所述客户端需要创建的解码器类型构建解码器初始化指令;
所述发送单元还用于,将所述解码器初始化指令发送至所述客户端,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器,以等待接收视频帧。
结合第三方面的第四种可能实现的方式,在第三方面的第五种可能实现的方式中,所述发送单元还用于:
在发送完所述视频帧之后,向所述客户端发送解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
第四方面,提供一种客户端,包括:
处理单元,用于将所述客户端的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,所述客户端包括非Windows操作系统;
发送单元,用于向服务器发送所述DXVA规范的硬件解码能力;
接收单元,用于接收所述服务器将视频数据还原为标准编码格式之后的视频码流;
所述处理单元还用于,对所述接收单元接收到的所述视频码流进行解码并显示。
结合第四方面,在第四方面的第一种可能实现的方式中,所述处理单元具体用于:
将所述硬件解码能力按照所述DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
结合第四方面,在第四方面的第二种可能实现的方式中,所述接收单元具体用于:
接收所述服务器发送的视频帧指令,所述视频帧指令包括标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧,所述标准编码格式对应的结构中的解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率;
接收所述服务器发送的所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域;
所述处理单元具体用于,根据所述接收单元接收到的所述视频帧指令和所述渲染指令,对所述视频码流进行解码并显示。
结合第四方面至第四方面的第二种可能的实现方式中的任意一种,在第四方面的第三种可能实现的方式中,所述接收单元还用于:
在接收所述视频码流之前,接收所述服务器发送的解码器初始化指令,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器;
在完成解码后,接收所述服务器发送的解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
第五方面,提供一种系统,包括如第三方面所述的服务器和如第四方面所述的客户端。
本发明实施例提供一种多媒体重定向的方法、设备和系统,基于非Windows操作系统的客户端通过将其硬件解码能力转换为基于Windows操作系统的服务器能够识别的DXVA规范的硬件解码能力并发送至服务器,服务器以此硬件解码能力当作自身的硬件解码能力从而不对视频数据进行软件解码,而是将未解码的视频数据还原为标准编码格式的视频码流并发送至实际具有硬件解码能力的客户端,以便于基于非Windows操作系统的客户端也能够对该标准编码格式的视频码流进行解码并显示,以此来实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中客户端远程控制服务器进行视频播放时的交互示意图;
图2为现有技术中基于Windows操作系统的客户端和服务器进行多媒体重定向时的交互示意图;
图3为本发明实施例提供的一种多媒体重定向的方法流程图;
图4为本发明另一实施例提供的一种多媒体重定向的方法流程图;
图5为现有技术中WDDM的模型结构示意图;
图6为本发明实施例提供的H.264标准编码格式的码流结构示意图;
图7为本发明实施例提供的服务器向客户端发送的消减后的指令序列;
图8为本发明实施例提供的一种服务器与客户端的交互流程图;
图9为本发明实施例提供的一种服务器与客户端的交互示意图;
图10为本发明另一实施例提供的一种多媒体重定向的方法流程图;
图11本发明实施例提供的一种服务器结构示意图;
图12本发明实施例提供的另一种服务器结构示意图;
图13本发明实施例提供的一种客户端结构示意图;
图14本发明另一实施例提供的一种服务器结构示意图;
图15本发明另一实施例提供的一种客户端结构示意图;
图16本发明实施例提供的一种系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
基于VDI的远程桌面技术将运行Windows操作系统的服务器桌面进行虚拟化,客户端与服务器的虚拟桌面进行连接从而实现远程屏幕显示、远程视频播放等,而不是为每个客户端都配置一台运行Windows操作系统的物理桌面,客户端访问远程虚拟桌面类似于访问传统的本地桌面。服务器虚拟桌面通常通过两种方式来实现:服务器上运行若干Windows虚拟机(Virtual Machine,VM),客户端以一对一的方式连接到VM,其中的VM是指通过软件模拟的具有完整硬件系统功能的,运行在一个隔离环境中的完整计算机系统;服务器上安装Windows刀片,从而构成若干个刀片式服务器,客户端以一对一的方式连接到刀片服务器。本发明实施例将以第一种实现方式为例进行说明。
在进行远程视频文件播放时,可以通过两种方案对视频数据进行解码:通过CPU进行软件解码的方案;通过硬件模块进行硬件解码的方案。例如,可以通过图形芯片厂商提供的图形处理器(Graphic Processing Unit,GPU)进行硬件解码,从而通过硬件模块替代软件算法以充分利用硬件所固有的快速特性实现视频硬件加速,增强计算机的视频性能。其中,GPU通常为显卡的核心部件。
DXVA规范是微软公司专门定制的视频加速规范,DXVA规范中规定了四种GPU的硬件解码能力级别:视频比特流处理VLD级别、帧内压缩IDC级别、帧间压缩MoComp级别、后期处理PostProc级别。其中,VLD级别是最高级别的硬件解码能力,可以包含IDCT级别、MoComp级别和PostProc级别的硬件解码能力。具有VLD级别的硬件解码能力的GPU可以对未解码的视频数据流进行解析,而后进行IDCT、MoComp、PostProc等处理,从而实现硬件解码。而IDCT级别、MoComp级别和PostProc级别的硬件解码能力,则需要CPU先对未解码的视频数据流进行解析,得到若干宏块,而后通过GPU对宏块继续进行相应的解码处理。因而,具有VLD级别的硬件解码能力的GPU可以直接对未解码的视频数据流进行解码处理。基于微软Windows操作系统的客户端具有的硬件解码能力可以分为以上四个级别。
在视频文件播放前,视频文件中的视频数据为标准编码格式的视频码流,这里的标准编码格式可以是视频编码标准中规定的编码格式,例如可以包括由视频编码专家组(Video Coding Experts Group,VCEG)和动态图像专家组(Moving Picture ExpertsGroup,MPEG)联合组成的联合视频组(Joint Video Team,JVT)提出的高度压缩数字视频编解码器标准H.264规定的标准编码格式,运动图像专家组(Moving Picture ExpertsGroup,MPEG)制定的基于数字存储媒体运动图像和语音的压缩标准MPEG-2规定的标准编码格式,微软开发的视讯编解码器(Video Codec 1,VC-1)规定的标准编码格式,音视频编码标准(Audio Video coding Standard,AVS)规定的标准编码格式以及其它多种标准编码格式,本发明实施例将以视频文件中的标准编码格式的视频码流为H.264标准编码格式(即H.264规定的标准编码格式)为例进行说明。在开始进行视频文件播放后,现有技术中服务器对标准编码格式的视频码流进行解析,播放器等应用程序按照多媒体编程接口(DirecteXtension,DX)运行库提供的接口,传入相应的参数进行接口调用,最终调用到WDDM驱动中并发送至客户端的视频数据不再是标准编码格式的视频码流。
在本申请文件以下实施例的描述中,基于非Windows操作系统的客户端采用基于VDI的远程桌面技术与基于Windows操作系统的服务器连接,从而进行远程多媒体文件播放。其中,客户端具体可以远程登录服务器中运行的虚拟机,并通过虚拟机中的WDDM、播放器、DX运行库、桌面协议服务端等部件进行多媒体重定向,从而进行远程多媒体文件播放。
参见图3,本发明实施例提供一种多媒体重定向的方法,可以包括以下主要步骤:
101、服务器接收客户端发送的硬件解码能力,硬件解码能力是客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力。
102、服务器在接收到硬件解码能力后,将视频数据还原为标准编码格式的视频码流。
103、服务器将视频码流发送至客户端进行解码并显示。
在步骤101中,服务器可以为基于Windows操作系统的服务器,可以识别DXVA规范的硬件解码能力。客户端可以为基于非Windows操作系统的客户端,其所具有的硬件解码能力不是DXVA规范的硬件解码能力,在客户端将其具有的非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力后,该硬件解码能力能够被基于Windows操作系统的虚拟机识别。对于具有DXVA规范的硬件解码能力的基于Windows操作系统的客户端来说,基于Windows操作系统的服务器中的虚拟机可以识别其DXVA规范的硬件解码能力,因而可以不用转换而直接发送至虚拟机,这与现有技术一致。本发明实施例中的客户端若无特别说明,则均为基于非Windows操作系统的客户端。
可选地,DXVA规范的硬件解码能力为视频比特流处理VLD级别。
可选地,在步骤102中,将视频数据还原为标准编码格式的视频码流可以包括:
服务器从图片缓冲区中获取解码视频数据所需要的解码参数信息,解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取视频数据的视频帧序列;服务器将解码参数信息填充到标准编码格式对应的结构中;服务器将标准编码格式对应的结构中的解码参数信息和视频帧序列合成得到标准编码格式的视频码流。其中,服务器可以根据标准编码格式对应的视频编码标准中指定的算法,将解码参数信息填充到标准编码格式对应的结构中。
可选地,在步骤103中,服务器将视频码流发送至客户端进行解码并显示可以包括:
服务器向客户端发送视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧;服务器向客户端发送视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域。
可选地,在步骤102之前,该方法还可以包括:
服务器根据客户端需要创建的解码器类型和解码参数信息构建解码器初始化指令;服务器将解码器初始化指令发送至客户端,解码器初始化指令用于指示客户端根据解码器初始化指令初始化客户端的解码器,以等待接收视频帧。
可选地,该方法还可以包括:
服务器在发送完视频帧之后,向客户端发送解码器销毁指令,解码器销毁指令用于指示客户端销毁解码器。
需要说明的是,本发明实施例中客户端在通过基于VDI的远程桌面技术远程登录基于Windows操作系统的服务器播放多媒体文件时,客户端具体可以远程登录服务器中运行的虚拟机进行远程多媒体文件播放。
本发明实施例提供一种多媒体重定向的方法,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,基于Windows操作系统的服务器在接收到基于非Windows操作系统的客户端发送的将非Windows操作系统的硬件解码能力转换成的DXVA规范的硬件解码能力后,可以识别出该DXVA规范的硬件解码能力,并以此当作服务器自身的硬件解码能力从而不对视频数据进行软件解码,而是将未解码的视频数据还原为标准编码格式的视频码流并发送至实际具有硬件解码能力的客户端,以便于基于非Windows操作系统的客户端也能够对该标准编码格式的视频码流进行解码并显示,以此来实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
参见图4,本发明实施例中将以基于Windows操作系统的服务器中的虚拟机与客户端相连进行多媒体重定向为例进行详细描述,其主要步骤可以包括:
201、服务器接收客户端发送的硬件解码能力,硬件解码能力是客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力。
其中,在基于VDI的远程桌面技术中,客户端可以远程登录基于Windows操作系统的服务器中运行的虚拟机进行远程多媒体文件播放,该虚拟机可以识别DXVA规范的硬件解码能力。这里的客户端可以为基于非Windows操作系统的客户端,其所具有的硬件解码能力不是DXVA规范的硬件解码能力,在客户端将其具有的非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力后,该硬件解码能力能够被基于Windows操作系统的虚拟机识别。本发明实施例中的客户端若无特别说明,则均为基于非Windows操作系统的客户端。
可选地,步骤201中转换后的DXVA规范的硬件解码能力为视频比特流处理VLD级别。具体的,基于非Widows操作系统的客户端包括具有硬件解码能力和不具有硬件解码能力两种情况,而不具有类似DXVA规范中的四个级别的硬件解码能力,当基于非Widows操作系统的客户端不具有硬件解码能力时不能对未解码视频数据的视频比特流进行解码;当其具有硬件解码能力时可以对未解码视频数据的视频比特流进行解码,该硬件解码能力可以对应于DXVA规范中VLD级别的硬件解码能力,因而客户端可以将客户端的硬件解码能力转换成DXVA规范中VLD级别的硬件解码能力。
示例性的,基于非Widows操作系统的客户端可以在系统初始化时,根据内部GPU的硬件参数检测其是否具有硬件解码能力以及客户端可以支持的解码器类型或其它硬件解码能力参数。其中,解码器类型可以为DXVA规范支持的硬件解码格式例如支持H.264、MPEG-2标准编码格式的视频码流进行硬件解码的解码器。客户端可以将其硬件解码能力按照DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中,从而将其硬件解码能力转换成DXVA规范中VLD级别的硬件解码能力。其中,DXVA规范定义的描述硬件解码能力的结构可以包括全局唯一标识符(Globally UniqueIdentifier,GUID)、用以描述硬件解码能力的具体参数信息的结构体例如DXVA2_ConfigPictureDecode、DXVA2_VideoProcessorCaps结构体等,GUID可以用于标识硬件解码能力级别以及支持的解码器类型等。而后,客户端可以将DXVA规范定义的描述硬件解码能力的结构中描述硬件解码能力的GUID、结构体等进行封装并发送至虚拟机,并存处于服务器中的存储区域内。
或者,客户端也可以将支持相同解码器类型VLD级别硬件解码能力的基于Windows操作系统的客户端中对应的DXVA规范定义的描述硬件能力的结构中的数据复制一份发送至虚拟机并保存。当然还可以采用其它方式将客户端的硬件解码能力转换成DXVA规范的硬件解码能力并发送至虚拟机,本发明实施例对具体实现方式不做限定。
当客户端远程控制虚拟机进行视频播放时,DX运行库通过WDDM的用户模式显示驱动User-mode display driver部分在初始化时注册的pfnGetCaps函数查询服务器的存储区域内的数据表征的硬件解码能力,并由WDDM驱动向DX运行库反馈硬件解码能力,谎称虚拟机具有对应的硬件解码能力。由于播放器等应用程序认为虚拟机具有该硬件解码能力,因而服务器可以不通过CPU对视频数据进行软件解码,此时服务器可以创建解码设备从而创建缓冲区(例如图片缓冲区和码流缓冲区)等解码所需要的资源,获取解码参数信息以及视频数据的视频帧序列,但由于服务器实际上不具有硬件解码能力因而不会创建用于进行硬件解码的解码器,而需要通过真正具有硬件解码能力的客户端创建的解码器进行硬件解码并显示。其中,WDDM的模型结构图可以参见图5,主要可以分为User-mode displaydriver和内核模式显示驱动Kernel-mode display driver。需要说明的是,由于虚拟机并不是物理机,因而虚拟机的WDDM中的各部件可以不是实际的物理部件而可以是通过软件实现的部件。
需要说明的是,客户端需要创建的解码器类型与视频播放前视频文件中未解码的标准编码格式的视频码流的标准编码格式相一致,在本发明实施例中,当未解码的视频码流为H.264标准编码格式时,则客户端需要创建的解码器类型为支持H.264标准编码格式的解码器,可以对H.264标准编码格式的视频码流进行解码。
202、服务器根据客户端需要创建的解码器类型构建解码器初始化指令,解码器初始化指令用于指示客户端根据解码器初始化指令初始化客户端的解码器。
具体的,服务器中的虚拟机可以经由DX运行库通过WDDM提供的pfnCreateDecodeDevice接口创建解码设备,并通过pfnCreateResource函数创建解码需要的缓冲区,而后根据客户端需要创建的解码器类型,构建一条解码器初始化指令,该解码器初始化指令可以包括解码器类型、视频的长、宽值等解码器初始化需要的参数信息,可以用于指示客户端根据解码器初始化指令初始化客户端的解码器。
需要说明的是,与现有技术中相比,这里构建的指示客户端(即基于非Windows操作系统的客户端)根据解码器初始化指令初始化客户端的解码器的一条解码器初始化指令是消减后的指令。在现有技术中,服务器需要将一组指令例如CreateDevice指令、DestroyDevice指令、CreateDecodeDevice指令、DestroyDecodeDevice指令、CreateResource指令、DestroyResource指令、CreateVideoProcessDevice指令、DestroyVideoProcessDevice指令等多条指令发送至基于Windows操作系统的客户端,以指示基于Windows操作系统的客户端根据上述多条指令初始化客户端的解码器。由于现有技术中多条指令中的任一指令都需要携带头部信息并组装成网络报文发送给客户端,本发明实施例将现有技术中的多条指令消减为一条解码器初始化指令并组装成网络报文发送给客户端,因而可以减少服务器发送至客户端的指令数量,减少服务器发送至客户端的数据量,从而节省了带宽。
203、服务器将解码器初始化指令发送至客户端,以等待接收视频帧。
现有技术中,基于Windows操作系统的客户端通常在接收到用以指示客户端进行解码器初始化的一组指令中的最后一条指令时,调用初始化解码器接口(InitializeDecoder接口),从而初始化解码器。在步骤中,服务器中的虚拟机在构建一条解码器初始化指令后,根据桌面协议组装网络报文,将解码器初始化指令发送至客户端,客户端在接收到服务器发送的解码器初始化指令后,调用客户端的初始化解码器接口,根据解码器初始化指令中携带的参数进行解码器初始化,以等待接收步骤204中服务器发送的视频帧从而进行解码。本发明实施例中的解码器初始化指令是通用的解码器初始化指令而不是Window操作系统规范下的初始化指令,基于任一操作系统的客户端在接收到本发明实施例中的初始化指令后均可以调用客户端自身的初始化解码器接口从而进行解码器初始化,因而,基于非Window操作系统的客户端在多媒体重定向过程中能够初始化解码器从而对视频数据进行硬件解码。
示例性的,在本发明实施例中,若视频文件中未解码的标准编码格式的视频码流为H.264标准编码格式,则构建的解码器初始化指令用于指示客户端初始化的解码器类型为支持H.264标准编码格式的解码器,该类型的解码器可以解码以H.264标准编码格式进行编码的视频码流。具体的,客户端在接收到解码器初始化指令后,调用硬件芯片厂商提供的初始化接口从而初始化解码器。
204、服务器从图片缓冲区中获取解码视频数据所需要的解码参数信息,解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取视频数据的视频帧序列。
服务器中虚拟机的WDDM为播放器等应用程序所属的应用层提供了pfnDecodeExecute接口,应用层在调用pfnDecodeExecute接口时,会填充图片缓冲区和码流缓冲区,图片缓冲区和码流缓冲区是User-mode display driver中CreateResource接口创建的缓冲器。应用层先调用GetBuffer接口获得缓冲区的地址,再将未解码视频数据拷贝到缓冲区中保存,User-mode display driver就可以根据图片缓冲区和码流缓冲区的地址,从图片缓冲区中获取解码视频数据所需要的解码参数信息,该解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取视频数据的视频帧序列。
由于在开始播放视频文件后,服务器对标准编码格式的视频码流进行解析,播放器等应用程序按照多媒体编程接口(Direct eXtension,DX)运行库提供的接口,传入相应的参数进行接口调用,最终调用到WDDM驱动中并发送至客户端的视频数据不再是标准编码格式的视频码流,因而保存至图片缓冲区和码流缓冲区中的视频数据不再是标准编码格式的视频码流。
205、服务器将解码参数信息填充到标准编码格式对应的结构中。
服务器中的虚拟机可以根据从图片缓冲区和码流缓冲区中获取的数据,将视频数据还原为标准编码格式的视频码流。具体的,虚拟机可以根据标准编码格式对应的视频编码标准中指定的算法,将从图片缓冲区获得的解码参数信息填充到标准编码格式对应的结构中。
以H.264标准编码格式为例,如图6所示,H.264标准编码格式的视频码流可以包括SPS和PPS和视频帧序列I Frame、P Frame、B Frame,其中,SPS和PPS是H.264标准编码格式对应的填充解码参数信息的结构,例如视频数据的码流对应的规范(profile)、画质级别(level)以及视频分辨率等。具体的,虚拟机可以将WDDM的图片缓冲区中的解码参数信息填充至DXVA_PictureParameters结构体,再根据H.264标准编码格式对应的H.264高度压缩数字视频编解码器标准中指定的算法转换成seq_parameter_set_rbsp结构体(SPS)和pic_parameter_set_rbsp结构体(PPS),从而将图片缓冲区中的解码参数信息填充至H.264标准编码格式的SPS和PPS中。
206、服务器将标准编码格式对应的结构中的解码参数信息和视频帧序列合成得到标准编码格式的视频码流。
具体的,以H.264标准编码格式为例,服务器中的虚拟机可以通过将存放H.264标准编码格式中SPS和PPS的解码参数信息和视频帧序列I Frame、P Frame、B Frame合成得到标准编码格式的视频码流。
需要说明的是,由于视频播放前视频文件中的视频数据为标准编码格式的视频码流,而在开始进行视频播放后,虚拟机通过解析等相关处理使得视频数据不再为标准编码格式的视频码流,而通过步骤205和步骤206使得视频数据又变为标准编码格式的视频码流,也就是说步骤205和步骤206将视频数据还原为标准编码格式的视频码流。
当然,对于视频播放前视频文件中的视频数据为MPEG-2、VC-1、AVS或其它标准编码格式的视频码流来说,也可以通过图片缓冲区和码流缓冲区中的视频数据还原为标准编码格式的视频码流,此处不再具体描述。
需要说明的是,由于本步骤中得到的是通用的标准编码格式的视频码流,因而不仅是基于Windows操作系统的客户端,基于非Windows操作系统的客户端也可以识别并进行解码和显示,从而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
207、服务器向客户端发送视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧。
在得到标准编码格式的视频码流后,服务器中的虚拟机将包括标准编码格式对应的结构中的解码参数信息和视频帧的视频帧指令根据桌面协议组装成网络报文发送至客户端,以便于客户端根据标准编码格式对应的解码参数信息对标准编码格式的视频码流中的视频帧进行硬件解码,而后经过视频后处理进行显示。
当然,服务器也可以在第一次发送的视频帧指令中携带有标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧,而在之后发送的视频帧指令中不携带标准编码格式对应的结构中的解码参数信息,而仅携带视频帧序列的视频帧,客户端根据第一次接收到的标准编码格式对应的结构中的解码参数信息对视频码流进行解码,本发明实施例不做限定。
208、服务器向客户端发送视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域。
服务器中的虚拟机在向客户端发送视频帧指令后,通过DX运行库调用WDDM中内核模式显示驱动的显示微端口驱动Display miniport driver用于显示的接口,通知驱动显示某一帧,并附带显示参数,包括视频帧的标识和显示区域,WDDM在接口函数pfnPresent中获取显示参数。其中,视频帧的标识用于标明要显示的图像的视频帧,显示区域用于指示要显示的图像将要显示在屏幕中的区域。虚拟机根据桌面协议将携带有视频帧的标识和显示区域等显示参数的渲染指令组装成网络报文发送至客户端,以便于客户端在接收到与当前视频帧指令对应的渲染指令后,通知指令执行模块根据视频帧指令对应的渲染指令中携带的视频帧的标识和显示区域,将视频帧指令中携带的视频帧中的视频图像显示到屏幕上指定的显示区域中,并删除数据缓存中与当前视频帧指令相关的数据,以便于接收下一视频帧指令并根据接收的对应的渲染指令显示视频图像。
209、服务器在发送完视频帧之后,向客户端发送解码器销毁指令,解码器销毁指令用于指示客户端销毁解码器。
在发送完当前视频的全部视频帧之后,服务器中的虚拟机销毁解码设备,释放服务器端相应的资源,并向客户端发送解码器销毁指令,以便于客户端在完成全部视频帧的硬件解码后销毁解码器,释放占用的客户端资源。
需要说明的是,与步骤202中的解码器初始化指令类似,步骤207中的视频帧指令、步骤208中的渲染指令以及步骤209中的解码器销毁指令也是消减后的指令。其中,服务器向客户端发送的消减后的指令序列可以参见图7。具体的,与解码器初始化指令类似,当基于任一操作系统(包括非Windows操作系统和Windows操作系统)的客户端在接收到本发明实施例中的视频帧指令时,可以调用解码接口(Decode接口)进行硬件解码,而不用像现有技术中那样客户端需要接收一组指令并在接收到该组指令的最后一条指令时调用Decode接口进行硬件解码;同样,客户端在接收到渲染指令时,可以调用渲染接口(Present接口)进行显示;客户端在接收到解码器销毁指令时,可以调用解码器销毁接口(DestroyDecoder接口)销毁解码器。因而,与现有技术中服务器在多媒体重定向过程中需要向客户端发送四十多种指令(例如CreateDevice指令,DestroyDevice指令,CreateResource指令,DestroyResource指令,CreateDecodeDevice指令,DestroyDecodeDevice指令,SetDecodeRenderTarget指令,DecodeBeginFrame指令,DecodeExcute指令,DecodeEndFrame指令,Present指令等)相比,本发明实施例提供的方法仅发送解码器初始化指令、视频帧指令、渲染指令和解码器销毁指令四种消减后的指令,因而可以减少服务器发送至客户端的指令数量,减少服务器发送至客户端的数据量,从而可以节省带宽。
在本发明实施例中,由于基于非Windows操作系统的客户端在将硬件解码能力转换为DXVA规范的硬件解码能力后,基于Windows操作系统的服务器可以识别,从而将未解码的视频数据发送至基于非Windows操作系统的客户端;又由于解码器初始化指令、视频帧指令、渲染指令和解码器销毁指令并不是Windows规范下的指令,而是通用指令,基于非Windows操作系统和基于Windows操作系统的客户端均能够根据该指令初始化解码器;且还原后的标准编码格式视频码流是通用的标准编码格式,基于非Windows操作系统和基于Windows操作系统的客户端均能够识别从而通过解码器进行硬件解码并显示,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
根据步骤201至209中的描述,本发明实施例提供的一种服务器与客户端进行多媒体重定向时的交互流程图可以参见图8。其中,基于非Windows操作系统的客户端在将硬件解码能力转换成DXVA规范的硬件解码能力后,通过桌面协议客户端发送给桌面协议服务端;服务器通过桌面协议服务端接收到客户端发送的DXVA规范的硬件解码能力后将DXVA规范的硬件解码能力传递给WDDM驱动;在进行视频播放时,播放器等应用程序通过调用DX运行库向WDDM驱动查询并获得该DXVA规范的硬件解码能力,而后指示WDDM创建解码设备;WDDM构建一条消减后的解码器初始化指令并通过桌面协议服务端发送给客户端;客户端在接收到解码器初始化指令后进行解码器初始化;而后,应用程序通过调用DX运行库将未解码的视频数据填充至图片缓冲区和码流缓冲区并进行码流还原,并构建消减后的视频帧指令发送给客户端;客户端在接收到视频帧指令后开始进行硬件解码;此外,应用程序通过调用DX运行库进行渲染控制,将渲染参数传递给WDDM;WDDM根据渲染参数构建消减后的渲染指令并发送给客户端;客户端在接收到渲染指令后进行视频图像显示;在发送完视频数据后,应用程序通过调用DX运行库指示WDDM销毁解码设备,WDDM构建消减后的解码器销毁指令并发送给客户端;客户端在接收到解码器销毁指令后销毁解码器,从而完成本次视频播放。另外,本发明实施例提供的一种服务器与客户端进行多媒体重定向时的交互示意图可以参见图9,其中,解码器初始化指令、视频帧指令、解码器销毁指令的构建和发送可以通过线路1进行,渲染指令的构建和发送可以通过线路2进行。
本发明实施例提供一种多媒体重定向的方法,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,基于Windows操作系统的虚拟机在接收到基于非Windows操作系统的客户端发送的将非Windows操作系统的硬件解码能力转换成的DXVA规范的硬件解码能力后,可以识别出该DXVA规范的硬件解码能力,并以此当作虚拟机自身的硬件解码能力从而不对视频数据进行软件解码,而是将未解码的视频数据还原为标准编码格式的视频码流并发送至实际具有硬件解码能力的客户端,以便于基于非Windows操作系统的客户端也能够对该标准编码格式的视频码流进行解码并显示,从而实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
参见图10,本发明实施例提供一种多媒体重定向的方法,其主要步骤可以包括:
301、客户端将其硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,客户端包括非Windows操作系统。
302、客户端向服务器发送DXVA规范的硬件解码能力。
303、客户端接收服务器将视频数据还原为标准编码格式之后的视频码流,进而对视频码流进行解码并显示。
在步骤301中,服务器可以为基于Windows操作系统的服务器,可以识别DXVA规范的硬件解码能力。客户端可以为基于非Windows操作系统的客户端,其所具有的硬件解码能力不是DXVA规范的硬件解码能力,在客户端将其具有的非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力后,该硬件解码能力能够被基于Windows操作系统的虚拟机识别。本发明实施例中的客户端若无特别说明,则均为基于非Windows操作系统的客户端。
可选地,在步骤301中非Windows操作系统的客户端将其硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力可以包括:
客户端将硬件解码能力按照DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
其中,步骤301和步骤302中客户端将硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力并发送至服务器的具体实现过程可以参见上述实施例中的步骤201中的具体描述,这里不再赘述。
可选地,在步骤303中,客户端接收服务器将视频数据还原为标准编码格式之后的视频码流,进而对视频码流进行解码并显示可以包括:
客户端接收服务器发送的视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧,标准编码格式对应的结构中的解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率;客户端接收服务器发送的视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域;客户端根据视频帧指令和渲染指令,对视频码流进行解码并显示。
具体的,客户端在接收到服务器发送的视频帧指令后根据标准编码格式对应的解码参数信息对视频码流进行解码,而后根据渲染指令对视频图像进行显示,其中视频帧指令和渲染指令的具体描述可以参见步骤207和步骤208。
可选地,该方法还可以包括:
在步骤303中客户端接收服务器发送的还原为标准编码格式的视频码流之前,客户端可以接收服务器发送的解码器初始化指令,解码器初始化指令用于指示客户端根据解码器初始化指令初始化客户端的解码器。具体的,客户端在接收到解码器初始化指令后,调用硬件芯片厂商提供的初始化接口从而初始化解码器。
可选地,在完成解码后,客户端还可以接收服务器发送的解码器销毁指令,解码器销毁指令用于指示客户端销毁解码器。客户端在完成全部视频帧的硬件解码后销毁解码器,释放占用的客户端资源。
需要说明的是,本发明实施例中客户端接收到的解码器初始化指令、视频帧指令、渲染指令以及解码器销毁指令是消减后的指令,与现有技术中服务器在多媒体重定向过程中需要向客户端发送四十多种指令相比,本发明实施例提供的方法仅发送解码器初始化指令、视频帧指令、渲染指令和解码器销毁指令四种消减后的指令,因而可以减少服务器发送至客户端的指令数量,从而节省带宽。
同时,在本发明实施例中,由于客户端将基于非Windows操作系统的硬件解码能力转换为DXVA规范的硬件解码能力后,基于Windows操作系统的服务器可以识别,从而可以将未解码的视频数据发送至基于非Windows操作系统的客户端;又由于解码器初始化指令、视频帧指令、渲染指令和解码器销毁指令并不是Windows规范下的指令,而是通用指令,基于非Windows操作系统和基于Windows操作系统的客户端均能够根据该指令初始化解码器;且还原后的标准编码格式的视频码流是通用的标准编码格式,基于非Windows操作系统和基于Windows操作系统的客户端均能够识别从而通过解码器进行硬件解码并显示,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
此外,若客户端不具有硬件解码能力,也可以将VLD级别的硬件解码能力发送至虚拟机,以便于虚拟机可以不对视频数据进行软件解码,并将未解码的视频数据发送至客户端进行解码,从而实现多媒体数据的重定向。客户端在接收到虚拟机发送的未解码的视频数据后,也可以不进行硬件解码而通过客户端的CPU进行软件解码,本发明实施例不做限定,当然与通过CPU进行软件解码相比,通过客户端硬件解码可以达到的视频播放效果较佳。
需要说明的是,本发明实施例提供的方法可以实现基于非Windows操作系统的客户端的多媒体重定向,对于基于Windows操作系统的客户端来说,在进行多媒体重定向时不需要转换硬件解码能力,但也可以采用本发明实施例提供的方法进行码流还原和指令消减,从而可以降低服务器发送至客户端的指令数量,降低带宽要求。
本发明实施例提供一种多媒体重定向的方法,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,基于非Windows操作系统的客户端将其硬件解码能力转换为DXVA规范的硬件解码能力后发送给基于Windows操作系统的服务器,以便于服务器能够识别该DXVA规范的硬件解码能力并当作自身的硬件解码能力,从而将未进行软件解码的视频数据还原为标准编码格式的视频码流后发送至客户端,基于非Windows操作系统的客户端对接收到的标准编码格式的视频码流进行解码并显示,从而实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
参见图11,本发明实施例提供一种服务器400,该服务器400可以包括:
接收单元401,可以用于接收客户端发送的硬件解码能力,硬件解码能力是客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力;
还原单元402,可以用于在接收单元401接收到硬件解码能力后,将视频数据还原为标准编码格式的视频码流;
发送单元403,可以用于将视频码流发送至客户端进行解码并显示。
可选地,DXVA规范的硬件解码能力可以为视频比特流处理VLD级别。
可选地,还原单元402可以具体用于:
从图片缓冲区中获取解码视频数据所需要的解码参数信息,解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取视频数据的视频帧序列;
将解码参数信息填充到标准编码格式对应的结构中;
将标准编码格式对应的结构中的解码参数信息和视频帧序列合成得到标准编码格式的视频码流。
其中,服务器可以根据标准编码格式对应的视频编码标准中指定的算法,将解码参数信息填充到标准编码格式对应的结构中。
可选地,发送单元403可以具体用于:
向客户端发送视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧;
向客户端发送视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域。
可选地,参见图12,该服务器400还可以包括:
构建单元404,用于根据客户端需要创建的解码器类型构建解码器初始化指令;
发送单元403还可以用于,将解码器初始化指令发送至客户端,解码器初始化指令用于指示客户端根据解码器初始化指令初始化客户端的解码器,以等待接收视频帧。
可选地,发送单元403还可以用于:
在发送完视频帧之后,向客户端发送解码器销毁指令,解码器销毁指令用于指示客户端销毁解码器。
本发明实施例提供一种基于Windows操作系统的服务器400,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,服务器400在接收到基于非Windows操作系统的客户端发送的将非Windows操作系统的硬件解码能力转换成的DXVA规范的硬件解码能力后,可以识别出该DXVA规范的硬件解码能力,并以此当作服务器400自身的硬件解码能力从而不对视频数据进行软件解码,而是将未解码的视频数据还原为标准编码格式的视频码流并发送至实际具有硬件解码能力的客户端,以便于基于非Windows操作系统的客户端也能够对该标准编码格式的视频码流进行解码并显示,从而实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
参见图13,本发明实施例提供一种客户端500,该客户端500主要可以包括:
处理单元501,可以用于将客户端500的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,客户端500包括非Windows操作系统;
发送单元502,可以用于向服务器发送DXVA规范的硬件解码能力;
接收单元503,可以用于接收服务器将视频数据还原为标准编码格式之后的视频码流;
处理单元501还可以用于,对接收单元503接收到的视频码流进行解码并显示。
可选地,处理单元501可以具体用于:
将硬件解码能力按照DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
可选地,接收单元503可以具体用于:
接收服务器发送的视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧,标准编码格式对应的结构中的解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率;
接收服务器发送的视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域;
处理单元501可以具体用于,根据接收单元503接收到的视频帧指令和渲染指令,对视频码流进行解码并显示。
可选地,接收单元503还可以用于:
在接收视频码流之前,接收服务器发送的解码器初始化指令,解码器初始化指令用于指示客户端500根据解码器初始化指令初始化客户端500的解码器;
在完成解码后,接收服务器发送的解码器销毁指令,解码器销毁指令用于指示客户端500销毁解码器。
本发明实施例提供一种基于非Windows操作系统的客户端500,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,客户端500在将其硬件解码能力转换为DXVA规范的硬件解码能力后发送给基于Windows操作系统的服务器,以便于服务器能够识别该DXVA规范的硬件解码能力并当作自身的硬件解码能力,从而将未进行软件解码的视频数据还原为标准编码格式的视频码流后发送至客户端500,基于非Windows操作系统的客户端500对接收到的标准编码格式的视频码流进行解码并显示,从而实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端500的问题。
图14为本发明实施例提供一种服务器600的结构示意图,该服务器600可以包括:
处理器(Processor)601,通信接口(Communications Interface)602,存储器(Memory)603,通信总线604。
处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
通信接口602,用于与网元通信,比如客户端等。
处理器601,用于执行程序605,具体可以执行上述图3、图4所示的方法实施例中的相关步骤。
具体地,程序605可以包括程序代码,程序代码包括计算机操作指令。
处理器601可能是一个中央处理器CPU(Central Processing Unit),或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器603用于存放程序605,存储器603可能包含高速RAM(Random AccessMemory)存储器,也可能还包括非易失性存储器(Non-volatile Memory),例如至少一个磁盘存储器。程序605具体可以包括:接收客户端发送的硬件解码能力,硬件解码能力是客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力;在接收到硬件解码能力后,将视频数据还原为标准编码格式的视频码流;将视频码流发送至客户端进行解码并显示。
程序605中各模块具体可以包括:
可选地,DXVA规范的硬件解码能力可以为视频比特流处理VLD级别。
可选地,将视频数据还原为标准编码格式的视频码流可以包括:
从图片缓冲区中获取解码视频数据所需要的解码参数信息,解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取视频数据的视频帧序列;
将解码参数信息填充到标准编码格式对应的结构中;
将标准编码格式对应的结构中的解码参数信息和视频帧序列合成得到标准编码格式的视频码流。
可选地,将视频码流发送至客户端进行解码并显示可以包括:
向客户端发送视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧;
向客户端发送视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域。
可选地,在将视频数据还原为标准编码格式的视频码流之前,还可以包括:
根据客户端需要创建的解码器类型构建解码器初始化指令;
将解码器初始化指令发送至客户端,解码器初始化指令用于指示客户端根据解码器初始化指令初始化客户端的解码器,以等待接收视频帧。
可选地,程序605还可以包括:
在发送完视频帧之后,向客户端发送解码器销毁指令,解码器销毁指令用于指示客户端销毁解码器。
本发明实施例提供一种基于Windows操作系统的服务器600,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,服务器600在接收到基于非Windows操作系统的客户端发送的将非Windows操作系统的硬件解码能力转换成的DXVA规范的硬件解码能力后,可以识别出该DXVA规范的硬件解码能力,并以此当作服务器600自身的硬件解码能力从而不对视频数据进行软件解码,而是将未解码的视频数据还原为标准编码格式的视频码流并发送至实际具有硬件解码能力的客户端,以便于基于非Windows操作系统的客户端也能够对该标准编码格式的视频码流进行解码并显示,从而实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端的问题。
图15为本发明实施例提供的又一种客户端700的结构示意图,该客户端700可以包括:
处理器(Processor)701,通信接口(Communications Interface)702,存储器(Memory)703,通信总线704。
处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。
通信接口702,用于与网元通信,比如服务器等。
处理器701,用于执行程序705,具体可以执行上述图10所示的方法实施例中的相关步骤。
具体地,程序705可以包括程序代码,程序代码包括计算机操作指令。
处理器701可能是一个中央处理器CPU(Central Processing Unit),或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器703用于存放程序705,存储器703可能包含高速RAM(Random AccessMemory)存储器,也可能还包括非易失性存储器(Non-volatile Memory),例如至少一个磁盘存储器。程序具体可以包括:将客户端700的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,客户端700包括非Windows操作系统;向服务器发送DXVA规范的硬件解码能力;接收服务器将视频数据还原为标准编码格式之后的视频码流,进而对视频码流进行解码并显示。
程序705中各模块具体可以包括:
可选地,将客户端700的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力可以包括:
将硬件解码能力按照DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
可选地,接收服务器将视频数据还原为标准编码格式之后的视频码流,进而对视频码流进行解码并显示可以包括:
接收服务器发送的视频帧指令,视频帧指令包括标准编码格式对应的结构中的解码参数信息和视频帧序列的视频帧,标准编码格式对应的结构中的解码参数信息包括视频数据的码流对应的规范、画质级别以及视频分辨率;
接收服务器发送的视频帧指令对应的渲染指令,渲染指令包括视频帧的标识和显示区域;
根据视频帧指令和渲染指令,对视频码流进行解码并显示。
可选地,该程序还可以包括:
在接收视频码流之前,接收服务器发送的解码器初始化指令,解码器初始化指令用于指示客户端700根据解码器初始化指令初始化客户端700的解码器;
在完成解码后,接收服务器发送的解码器销毁指令,解码器销毁指令用于指示客户端700销毁解码器。
本发明实施例提供一种基于非Windows操作系统的客户端700,在通过基于VDI的远程桌面技术进行远程多媒体文件播放时,客户端700在将其硬件解码能力转换为DXVA规范的硬件解码能力后发送给基于Windows操作系统的服务器,以便于服务器能够识别该DXVA规范的硬件解码能力并当作自身的硬件解码能力,从而将未进行软件解码的视频数据还原为标准编码格式的视频码流后发送至客户端700,基于非Windows操作系统的客户端700对接收到的标准编码格式的视频码流进行解码并显示,从而实现多媒体重定向,因而可以解决现有技术中的多媒体重定向技术不适用于基于非Windows操作系统的客户端700的问题。
本发明实施例提供一种系统800,其结构示意图可以参见图16,该系统800可以包括如图11、图12或图14所示的服务器和如图13或图15所示的客户端,其中服务器和客户端的具体实现方式可以参见上述实施例的描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (21)
1.一种多媒体重定向的方法,其特征在于,包括:
服务器接收客户端发送的硬件解码能力,所述硬件解码能力是所述客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力;
所述服务器在接收到所述硬件解码能力后,将视频数据还原为标准编码格式的视频码流;
所述服务器将所述视频码流发送至所述客户端进行解码并显示。
2.根据权利要求1所述的方法,其特征在于,所述DXVA规范的硬件解码能力为视频比特流处理VLD级别。
3.根据权利要求1所述的方法,其特征在于,所述将视频数据还原为标准编码格式的视频码流包括:
所述服务器从图片缓冲区中获取解码所述视频数据所需要的解码参数信息,所述解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取所述视频数据的视频帧序列;
所述服务器将所述解码参数信息填充到所述标准编码格式对应的结构中;
所述服务器将所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列合成得到所述标准编码格式的视频码流。
4.根据权利要求3所述的方法,其特征在于,所述服务器将所述视频码流发送至所述客户端进行解码并显示包括:
所述服务器向所述客户端发送视频帧指令,所述视频帧指令包括所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧;
所述服务器向所述客户端发送所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域。
5.根据权利要求1-4任一项所述的方法,其特征在于,在所述服务器将视频数据还原为标准编码格式的视频码流之前,所述方法还包括:
所述服务器根据所述客户端需要创建的解码器类型构建解码器初始化指令;
所述服务器将所述解码器初始化指令发送至所述客户端,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器,以等待接收视频帧。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述服务器在发送完所述视频帧之后,向所述客户端发送解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
7.一种多媒体重定向的方法,其特征在于,包括:
客户端将其硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,所述客户端包括非Windows操作系统;
所述客户端向服务器发送所述DXVA规范的硬件解码能力;
所述客户端接收所述服务器将视频数据还原为标准编码格式之后的视频码流,进而对所述视频码流进行解码并显示。
8.根据权利要求7所述的方法,其特征在于,所述客户端将其硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力包括:
所述客户端将所述硬件解码能力按照所述DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
9.根据权利要求7所述的方法,其特征在于,所述客户端接收所述服务器将视频数据还原为标准编码格式之后的视频码流,进而对所述视频码流进行解码并显示包括:
所述客户端接收所述服务器发送的视频帧指令,所述视频帧指令包括标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧,所述标准编码格式对应的结构中的解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率;
所述客户端接收所述服务器发送的所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域;
所述客户端根据所述视频帧指令和所述渲染指令,对所述视频码流进行解码并显示。
10.根据权利要求7-9任一项所述的方法,其特征在于,所述方法还包括:
在所述客户端接收所述视频码流之前,接收所述服务器发送的解码器初始化指令,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器;
在完成解码后,所述客户端接收所述服务器发送的解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
11.一种多媒体重定向的服务器,其特征在于,包括:
接收单元,用于接收客户端发送的硬件解码能力,所述硬件解码能力是所述客户端将非Windows操作系统的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力;
还原单元,用于在所述接收单元接收到所述硬件解码能力后,将视频数据还原为标准编码格式的视频码流;
发送单元,用于将所述视频码流发送至所述客户端进行解码并显示。
12.根据权利要求11所述的服务器,其特征在于,所述DXVA规范的硬件解码能力为视频比特流处理VLD级别。
13.根据权利要求11所述的服务器,其特征在于,所述还原单元具体用于:
从图片缓冲区中获取解码所述视频数据所需要的解码参数信息,所述解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率,并从码流缓冲区中获取所述视频数据的视频帧序列;
将所述解码参数信息填充到所述标准编码格式对应的结构中;
将所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列合成得到所述标准编码格式的视频码流。
14.根据权利要求13所述的服务器,其特征在于,所述发送单元具体用于:
向所述客户端发送视频帧指令,所述视频帧指令包括所述标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧;
向所述客户端发送所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域。
15.根据权利要求11-14任一项所述的服务器,其特征在于,还包括:
构建单元,用于根据所述客户端需要创建的解码器类型构建解码器初始化指令;
所述发送单元还用于,将所述解码器初始化指令发送至所述客户端,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器,以等待接收视频帧。
16.根据权利要求15所述的服务器,其特征在于,所述发送单元还用于:
在发送完所述视频帧之后,向所述客户端发送解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
17.一种多媒体重定向的客户端,其特征在于,包括:
处理单元,用于将所述客户端的硬件解码能力转换为视频硬件加速DXVA规范的硬件解码能力,所述客户端包括非Windows操作系统;
发送单元,用于向服务器发送所述DXVA规范的硬件解码能力;
接收单元,用于接收所述服务器将视频数据还原为标准编码格式之后的视频码流;
所述处理单元还用于,对所述接收单元接收到的所述视频码流进行解码并显示。
18.根据权利要求17所述的客户端,其特征在于,所述处理单元具体用于:
将所述硬件解码能力按照所述DXVA规范的视频比特流处理VLD级别的硬件解码能力的格式,填充在DXVA规范描述硬件解码能力的结构中。
19.根据权利要求17所述的客户端,其特征在于,所述接收单元具体用于:
接收所述服务器发送的视频帧指令,所述视频帧指令包括标准编码格式对应的结构中的解码参数信息和所述视频帧序列的视频帧,所述标准编码格式对应的结构中的解码参数信息包括所述视频数据的码流对应的规范、画质级别以及视频分辨率;
接收所述服务器发送的所述视频帧指令对应的渲染指令,所述渲染指令包括所述视频帧的标识和显示区域;
所述处理单元具体用于,根据所述接收单元接收到的所述视频帧指令和所述渲染指令,对所述视频码流进行解码并显示。
20.根据权利要求17-19任一项所述的客户端,其特征在于,所述接收单元还用于:
在接收所述视频码流之前,接收所述服务器发送的解码器初始化指令,所述解码器初始化指令用于指示所述客户端根据所述解码器初始化指令初始化所述客户端的解码器;
在完成解码后,接收所述服务器发送的解码器销毁指令,所述解码器销毁指令用于指示所述客户端销毁所述解码器。
21.一种多媒体重定向的系统,其特征在于,包括如权利要求11-16任一项所述的服务器和如权利要求17-20任一项所述的客户端。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510124397.XA CN106034241B (zh) | 2015-03-19 | 2015-03-19 | 一种多媒体重定向的方法、客户端、服务器和系统 |
PCT/CN2016/076634 WO2016146078A1 (zh) | 2015-03-19 | 2016-03-17 | 一种多媒体重定向的方法、设备和系统 |
EP16764258.6A EP3261351B1 (en) | 2015-03-19 | 2016-03-17 | Multimedia redirection method, device and system |
US15/704,266 US10542301B2 (en) | 2015-03-19 | 2017-09-14 | Multimedia redirection method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510124397.XA CN106034241B (zh) | 2015-03-19 | 2015-03-19 | 一种多媒体重定向的方法、客户端、服务器和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106034241A CN106034241A (zh) | 2016-10-19 |
CN106034241B true CN106034241B (zh) | 2019-04-26 |
Family
ID=56918316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510124397.XA Active CN106034241B (zh) | 2015-03-19 | 2015-03-19 | 一种多媒体重定向的方法、客户端、服务器和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10542301B2 (zh) |
EP (1) | EP3261351B1 (zh) |
CN (1) | CN106034241B (zh) |
WO (1) | WO2016146078A1 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
HK1221373A2 (zh) * | 2016-03-29 | 2017-05-26 | 萬維數碼有限公司 | 種提升視頻分辨率和視頻質量的方法、編碼器及解碼器 |
CN106572361A (zh) * | 2016-11-15 | 2017-04-19 | 中兴通讯股份有限公司 | 一种视频文件的处理方法、装置和系统 |
WO2018119711A1 (zh) * | 2016-12-27 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 多操作系统多媒体编解码方法、装置及电子设备 |
KR102282233B1 (ko) * | 2017-04-21 | 2021-07-28 | 제니맥스 미디어 인크. | 비디오 인코딩의 연기된 포스트-프로세스들을 위한 시스템들 및 방법들 |
CN109217980B (zh) * | 2017-07-03 | 2020-11-06 | 腾讯科技(深圳)有限公司 | 一种编解码能力配置方法、设备和计算机存储介质 |
CN107329723A (zh) * | 2017-07-13 | 2017-11-07 | 山东超越数控电子有限公司 | 一种实现DirectDraw加速的方法 |
CN108055595B (zh) * | 2017-12-26 | 2020-10-27 | 蚌埠中科云巢信息科技有限公司 | 视频图像的重定向方法、计算机可读存储介质 |
CN110022497A (zh) * | 2018-01-10 | 2019-07-16 | 中兴通讯股份有限公司 | 视频播放方法及装置、终端设备及计算机可读存储介质 |
US11012694B2 (en) | 2018-05-01 | 2021-05-18 | Nvidia Corporation | Dynamically shifting video rendering tasks between a server and a client |
US10713756B2 (en) | 2018-05-01 | 2020-07-14 | Nvidia Corporation | HW-assisted upscaling and multi-sampling using a high resolution depth buffer |
CN111201834B (zh) | 2018-09-18 | 2023-04-18 | 瑞典爱立信有限公司 | 使用侧链路发现消息的装置发现 |
CN109151574B (zh) | 2018-10-15 | 2020-03-24 | Oppo广东移动通信有限公司 | 视频处理方法、装置、电子设备以及存储介质 |
CN110113669B (zh) * | 2019-06-14 | 2021-07-16 | 北京达佳互联信息技术有限公司 | 获取视频数据的方法、装置、电子设备及存储介质 |
CN110515814B (zh) * | 2019-08-16 | 2023-09-19 | 海南车智易通信息技术有限公司 | iOS客户端的全量日志收集方法、装置和移动终端 |
US11012485B1 (en) * | 2020-01-02 | 2021-05-18 | Microsoft Technology Licensing, Llc | Multi-media redirection for media applications |
US11012498B1 (en) * | 2020-01-02 | 2021-05-18 | Microsoft Technology Licensing, Llc | Web browser multi-media redirection |
CN111866058B (zh) * | 2020-05-25 | 2024-02-27 | 西安万像电子科技有限公司 | 数据处理方法及系统 |
CN112422963B (zh) * | 2020-11-17 | 2024-05-31 | 杭州雾联科技有限公司 | 云计算机系统、编码方法、装置、设备及存储介质 |
US11200073B1 (en) * | 2020-11-20 | 2021-12-14 | UiPath, Inc. | Automatic anchor determination and target graphical element identification in user interface automation |
CN112637636B (zh) * | 2020-12-23 | 2022-02-22 | 新华三大数据技术有限公司 | 一种视频流处理方法及装置 |
CN113645467B (zh) * | 2021-06-23 | 2024-04-23 | 天津津航计算技术研究所 | 一种软硬结合的视频解码方法 |
CN114401445B (zh) * | 2021-12-31 | 2024-03-22 | 深圳云天励飞技术股份有限公司 | 视频处理控制方法、装置、监控设备、客户端及存储介质 |
CN116055738B (zh) * | 2022-05-30 | 2023-10-20 | 荣耀终端有限公司 | 视频压缩方法及电子设备 |
CN115278301B (zh) * | 2022-07-27 | 2023-12-22 | 河南昆仑技术有限公司 | 视频处理方法、系统及设备 |
CN115914745A (zh) * | 2022-12-15 | 2023-04-04 | 网易(杭州)网络有限公司 | 视频的解码方法、装置、电子设备及计算机可读介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469131A (zh) * | 2010-11-15 | 2012-05-23 | 中兴通讯股份有限公司 | 基于虚拟化技术的终端、系统及业务提供方法 |
CN103283250A (zh) * | 2012-12-13 | 2013-09-04 | 华为技术有限公司 | 一种视频重定向的方法、装置、系统及计算机可读介质 |
CN103873924A (zh) * | 2012-12-12 | 2014-06-18 | 华为技术有限公司 | 一种视频重定向的方法、装置、系统 |
CN104067627A (zh) * | 2013-02-07 | 2014-09-24 | 华为技术有限公司 | 一种视频重定向的方法、装置、系统及计算机可读介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4915026B2 (ja) * | 2000-05-17 | 2012-04-11 | ソニー株式会社 | 映像処理装置および映像処理方法、並びに記録媒体 |
US7451457B2 (en) * | 2002-04-15 | 2008-11-11 | Microsoft Corporation | Facilitating interaction between video renderers and graphics device drivers |
US9227139B2 (en) * | 2002-12-10 | 2016-01-05 | Sony Computer Entertainment America Llc | Virtualization system and method for hosting applications |
US8214256B2 (en) * | 2003-09-15 | 2012-07-03 | Time Warner Cable Inc. | System and method for advertisement delivery within a video time shifting architecture |
US7694160B2 (en) * | 2006-08-31 | 2010-04-06 | Ati Technologies Ulc | Method and apparatus for optimizing power consumption in a multiprocessor environment |
US20090174812A1 (en) * | 2007-07-06 | 2009-07-09 | Texas Instruments Incorporated | Motion-compressed temporal interpolation |
US9621855B2 (en) * | 2007-12-10 | 2017-04-11 | Time Warner Cable Enterprises Llc | Apparatus and method for video-on-demand playlist |
US9380091B2 (en) * | 2012-06-12 | 2016-06-28 | Wi-Lan Labs, Inc. | Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network |
WO2011068807A1 (en) * | 2009-12-01 | 2011-06-09 | Divx, Llc | System and method for determining bit stream compatibility |
US20120218292A1 (en) * | 2011-02-10 | 2012-08-30 | Ncomputing Inc. | System and method for multistage optimized jpeg output |
US9372737B2 (en) * | 2012-02-08 | 2016-06-21 | Vmware, Inc. | Video stream management for remote graphical user interfaces |
US10063606B2 (en) * | 2012-06-12 | 2018-08-28 | Taiwan Semiconductor Manufacturing Co., Ltd. | Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network |
US9609336B2 (en) * | 2013-04-16 | 2017-03-28 | Fastvdo Llc | Adaptive coding, transmission and efficient display of multimedia (acted) |
CN104168486A (zh) * | 2013-05-20 | 2014-11-26 | 上海范氏科技投资发展集团有限公司 | 基于云计算的虚拟机与客户端间视频重定向方法 |
CN104159150B (zh) * | 2014-08-19 | 2017-12-19 | 龙芯中科技术有限公司 | 云终端、云服务器、媒体数据流播放系统及方法 |
-
2015
- 2015-03-19 CN CN201510124397.XA patent/CN106034241B/zh active Active
-
2016
- 2016-03-17 WO PCT/CN2016/076634 patent/WO2016146078A1/zh active Application Filing
- 2016-03-17 EP EP16764258.6A patent/EP3261351B1/en active Active
-
2017
- 2017-09-14 US US15/704,266 patent/US10542301B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469131A (zh) * | 2010-11-15 | 2012-05-23 | 中兴通讯股份有限公司 | 基于虚拟化技术的终端、系统及业务提供方法 |
CN103873924A (zh) * | 2012-12-12 | 2014-06-18 | 华为技术有限公司 | 一种视频重定向的方法、装置、系统 |
CN103283250A (zh) * | 2012-12-13 | 2013-09-04 | 华为技术有限公司 | 一种视频重定向的方法、装置、系统及计算机可读介质 |
CN104067627A (zh) * | 2013-02-07 | 2014-09-24 | 华为技术有限公司 | 一种视频重定向的方法、装置、系统及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2016146078A1 (zh) | 2016-09-22 |
CN106034241A (zh) | 2016-10-19 |
EP3261351B1 (en) | 2019-12-04 |
EP3261351A1 (en) | 2017-12-27 |
US10542301B2 (en) | 2020-01-21 |
US20180007400A1 (en) | 2018-01-04 |
EP3261351A4 (en) | 2017-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106034241B (zh) | 一种多媒体重定向的方法、客户端、服务器和系统 | |
AU2017213593B2 (en) | Transmission of reconstruction data in a tiered signal quality hierarchy | |
TWI393065B (zh) | 操作訊框緩衝器管理員和解碼及顯示壓縮視訊資料的方法和系統 | |
CN104159150B (zh) | 云终端、云服务器、媒体数据流播放系统及方法 | |
JP2016158267A (ja) | 並列処理を許容している符号化概念、トランスポートデマルチプレクサおよびビデオビットストリーム | |
AU2011314228B2 (en) | Entropy coder for image compression | |
CN104780378A (zh) | 一种用于解码视频的方法、装置和播放器 | |
JP2008118637A (ja) | 適応制御を行うことができるmpegコード化オーディオ・ビジュアルオブジェクトをインターフェイスで連結するためのシステムおよび方法 | |
CN112954457A (zh) | 视频播放显示方法、装置和系统 | |
CN109218745A (zh) | 一种直播方法、服务器、客户端及可读存储介质 | |
CN105227989A (zh) | 一种基于vdi技术架构的多媒体重定向方法和系统 | |
CN101778287B (zh) | 一种数字电视导航方法、系统及装置 | |
KR20190003729A (ko) | 컨텐트 분산 네트워크들에서 엠펙 미디어 전송 통합을 위한 방법 및 장치 | |
CN101622873B (zh) | 由服务器播送音频和视频数据序列的方法 | |
US20190141352A1 (en) | Tile-based 360 vr video encoding method and tile-based 360 vr video decoding method | |
KR100785012B1 (ko) | 3d 압축 데이터 생성, 복원 방법 및 그 장치 | |
CN110446070A (zh) | 一种视频播放的方法和装置 | |
WO2016107174A1 (zh) | 多媒体文件数据的处理方法及系统、播放器和客户端 | |
CN115278366B (zh) | 虚拟机视频流的数据处理方法、装置以及电子设备 | |
CN116828198B (zh) | 在nvidia gpu上支持va-api硬件视频加速接口的方法 | |
WO2015188729A1 (zh) | 视频编码方法和解码方法和相关装置 | |
US8639845B2 (en) | Method for editing multimedia pages on a terminal using pre-stored parameters of objects appearing in scenes | |
JP2008532405A (ja) | Mpegデコーダのための適応型フォールバックシステム | |
CN114466225A (zh) | 视频数据播放方法及装置、电子设备和可读存储介质 | |
Dong et al. | A Study on H. 264 Live Video Technology with Android System |
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 |
Effective date of registration: 20220214 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |