WO2014121477A1 - Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur - Google Patents

Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur Download PDF

Info

Publication number
WO2014121477A1
WO2014121477A1 PCT/CN2013/071493 CN2013071493W WO2014121477A1 WO 2014121477 A1 WO2014121477 A1 WO 2014121477A1 CN 2013071493 W CN2013071493 W CN 2013071493W WO 2014121477 A1 WO2014121477 A1 WO 2014121477A1
Authority
WO
WIPO (PCT)
Prior art keywords
data frame
video data
video
client
processing instruction
Prior art date
Application number
PCT/CN2013/071493
Other languages
English (en)
Chinese (zh)
Inventor
陈普
许天锡
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to CN201380000046.7A priority Critical patent/CN104067627B/zh
Priority to PCT/CN2013/071493 priority patent/WO2014121477A1/fr
Publication of WO2014121477A1 publication Critical patent/WO2014121477A1/fr

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 or manipulating encoded video stream scene graphs
    • H04N21/2343Processing 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

Definitions

  • the present invention relates to the field of information technology, and in particular, to a video redirection method, apparatus, system, and computer readable medium.
  • Remote desktop With the continuous development of computer technology, remote desktop has become a popular technology. Remote desktop technology transfers the content displayed on the remote server screen to the local client for display by logging in to the remote server. Remote desktop applications not only refer to remote screen displays, but also remote video delivery.
  • a multimedia player based on the DirectShow® framework introduced by Microsoft® can be used to load a video file through the video player on a remote server.
  • the Filter in DirectShow® intercepts the undecoded video data, inserts the Filter in the client's DirectShow® framework, receives the video data sent by the remote server for decoding and display, and sends the video data display information to the client, but the video is redirected.
  • the solution relies on Microsoft® Media Player® video player and does not post-process video data, affecting the user experience.
  • the embodiment of the invention discloses a method, a device, a system and a computer readable medium for video redirection to implement post processing of video data frames.
  • the embodiment of the present invention discloses a video redirection method, including: intercepting a first video data frame and a first video data frame processing instruction sent by a video player to a virtual display driver;
  • the video data frame processing instruction processes the second video data frame
  • the first video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction
  • the second video The data frame is the first video data frame or a video data frame obtained by converting the first video data frame by a video encoding format; when the client does not support video data frame decoding, sending the data to the client The second video data frame and the second video data frame processing instruction, so that the client processes the second video data frame according to the second video data frame processing instruction, where the second video data frame processing The instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is a decoded video data frame, the second video data frame is the first video data frame, The second video data frame processing instruction is the first video data frame processing instruction; when the first video data frame is
  • the method further includes: when the client supports video data frame decoding, and the client does not support the video player to the virtual
  • the first video data frame is subjected to video encoding format conversion to obtain the second video data frame; wherein, the second video data frame is
  • the video encoding format is a video encoding format supported by the client.
  • the first video data frame is subjected to video encoding format conversion to obtain the second video data frame, Specifically, the virtual display driver performs video encoding format conversion on the first video data frame to obtain the second video data frame.
  • the method includes: when the client does not support video data frame decoding, and when the first video data frame is an undecoded video data frame, sending the second video data frame and the second video data frame processing to the client Before the instruction, the first video data frame is decoded according to the video data frame decoding instruction in the first video data frame processing instruction to obtain the second video data frame.
  • the method further includes: when the client does not support video data frame decoding, Before the client sends the second video data frame and the second video data frame processing instruction, compressing the second video data frame; sending a second video data frame to the client, specifically to the The client sends the compressed second video data frame.
  • the method further includes: sending, by the intercepting video player, a virtual display driver Obtaining a video data frame processing capability of the client before a video data frame and a first video data frame processing instruction; the video data frame processing capability of the client includes a video data frame decoding capability, according to the video data frame decoding capability And determining whether the client supports video data frame decoding.
  • the method further includes: determining, according to the video data frame processing capability of the client When the client supports the decoding of the video data frame, before sending the second video data frame and the first video data frame processing instruction to the client, acquiring video encoding format information of the video data frame supported by the client, according to The video encoding format information determines whether the client supports a video encoding format of the first video data frame.
  • the intercepting the first video data frame and the first video data frame processing instruction sent by the video player to the virtual display driver specifically, the virtual display driver intercepts the first video data frame And the first video processing instruction.
  • an embodiment of the present invention discloses a server, including:
  • An intercepting unit configured to intercept a first video data frame and a first video data frame processing instruction sent by the video player to the virtual display driver;
  • a sending unit configured to send, when the client supports video data frame decoding, a second video data frame and the first video data frame processing instruction to the client, so that the client is configured according to the first video data
  • the frame processing instruction processes the second video data frame, where the first video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, and the second video data frame a video data frame obtained by converting the first video data frame or the first video data frame by a video encoding format;
  • the client When the client does not support video data frame decoding, sending a second video data frame and a second video data frame processing instruction to the client, so that the client processes the instruction according to the second video data frame.
  • the second video data frame processing is performed, where the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is a decoded video data frame
  • the second video data frame is the first video data frame
  • the second video data frame processing instruction is the first video data frame processing instruction
  • the first video data frame is undecoded In the video data frame
  • the second video data frame is a decoded first video data frame
  • the first video data frame processing instruction includes a video data frame decoding instruction, the video data frame post-processing instruction, and the video.
  • the data frame presents instructions.
  • the method further includes a converting unit, where the converting unit is configured to support video data frame decoding when the client supports When the client does not support the video encoding format of the first video data frame sent by the video player to the virtual display driver, the first video data frame is converted into a video encoding format to obtain the first And a video encoding format of the second video data frame is a video encoding format supported by the client.
  • the converting unit is specifically the virtual display driving, and the video data of the first video data frame is performed.
  • the encoding format conversion, obtaining the second video data frame specifically includes: the virtual display driver performs video encoding format conversion on the first video data frame to obtain the second video data frame.
  • the method further includes: a decoding unit, when the client does not support video data frame decoding, and when the first video data frame is The undecoded video data frame, before the second video data frame and the second video data frame processing instruction are sent to the client, according to the video data frame decoding instruction in the first video data frame processing instruction The first video data frame is decoded to obtain the second video data frame.
  • the method further includes a compression unit, where the compression unit is configured to: when the client does not support video data frames Decoding, before transmitting the second video data frame and the second video data frame processing instruction to the client, compressing the second video data frame; sending a second video data frame to the client, Specifically, the compressed second video data frame is sent to the client.
  • the method further includes an acquiring unit, where the acquiring unit is used by the acquiring unit Obtaining before acquiring the first video data frame and the first video data frame processing instruction sent by the video player to the virtual display driver
  • the video data frame processing capability of the client; the video data frame processing capability of the client includes a video data frame decoding capability, to determine whether the client supports video data frame decoding according to the video data frame decoding capability.
  • the acquiring unit is further configured to: according to the video data frame processing capability of the client And determining, before the client supports video data frame decoding, acquiring a video encoding format of the video data frame supported by the client, before sending the second video data frame and the first video data frame processing instruction to the client And determining information, according to the video encoding format information, whether the client supports a video encoding format of the first video data frame.
  • the intercepting unit is specifically a virtual display driver, and the virtual display driver Intercepting the first video data frame and the first video processing instruction.
  • an embodiment of the present invention discloses a server, including a memory and a central processing unit, where the memory and the central processing unit are connected by a system bus, where the memory stores computer executable instructions when the server is running.
  • the central processor executes the computer-executable instructions stored in the memory, so that the server performs the following steps: intercepting a first video data frame and a first video data frame processing instruction sent by the video player to the virtual display driver;
  • the second video data frame instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, where the second video data frame is the first Video data frame or a video data frame obtained by converting the first video data frame by a video encoding format;
  • the client does not support video data frame decoding, sending the second video data frame and the second video data frame to the client Directing, by the client, to process the second video data frame according to the second video data frame processing instruction, where the second video data frame processing instruction includes a video data frame post-processing instruction and video data a frame presentation instruction;
  • the first video data frame is a decoded video data frame
  • the second video data frame is the first video data frame
  • the second video data frame processing instruction is the a video data frame processing instruction
  • the first video data frame is an undecoded video data
  • the method further includes: when the client supports video data frame decoding, and the client does not support the video player to the And performing a video encoding format conversion on the first video data frame to obtain the second video data frame, where the second video data frame is obtained.
  • the video encoding format is the video encoding format supported by the client.
  • the first video data frame is subjected to video encoding format conversion to obtain the second video data frame, Specifically, the virtual display driver performs video encoding format conversion on the first video data frame to obtain the second video data frame.
  • the method further includes: when the client does not support video data frame decoding, and when the first video data frame is undecoded a video data frame, before the second video data frame and the second video data frame processing instruction are sent to the client, processed according to the first video data frame
  • the video data frame decoding instruction in the instruction decodes the first video data frame to obtain the second video data frame.
  • the method further includes: when the client does not support video data frame decoding, to the client Before transmitting the second video data frame and the second video data frame processing instruction, compressing the second video data frame; sending the second video data frame to the client, specifically to the client The terminal sends the compressed second video data frame.
  • the method further includes: sending, by the intercepted video player, a virtual display driver Obtaining a video data frame processing capability of the client before the first video data frame and the first video data frame processing instruction; the video data frame processing capability of the client includes a video data frame decoding capability, to decode according to the video data frame Capability, determining whether the client supports video data frame decoding.
  • the method further includes: determining the client according to the video data frame processing capability of the client When the video data frame is decoded, the video encoding format information of the video data frame supported by the client is acquired before the second video data frame and the first video data frame processing instruction are sent to the client, according to the The video encoding format information determines whether the client supports the video encoding format of the first video data frame.
  • the intercepting video player sends the first video to the virtual display driver
  • the data frame and the first video data frame processing instruction in particular, the virtual display driver intercepts the first video data frame and the first video processing instruction.
  • an embodiment of the present invention discloses a video redirection system, including a client. And the server according to any one of the second aspects of the embodiments of the present invention.
  • the embodiment of the present invention discloses a video redirection system, including a client and a server according to any one of the third aspects of the embodiments of the present invention.
  • an embodiment of the present invention discloses a computer readable storage medium.
  • the computer executes the computer readable storage medium, the computer performs the following steps: intercepting a first video sent by the video player to the virtual display driver. a data frame and a first video data frame processing instruction;
  • the second video data frame instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, where the second video data frame is the first a video data frame or a video data frame obtained by converting the first video data frame by a video encoding format; when the client does not support video data frame decoding, sending the second video data frame and the second to the client The video data frame processing instruction, so that the client processes the second video data frame according to the second video data frame processing instruction, where the second video data frame processing instruction includes video data frame post processing Command and video data frame presentation instructions; when the first video data frame is a decoded video data frame, the second video data The frame is the first video data frame, the second video data frame processing instruction is the first video data frame processing instruction; when the first video data frame is an undecoded video data frame, the The second
  • the method further includes: when the client supports video data frame decoding, and the client does not support the video
  • the client when the player is in the video encoding format of the first video data frame sent by the virtual display driver, the first video data frame is subjected to video encoding format conversion to obtain the second video data frame;
  • the video encoding format of the second video data frame is a video encoding format supported by the client.
  • the first video data frame is subjected to video encoding format conversion to obtain the second video data frame, Specifically, the virtual display driver performs video encoding format conversion on the first video data frame to obtain the second video data frame.
  • the method further includes: when the client does not support video data frame decoding, and when the first video data frame is an undecoded video data frame, Decoding the first video data frame according to the video data frame decoding instruction in the first video data frame processing instruction before sending the second video data frame and the second video data frame processing instruction to the client Obtaining the second video data frame.
  • the method further includes: when the client does not support video data frame decoding, to the client Before transmitting the second video data frame and the second video data frame processing instruction, compressing the second video data frame; sending a second video data frame to the client, specifically sending to the client The compressed second video data frame.
  • the method further includes: sending, by the intercepted video player, a virtual display driver Obtaining a video data frame processing capability of the client before the first video data frame and the first video data frame processing instruction; the video data frame processing capability of the client includes a video data frame decoding capability, to decode according to the video data frame Capability, determining whether the client supports video data frame decoding.
  • the method further includes: determining, according to the video data frame processing capability of the client, the client When the video data frame is decoded, the video encoding format information of the video data frame supported by the client is acquired before the second video data frame and the first video data frame processing instruction are sent to the client, according to the The video encoding format information determines whether the client supports the video encoding format of the first video data frame.
  • the intercepting video player sends the first to the virtual display driver a video data frame and a first video data frame processing instruction, specifically, the virtual display driver intercepts the first video data frame and the first video processing instruction.
  • the embodiment of the present invention intercepts the video data frame and the video data frame processing instruction sent by the video player to the virtual display driver, and according to whether the client supports video data frame decoding, the video data frame, the video data frame decoding instruction, and the video data frame.
  • the post-processing instruction and the video data frame presentation instruction are sent to the client for processing, or the decoded video data frame, the video data frame post-processing instruction, and the video data frame presentation instruction are sent to the client for processing, thereby being implemented on the client side.
  • the video data frame is post-processed to ensure the user's video experience.
  • the present invention can be implemented without relying on a specific video player.
  • FIG. 1 is a schematic diagram of an application scenario system according to an embodiment of the present invention.
  • FIG. 2 is a schematic structural diagram of a remote desktop server according to an embodiment of the present invention.
  • FIG. 3 is a flowchart of post processing of a video data frame according to an embodiment of the present invention.
  • FIG. 4a and FIG. 4b are diagrams showing a post-processing effect of a video data frame according to an embodiment of the present invention
  • FIG. 5 is a diagram showing a rendering effect of a video data frame according to an embodiment of the present invention
  • FIG. 6a, 6b, 6c, and 6d are schematic diagrams of a virtual desktop structure according to an embodiment of the present invention
  • FIG. 7 is a flowchart of video redirection according to an embodiment of the present invention
  • FIG. 8 is a schematic structural diagram of a server according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of a system according to an embodiment of the present invention.
  • the client initiates a video play request, and the server loads the video file through the video player according to the video play request of the client, and transmits the video stream of the video file to the client.
  • This process is called video redirection.
  • the server in the embodiment of the present invention may be a general personal computer or other terminal, or may be a commercial server, etc., and is not specifically limited herein.
  • the embodiment of the present invention provides a remote desktop service based on the Windows® operating system platform to the client.
  • the invention is described in detail by way of example. However, the solution of the present invention is not limited to the Windows® operating system. According to the solution of the present invention, it can be extended to other common system platforms, such as the Linux® operating system.
  • the embodiment of the invention discloses a method for video redirection, which is applied to a remote desktop scenario.
  • Remote desktop scenarios typically consist of a local computer and a remote computer.
  • Local computer pass Access the remote computer and transfer the remote computer desktop to the local computer.
  • the local computer that is, the client in the embodiment of the present invention
  • the remote computer that is, the server in the embodiment of the present invention.
  • the video redirection in the embodiment of the present invention refers to transmitting the video data stream of the video file on the server to the client.
  • One of the remote desktop scenarios is a virtual desktop infrastructure scenario, but the present invention is not limited to the architecture shown in FIG. 1.
  • the solution of the present invention can be applied to other scenarios for transmitting remote video data to a client.
  • the virtual desktop infrastructure scenario is shown in FIG. 1.
  • FIG. 1 is not specifically limited to the application of the present invention.
  • the left side of FIG. 1 is a client of a virtual desktop, and the device form of the client may be a general computer 101a, a tablet 101b, a smart phone 101c, and the like. They access the remote desktop service over the network 102 using the Remote Desktop Protocol 103.
  • the servers 204a....204n provide a carrier for the remote desktop, and the user's virtual desktop (Virtual Desktop) runs on the server in the form of virtual machines 205a, 205b-205n.
  • the virtual desktop management system 106 is configured to provide functions such as mapping of a client's client to a virtual machine.
  • the client first connects to the virtual desktop management system 106, obtains the virtual machine address of the user, and then connects to the virtual machine.
  • the virtual desktop management system 106 can be a server or a general personal computer. The present invention does not specifically limit this.
  • the user accesses the virtual desktop (ie, virtual machine) assigned to the user through the client, and the virtual desktop transmits the content accessed by the user to the user's client for display.
  • a typical structure in the server 204a includes three parts, a hardware platform 300, a virtualization platform (also referred to as a hypervisor) 301, and a virtual machine execution space 302.
  • the hard disk 310, the central processing unit 311, the network interface card 312, and the memory 313 in the physical structure of the server may be included in the hardware platform 300.
  • Hypervisor 301 and virtual machine execution space 302 provide virtual machine respectively Hardware platform and software platform.
  • the Hypervisor includes virtual machine monitors 320a, 320b-320n.
  • Hypervisor is the middle layer between physical hardware and virtual machines, and is responsible for coordinating the access of each virtual machine to the hardware platform.
  • the virtual machine monitor includes a virtual hardware platform that implements the virtual machine.
  • the virtual machine monitor 320a includes a virtual hardware platform 321a.
  • the virtual hardware platform includes a virtual memory 322, a central processing unit 323, a hard disk 324, a graphics card 325, a network interface card 326, and the like.
  • Running in a virtual machine execution space 302 multiple virtual machines 205a, 205b ⁇ 205 ⁇ ⁇ 205a of the virtual machine software system running on a virtual machine monitor 320a provides a virtual hardware platform 321a, other virtual machine software system is also running in the corresponding Virtual machine monitor on the virtual hardware platform.
  • the guest operating system 330 runs in the virtual machine 205a.
  • the guest operating system 330 includes a device driver layer 331, and the device driver layer 331 is installed with drivers such as a virtual display driver 334 and a network interface card driver 336.
  • a video player 332 is included in the virtual machine 205a.
  • the guest operating system 330 can be a Windows® operating system platform provided by Microsoft®.
  • the video file is loaded by the video player 332.
  • the video data frame processing capability of the client 101a is provided to the virtual machine 205a, wherein the video data frame processing capability includes the video data frame decoding capability, and the client 101a is also provided to the virtual machine 205a.
  • Video encoding format information of supported video data frames such as video files supporting video encoding formats such as H.264, AVI, and FLV.
  • a local video is taken as an example, and a video play request from the client 101a is received by the desktop protocol server 335, and the video player 332 loads the video file according to the video play request.
  • the video player 332 demultiplexes the loaded video file to obtain a video data frame.
  • the video player 332 needs to determine whether the virtual machine 205a supports the video hardware acceleration function during initialization, and the video player 332 sends the video hardware plus to the virtual display driver 334.
  • Speed capability query request Video hardware acceleration refers to processing a video data frame by using a computer software instead of a software algorithm of a video player, and specifically includes decoding a video data frame and post-processing a video data frame.
  • DXVA Mircosoft® video hardware acceleration
  • DXVA DirectX® Video Acceleration
  • the video data frame is post-processed and the video data frame is post-processed.
  • Presentation is described.
  • DXVA not only provides video data frame decoding processing, but also video data frame post-processing, such as image scaling, color space conversion and de-interlacing.
  • DXVA is a post-processing flowchart for video data frames. DXVA can process the main data stream and the 15-way sub-data stream.
  • the main data stream is subjected to noise filtering, de-interlacing processing, detail filtering and color space conversion, it is mixed with the color space-converted sub-data stream and mixed.
  • the subsequent video data stream is subjected to image adjustment, wherein the image adjustment includes brightness, contrast, saturation adjustment, and the like.
  • the image-scaled video stream is image scaled to adjust the image size.
  • the image-scaled data is subjected to color space conversion, so that the video data stream is subjected to video data frame presentation.
  • color space conversion including conversion from RGB color space to YUV color space, or conversion from YUV color space to RGB color space, where RGB represents red, green and blue, respectively, YUV represents brightness, chromaticity and concentration, respectively.
  • FIG 3 depicts the process of video post processing. Not all functions in the actual application will be used. In actual tests, most players such as Microsoft® Media Player, Storm Video 8, QQ® Video Player, etc. only use image scaling by default to scale the decoded video data frame from the original size to the playback window size.
  • the video data frame post-processing is specifically performed by taking image scaling as an example, and the decoded video data frame is subjected to image scaling, and the original image size is adjusted to be suitable for presentation on the display. The specific effect is shown in Figure 4a.
  • Video data frame post-processing can also include transparency blending, as shown 4b is shown.
  • the video data frame post-processing in the embodiment of the present invention may further include brightness, contrast, and saturation adjustment. This allows the client to present a better video experience to the user.
  • the decoded video data frame is subjected to video data frame post-processing, and the video data frame post-processed by the video data frame is sent to the graphics card according to the video data frame presentation instruction, and is presented by the display.
  • the video data frame presentation instruction carries a presentation parameter, and the presentation parameter includes a video data frame to be presented and a presentation area of the video data frame.
  • an image formed after post-processing of a video data frame includes four regions to be presented, denoted as 1, 2, 3, and 4, respectively, and a desktop image, which is presented on a display, wherein the desktop image has The area is used to present the user with the "display settings, audio settings, and subtitle settings" options.
  • the "display settings, audio settings, and subtitle settings” option areas need to be presented, and the "display”
  • the setting, audio setting, and subtitle setting "option area corresponds to the intermediate area enclosed by the four presentation areas 1, 2, 3, and 4. Therefore, the video data frames corresponding to the intermediate areas surrounded by the four presentation areas 1, 2, 3, and 4 do not need to be presented, and the video data frames constituting the intermediate areas surrounded by the four presentation areas 1, 2, 3, and 4 are not presented.
  • the video data frame This allows the video picture to be integrated with the desktop, providing users with a better video viewing experience.
  • the principle of the video data frame post-processing performed by the client 101a in the embodiment of the present invention is the same as that of the present invention and will not be described again.
  • the hardware of the virtual machine 205a is not the real physical hardware of the virtual machine 205a, but the virtual hardware provided by the virtual machine monitor 320a.
  • the video player 332 queries the virtual display driver 334 for the video hardware acceleration capability of the virtual machine 205a, and can be queried by calling the GetCaps function.
  • the hardware acceleration device can be created by calling the CreateDevice or CreateDecodeDevice function to determine whether the virtual machine 205a supports video hardware acceleration.
  • the virtual display driver 334 When the video player 332 initiates a video querying the virtual display driver 334 for the virtual machine 205a In the hardware acceleration capability, the virtual display driver 334 returns a query request response supporting the video hardware acceleration capability to the video player 332, and the video player 332 determines the video hardware acceleration capability supported by the virtual machine 205a according to the query request response, wherein the video hardware acceleration Capabilities include video data frame decoding capabilities and video data frame post-processing capabilities.
  • the video player 332 sends the video data frame and the video data frame processing instruction to the virtual display driver 334.
  • an implementation manner is that the virtual display driver 334 intercepts the video data frame and the video data frame processed by the video player 332. instruction.
  • the virtual display driver 334 intercepts the video data frame and video data frame processing instructions is specifically described below.
  • the video player 332 in the virtual machine 205a according to the video play request sent by the corresponding client 101a, after the video player 332 loads the video file, starts the video hardware acceleration, and sends the video data frame and the video data to the virtual display driver 334. Frame processing instructions.
  • the loaded video file that is, the video data stream is demultiplexed, to obtain a video data frame therein.
  • a video hardware acceleration interface is defined in the DirectX® runtime library 333, and the video hardware acceleration is initiated by the video player 332 calling the DirectX® runtime library 333, informing the virtual display driver 334 to process the instruction according to the video data frame.
  • the video data frame transmitted by the video player 332 is processed.
  • the virtual display driver 334 intercepts the video data frame and video data frame processing instructions.
  • the virtual display driver is Windows® Display Driver Model (referred to as WDDM display driver model) or Windows® XP Display Driver Model (referred to as XPDM display driver model).
  • the WDDM or XPDM display driver models include the Display Driver and Miniport Driver modules.
  • an implementation scheme is that the display driver module of the virtual display driver intercepts the video data frame and the video data frame processing instruction.
  • an implementation scheme is a WDDM or XPDM display driver model.
  • the video hardware acceleration interface is defined in the Display Driver module. When the video data frame and the video data frame processing instruction pass through the interface, the video data frame and the video data frame processing instruction are intercepted.
  • the embodiment of the present invention intercepts another embodiment of the video data frame and the video data frame processing instruction.
  • the video player 332 in the virtual machine 205a performs video playback according to the video playback request sent by the corresponding client 101a.
  • the video file is loaded by the device 332
  • the video hardware acceleration is turned on, and the video data frame and the video data frame processing instruction are transmitted to the virtual display driver 334.
  • the video player 332 loads the video file, the loaded video file, that is, the video data stream is demultiplexed, to obtain a video data frame therein.
  • a video hardware acceleration interface is defined in the DirectX® runtime library 333, and the video hardware acceleration is initiated by the video player 332 calling the DirectX® runtime library 333, informing the virtual display driver 334 to process the instruction according to the video data frame.
  • the video data frame transmitted by the video player 332 is processed.
  • the DirectX® runtime library 333 invokes the virtual display driver 334 to process the video data frame, ie, after the video data frame and video data frame processing instructions pass through the DirectX® runtime 333, before the virtual display driver 334 is reached, the dynamic link
  • the library intercepts the video data frame and video data frame processing instructions.
  • one of the dynamic link library implementations is to use the Hook technology to intercept the call of the virtual display driver 334 by the DirectX® runtime library 333, and implement a dynamic link library file (dll file) for the virtual display driver 334 Hook, and It is set to be loaded first in the registry to intercept the call of the DirectX® runtime 333 to the virtual display driver 334 to enable interception of video data frames and video data frame processing instructions.
  • dll file dynamic link library file
  • the embodiment of the present invention intercepts another embodiment of the video data frame and the video data frame processing instruction.
  • the video player 332 in the virtual machine 205a performs video playback according to the video playback request sent by the corresponding client 101a.
  • the video hardware acceleration is turned on, and the video data frame and the video are transmitted to the virtual display driver 334. Frequency data frame processing instructions.
  • the video player 332 demultiplexes the loaded video file, that is, the video data stream, to obtain a video data frame therein.
  • a video hardware acceleration interface is defined in the DirectX® runtime 333, and the DirectX® runtime 333 is called by the video player 332 to send video data frames and video data frame processing instructions to the virtual display driver 334.
  • the video hardware acceleration is initiated, and the virtual display driver 334 is notified to process the video data frame sent by the video player 332.
  • the DirectX® runtime intercepts the video data frame and video data frame processing instructions.
  • the embodiment of the present invention intercepts another embodiment of the video data frame and the video data frame processing instruction.
  • the video player 332 in the virtual machine 205a performs video playback according to the video playback request sent by the corresponding client 101a.
  • the video file is loaded by the device 332
  • the video hardware acceleration is turned on, and the video data frame and the video data frame processing instruction are transmitted to the virtual display driver 334.
  • the video player 332 loads the video file, the loaded video file, that is, the video data stream is demultiplexed, to obtain a video data frame therein.
  • a video hardware acceleration interface is defined in the DirectX® runtime library 333, and the video player 332 calls the DirectX® runtime library 333 to initiate video hardware acceleration, when transmitting video data frames and video data frame processing instructions. That is, before the video data frame and video data frame processing instructions arrive at the DirectX® runtime 333, the dynamic link library intercepts the video data frame and video data frame processing instructions. To do this, you need to implement a dynamic link library file (dll file) for the DirectX® runtime 333 Hook, and set it to be loaded first in the registry to intercept the video player 332 to the DirectX® runtime 333. Called to achieve interception of video data frames and video data frame processing instructions.
  • dll file dynamic link library file
  • the video player 332 queries the virtual display driver 334.
  • Know the virtual machine 205a support
  • the video data frame is decoded and the video data frame is post-processed, and the video data frame and the video data frame are captured when the client 101a supports the video data frame decoding and the video encoding format of the video data frame sent by the video player 332 to the virtual display driver 334.
  • the processing instruction sends the intercepted video data frame and the video data frame to the desktop protocol server 335.
  • the desktop protocol server 335 transmits the intercepted video data frame and video data frame processing instructions to the client 101a.
  • the video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction.
  • This embodiment is applicable to the following scenarios: intercepting a first video data frame and a first video data frame processing instruction sent by the video player 332 to the virtual display driver 334; and when the client 101a supports video data frame decoding, the client is 101a transmitting a second video data frame and the first video data frame processing instruction, so that the client 101a processes the second video data frame according to the first video data frame processing instruction, where the first The video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, and the second video data frame is the first video data frame.
  • the video player 332 queries the virtual display driver 334. It is learned that the virtual machine 205a supports video data frame decoding and video data frame post-processing, and the client 101a supports video data frame decoding, but does not support the video encoding format of the video data frame transmitted by the video player 332 to the virtual display driver 334.
  • the video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction
  • the desktop protocol server 335 receives the intercepted video.
  • the data frame, the video codec module of the desktop protocol server 335 decodes the video data frame according to the video data frame decoding instruction, and performs the decoded video data frame according to the video encoding format of the video data frame supported by the client 101a.
  • the video data frame processing instruction includes, a video data frame post-processing instruction, a video data frame presentation instruction, and a video data frame decoding instruction, where the video The data frame decoding instruction includes video encoding format parameters of the re-encoded video data frame.
  • This embodiment is applicable to the following scenarios: intercepting a first video data frame and a first video data frame processing instruction sent by the video player 332 to the virtual display driver 334; and when the client 101a supports video data frame decoding, the client is 101a transmitting a second video data frame and the first video data frame processing instruction, so that the client 101a processes the second video data frame according to the first video data frame processing instruction, where the first The video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, where the second video data frame is a video data frame obtained by converting the first video data frame by a video encoding format. .
  • the video player 332 is virtualized in a scheme in which the virtual display driver 334 as shown in FIG. 6a intercepts the video data frame and the video data frame processing instructions transmitted by the video player 332 to the virtual display driver 334.
  • the display driver 334 queries the learned virtual machine 205a to support video data frame decoding and video data frame post-processing, and the client 101a supports video data frame decoding, but does not support the video player 332 to virtual display.
  • the video codec module in the virtual display driver 334 decodes the captured video data frame according to the intercepted video data frame decoding instruction, according to the support of the client 101a.
  • the video encoding format of the video data frame encodes the decoded video data frame to generate a new video data frame decoding instruction, where the new video data frame decoding instruction includes a video encoding format parameter of the re-encoded video data frame
  • the video data frame processing instruction includes a video data frame post-processing instruction, a video data frame presentation instruction, and a video data frame decoding instruction, where the video data frame decoding instruction includes a video encoding format parameter of the re-encoded video data frame.
  • the desktop protocol server 335 sends the re-encoded video data frame and the video data frame processing instruction to the client 101a, where the video data frame processing instruction includes, the video data frame post-processing instruction, the video data frame presentation instruction, and the video data frame decoding.
  • the virtual machine 205a on the server 204a does not process the video data frame according to the video data frame post-processing instruction, but is processed by the client, which fully utilizes the computing resources of the client, and saves the computing resources of the server.
  • This embodiment is applicable to the following scenarios: intercepting a first video data frame and a first video data frame processing instruction sent by the video player 332 to the virtual display driver 334; and when the client 101a supports video data frame decoding, the client is 101a transmitting a second video data frame and the first video data frame processing instruction, so that the client 101a processes the second video data frame according to the first video data frame processing instruction, where the first
  • the video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, where the second video data frame is a video obtained by converting the first video data frame by a video encoding format.
  • the video player 332 decodes the video data frame to obtain a decoded video data frame, and the video player 332 sends the decoded video data frame and the video data frame processing instruction to the virtual display driver 334; wherein the video data video
  • the desktop protocol server 335 sends the decoded video data frame and the video data frame processing instruction to the client 101a.
  • the decoded video data frame may be compressed, which may be implemented by a compression module in the desktop protocol server 335.
  • This embodiment is applicable to: capturing the first video data frame and the first video data frame processing instruction sent by the video player 332 to the virtual display driver 334; when the client 101a does not support video data frame decoding, The client 101a sends a second video data frame and a second video data frame processing instruction, so that the client 101a processes the second video data frame according to the second video data frame processing instruction, where
  • the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is a decoded video data frame, the second video data frame is the first Video data frame, The second video data frame processing instruction is the first video data frame processing instruction.
  • the virtual display driver 334 as shown in FIG. 6a intercepts the video data frame and the video data frame processing instruction sent by the video player 332 to the virtual display driver 334, when the client 101a does not support The video data frame is decoded, and the video player 332 queries the virtual display driver 334 to learn that the virtual machine 205a supports the video data frame post-processing but does not support the video data frame decoding. After the video player 332 loads the video file, the video file is demultiplexed.
  • the video player 332 decodes the video data frame to obtain a decoded video data frame, and the video player 332 sends the decoded video data frame and the video data frame processing instruction to the virtual display driver 334; Present the instruction.
  • the decoded video data frame and the video data frame processing instruction sent by the video player 332 are intercepted, and the desktop protocol server 335 transmits the decoded video data frame and the video data frame processing instruction to the client 101a.
  • the virtual display driver 334 intercepts the decoded video data frame and the video data frame processing instruction, and can compress the decoded video data frame, which can be implemented by the compression module in the virtual display driver 334.
  • This embodiment is applicable to: capturing the first video data frame and the first video data frame processing instruction sent by the video player 332 to the virtual display driver 334; when the client 101a does not support video data frame decoding, The client 101a sends a second video data frame and a second video data frame processing instruction, so that the client 101a processes the second video data frame according to the second video data frame processing instruction, where
  • the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is a decoded video data frame, the second video data frame is the first Video data frame, The second video data frame processing instruction is the first video data frame processing instruction.
  • FIG. 6a, FIG. 6b, FIG. 6c and FIG. 6d in the scheme of intercepting the video data frame and the video data frame processing instruction sent by the video player 332 to the virtual display driver 334, when the client 101a does not support the video data frame decoding, And the video player 332 queries the virtual display driver 334 to learn that the virtual machine 205a supports video data frame decoding and video data frame post-processing. After the video player 332 loads the video file, the video file is demultiplexed to obtain a video data frame and a video.
  • the player 332 transmits a video data frame and a video data frame processing instruction to the virtual display driver 334; wherein the video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction.
  • the video data frame and the video data frame processing instruction sent by the video player 332 are intercepted, and the desktop protocol server 335 decodes the video data frame according to the video data frame decoding instruction in the video data frame processing instruction, and the desktop protocol server 335 sends the decoded data frame.
  • the video data frame and video data frame processing instructions are sent to the client 101a, wherein the video data frame processing instructions include a video data frame post-processing instruction and a video data frame presentation instruction.
  • the desktop protocol server 335 can compress the decoded video data frame, which can be implemented by a compression module in the desktop protocol server 335, or can be implemented by a compression module in the virtual display driver 334, and then The compressed decoded video data frame and video data frame processing instructions are transmitted by the desktop protocol server 335 to the client 101a. Since the virtual machine 205a in the server 204a does not process the video data frame according to the video data frame post-processing instruction, the computing resources and network transmission bandwidth of the server are saved, and the computing resources of the client are fully utilized.
  • This embodiment is applicable to: capturing the first video data frame and the first video data frame processing instruction sent by the video player 332 to the virtual display driver 334; when the client 101a does not support video data frame decoding, The client 101a sends a second video data frame and a second video data frame processing instruction, so that the client 101a processes the second video data frame according to the second video data frame processing instruction.
  • the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction.
  • the first video data frame is an undecoded video data frame
  • the second video data frame is The decoded first video data frame
  • the first video data frame processing instruction includes a video data frame decoding instruction, the video data frame post-processing instruction, and the video data frame rendering instruction.
  • the video player 332 when the client 101a does not support video data frame decoding, and the video player 332 queries the virtual display driver 334 to learn that the virtual machine 205a supports video data frame decoding and After the video data frame is post-processed, after the video player 332 loads the video file, the video file is demultiplexed to obtain a video data frame, and the video player 332 sends a video data frame and a video data frame processing instruction to the virtual display driver 334;
  • the data frame processing instructions include a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction.
  • the virtual display driver 334 intercepts the video data frame and the video data frame processing instruction sent by the video player 332, decodes the video data frame according to the video data frame decoding instruction in the video data frame processing instruction, and sends the decoded data by the desktop protocol server 335.
  • the video data frame and video data frame processing instructions are to the client 101a, wherein the video data frame processing instructions include a video data frame post-processing instruction and a video data frame presentation instruction.
  • the virtual display driver 334 may decode the decoded video data frame, and may be implemented by the compression module in the virtual display driver 334, or may be implemented by the desktop protocol server 335.
  • the compression module is implemented, and then the compressed decoded video data frame and the video data frame processing instruction are sent by the desktop protocol server 335 to the client 101a. Since the server 204a processes the data, the computing resources and network transmission bandwidth of the server are saved, and the computing resources of the client are fully utilized.
  • This embodiment is applicable to the following scenario: intercepting the first video data frame and the first video data frame processing finger sent by the video player 332 to the virtual display driver 334 When the client 101a does not support video data frame decoding, the second video data frame and the second video data frame processing instruction are sent to the client 101a, so that the client 101a is based on the second video.
  • the data frame processing instruction processes the second video data frame, where the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is not The second video data frame is the decoded first video data frame, and the first video data frame processing instruction includes a video data frame decoding instruction and the video data frame post-processing instruction. And presenting instructions to the video data frame.
  • the embodiment of the present invention intercepts the video data frame and the video data frame processing instruction sent by the video player to the virtual display driver, and according to whether the client supports video data frame decoding, the video data frame, the video data frame decoding instruction, and the video data frame.
  • the post-processing instruction and the video data frame presentation instruction are sent to the client for processing, or the decoded video data frame, the video data frame post-processing instruction, and the video data frame presentation instruction are sent to the client for processing, thereby being implemented on the client side.
  • the video data frame is post-processed to ensure the user's video experience.
  • the present invention can be implemented without relying on a specific video player.
  • FIG. 7 A specific exemplary flowchart of the embodiment of the present invention is shown in FIG. 7 , and the specific steps are as follows:
  • Step 701 Determine whether the client has a video data frame decoding capability, and whether the virtual machine supports video data frame decoding and video data frame post-processing.
  • step 702a is performed;
  • the virtual machine does not support the video data frame decoding but supports the video data frame post-processing, and the step 702b is performed;
  • step 702c is performed.
  • Step 702a intercepting a video data frame and a video data frame processing instruction sent by the video player to the virtual display driver;
  • the video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction;
  • Step 703a Determine whether the client supports the video encoding format of the video data frame sent by the video player.
  • step 704a When the client supports the video encoding format of the video data frame sent by the video player, step 704a is performed; when the client does not support the video encoding format of the video data frame sent by the video player, step 704a' is performed.
  • Step 704a Send the intercepted video data frame and the video data frame processing instruction to the client;
  • Step 704a' Convert the video data frame into a video data frame of a video encoding format supported by the client.
  • Step 702b intercepting the decoded video data frame, the video data frame post-processing instruction, and the video data frame presentation instruction sent by the video player to the virtual display driver;
  • Step 703B Optionally, after step 702b, compressing the intercepted decoded video data frame;
  • Step 704C Send the decoded video data frame and the video data frame processing instruction to the client;
  • the video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction.
  • Step 702c intercepting a video data frame and a video data frame processing instruction sent by the video player;
  • the video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction;
  • Step 703c Decode the video data frame according to a video data frame decoding instruction.
  • steps 703B and 704C may also be continued.
  • the embodiment of the present invention provides a server 800, as shown in FIG. 8, including an intercepting unit 801 and a sending unit 802.
  • the intercepting unit 801 is configured to intercept the first video data frame and the first video data frame processing instruction sent by the video player to the virtual display driver;
  • the sending unit 802 is configured to: when the client supports decoding of the video data frame, send the second video data frame and the first video data frame processing instruction to the client, so that the client is configured according to the first video
  • the data frame processing instruction processes the second video data frame, where the first video data frame processing instruction includes a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction, the second video data
  • the frame is the first video data frame or a video data frame obtained by converting the first video data frame by a video encoding format;
  • the sending unit 802 is configured to: when the client does not support video data frame decoding, send a second video data frame and a second video data frame processing instruction to the client, so that the client is according to the second The video data frame processing instruction processes the second video data frame, where the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is The second video data frame is the first video data frame, and the second video data frame processing instruction is the first video data frame processing instruction; when the first video is When the data frame is an undecoded video data frame, the second video data frame is a decoded first video data frame, and the first video data frame processing instruction includes a video data frame decoding instruction, and the video data frame is Processing instructions and the video data frame presentation instructions.
  • the embodiment of the present invention intercepts a video data frame and a video data frame processing instruction sent by the video player to the virtual display driver, and according to whether the client supports the video data frame.
  • Decoding transmitting a video data frame, a video data frame decoding instruction, a video data frame post-processing instruction, and a video data frame presentation instruction to a client for processing, or decoding the decoded video data frame, a video data frame post-processing instruction, and video data
  • the frame rendering instruction is sent to the client for processing, so that the video data frame post-processing can be implemented on the client to ensure the user's video experience.
  • the present invention can be implemented without relying on a specific video player.
  • a conversion unit 803 is further included, where the conversion unit 803 is configured to: when the client supports video data frame decoding, and the client does not support the video player to send to the virtual display driver The video encoding format of the first video data frame, the first video data frame is subjected to a video encoding format conversion to obtain the second video data frame; wherein the video encoding format of the second video data frame is the The video encoding format supported by the client.
  • the converting unit 803 is specifically the virtual display driver, and the video data format conversion is performed on the first video data frame to obtain the second video data frame, which specifically includes: The virtual display driver performs video encoding format conversion on the first video data frame to obtain the second video data frame.
  • the server 800 provided by the embodiment of the present invention includes a decoding unit 801 and a sending unit 802, and a decoding unit 804, configured to: when the client does not support video data frame decoding, and when the first video data frame is not Decoding the video data frame, before transmitting the second video data frame and the second video data frame processing instruction to the client, according to the video data frame decoding instruction in the first video data frame processing instruction The first video data frame is decoded to obtain the second video data frame.
  • the server 800 provided by the embodiment of the present invention includes, in addition to the intercepting unit 801 and the sending unit 802, or the server 800, in addition to the intercepting unit 801, the sending unit 802, and the decoding unit 803, a compression unit 805, where the compression unit 805 is used.
  • the second video data frame is compressed before the second video data frame and the second video data frame processing instruction are sent to the client, and then sent to the client.
  • the second video data frame is specifically configured to send the compressed second video data frame to the client, thereby saving network transmission bandwidth.
  • the server 800 of the foregoing embodiment of the present invention further includes an obtaining unit 806, where the acquiring unit 806 is configured to intercept the first video data frame sent by the video player to the virtual display driver. Obtaining a video data frame processing capability of the client before the first video data frame processing instruction; the video data frame processing capability of the client includes a video data frame decoding capability, to determine a location according to the video data frame decoding capability Whether the client supports video data frame decoding. Further, the obtaining unit 806 further determines, according to the video data frame processing capability of the client, that the client supports the video data frame decoding, and sends the second video data frame and the first video data to the client. Before the frame processing instruction, the video encoding format information of the video data frame supported by the client is obtained, to determine, according to the video encoding format information, whether the client supports the video encoding format of the first video data frame.
  • the intercepting unit is specifically a virtual display driver, and the virtual display driver intercepts the first video data frame and the first video processing instruction.
  • the embodiment of the present invention further provides a video redirection system 900, including a server 800 and a client 1000.
  • the server 800 is configured to intercept the first video data frame and the first video data frame processing instruction sent by the video player to the virtual display driver;
  • the second video data frame and the first video data frame processing instruction are sent to the client 1000, so that the client 1000 processes according to the first video data frame.
  • the instruction processes the second video data frame, where the first video data frame processing instruction includes a video data frame decoding instruction and a video a data frame post-processing instruction and a video data frame presentation instruction, where the second video data frame is the first video data frame or a video data frame obtained by converting the first video data frame by a video encoding format;
  • the processing instruction is configured to process the second video data frame, where the second video data frame processing instruction includes a video data frame post-processing instruction and a video data frame presentation instruction; when the first video data frame is decoded
  • the second video data frame is the first video data frame
  • the second video data frame processing instruction is the first video data frame processing instruction
  • the first video data frame is In the case of an undecoded video data frame
  • the second video data frame is the decoded first video data frame
  • the first video data frame processing instruction includes a video data frame decoding instruction, and the video data frame post processing The instructions and the video data frame present instructions.
  • the client 1000 is configured to process the video data frame according to the video data frame processing instruction sent by the server 800.
  • the embodiment of the present invention intercepts the video data frame and the video data frame processing instruction sent by the video player to the virtual display driver, and according to whether the client supports video data frame decoding, the video data frame, the video data frame decoding instruction, and the video data frame.
  • the post-processing instruction and the video data frame presentation instruction are sent to the client for processing, or the decoded video data frame, the video data frame post-processing instruction, and the video data frame presentation instruction are sent to the client for processing, thereby being implemented on the client side.
  • the video data frame is post-processed to ensure the user's video experience.
  • the present invention can be implemented without relying on a specific video player.
  • the server 800 and the client 1000 provided in the embodiment of the present invention may be a general computer, a mobile terminal, a workstation, or a dedicated server, etc., which is not specifically limited by the present invention, and has a memory and at least one central processor, and the memory and the At least one central processing unit is coupled by a bus, the memory stores computer instructions, and the at least one central processing unit is configured to execute computer instructions in the memory, and also includes a common external interface and the like to implement some necessary components of the server function.
  • the algorithm for the computer instructions stored in the memory may refer to the description of the flowchart shown in FIG. 7.
  • the virtual desktop-based remote desktop architecture provided by the embodiment of the present invention, those skilled in the art may appreciate that the present invention is not limited to the described virtual desktop architecture of the present embodiment, and the remote desktop invention based on other types of virtual desktops The same applies.
  • the present invention is not only applicable to a virtual desktop-based remote desktop architecture, but also to other application scenarios that provide video data to remote clients.
  • the disclosed systems, devices, and methods may be implemented in other ways.
  • the device embodiments described above are merely illustrative, for example, the division of the unit is merely a logical function. Dividing, there may be another way of dividing in actual implementation, for example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be electrical, mechanical or otherwise.
  • the components displayed as the unit may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
  • each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
  • the functions may be stored in a computer readable storage medium if implemented in the form of a software functional unit and sold or used as a standalone product.
  • the technical solution of the present invention which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including
  • the instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: NAS (Network Attached Storage), U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or A variety of media such as optical discs that can store program code.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Selon l'invention, par interception de trames de données vidéo et d'une instruction de traitement de trame de données vidéo transmises d'un lecteur vidéo à un lecteur d'affichage virtuel, selon le point de savoir si un client prend ou non en charge un décodage de trame de données vidéo, les modes de réalisation de la présente invention transmettent au client les trames de données vidéo, une instruction de décodage de trame de données vidéo, une instruction de post-traitement de trame de données vidéo et une instruction de présentation de trame de données vidéo pour un traitement, ou transmettent au client les trames de données vidéo décodées, l'instruction de post-traitement de trame de données vidéo et l'instruction de présentation de trame de données vidéo pour un traitement, et peuvent ainsi réaliser un post-traitement de trame de données vidéo au niveau du client, garantissant l'expérience vidéo d'utilisateurs. En même temps, à condition qu'un lecteur vidéo côté serveur prenne en charge la fonction de redirection de vidéo, la présente invention peut être réalisée, sans s'appuyer sur un certain lecteur vidéo spécifique.
PCT/CN2013/071493 2013-02-07 2013-02-07 Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur WO2014121477A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201380000046.7A CN104067627B (zh) 2013-02-07 2013-02-07 一种视频重定向的方法、装置、系统及计算机可读介质
PCT/CN2013/071493 WO2014121477A1 (fr) 2013-02-07 2013-02-07 Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/071493 WO2014121477A1 (fr) 2013-02-07 2013-02-07 Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur

Publications (1)

Publication Number Publication Date
WO2014121477A1 true WO2014121477A1 (fr) 2014-08-14

Family

ID=51299186

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2013/071493 WO2014121477A1 (fr) 2013-02-07 2013-02-07 Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur

Country Status (2)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105611394A (zh) * 2015-12-21 2016-05-25 福建时迅信息科技有限公司 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

Families Citing this family (5)

* 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协议的远程视频显示方法及系统
CN106101794A (zh) * 2016-06-22 2016-11-09 杭州华三通信技术有限公司 一种虚拟桌面视频数据的处理方法、装置及系统
CN106888385A (zh) * 2017-01-17 2017-06-23 武汉噢易云计算股份有限公司 客户端在虚拟化环境下的视频播放方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390397A (zh) * 2006-02-24 2009-03-18 微软公司 加速视频编码
CN102158553A (zh) * 2011-03-31 2011-08-17 华为技术有限公司 用于远程桌面的播放多媒体文件的方法和装置
CN102547394A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 Vdi环境下云接入设备通用的音视频重定向方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582926B (zh) * 2009-06-15 2012-05-16 中国电信股份有限公司 实现远程媒体播放重定向的方法和系统
CN102541555A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 一种使用api拦截方式实现远程桌面视频流畅播放的方法
CN102695094B (zh) * 2012-05-15 2014-12-10 福建升腾资讯有限公司 Vdi环境下软硬件一体化音视频重定向的方法
CN102761603B (zh) * 2012-06-07 2014-10-22 福建升腾资讯有限公司 VDI环境下的网页flash视频重定向的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390397A (zh) * 2006-02-24 2009-03-18 微软公司 加速视频编码
CN102158553A (zh) * 2011-03-31 2011-08-17 华为技术有限公司 用于远程桌面的播放多媒体文件的方法和装置
CN102547394A (zh) * 2011-12-27 2012-07-04 福建升腾资讯有限公司 Vdi环境下云接入设备通用的音视频重定向方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105611394A (zh) * 2015-12-21 2016-05-25 福建时迅信息科技有限公司 Vdi环境下的视频重定向方法及系统
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

Also Published As

Publication number Publication date
CN104067627B (zh) 2017-08-04
CN104067627A (zh) 2014-09-24

Similar Documents

Publication Publication Date Title
CN111399964B (zh) 一种基于视频串流技术的云桌面平台
WO2014089793A1 (fr) Procédé, dispositif et système de réacheminement vidéo et support lisible par ordinateur
US10721282B2 (en) Media acceleration for virtual computing services
WO2014121477A1 (fr) Procédé, dispositif et système de redirection de vidéo, et support lisible par ordinateur
US10542301B2 (en) Multimedia redirection method, device, and system
EP3046331B1 (fr) Sytéme et dispositif de commande de média basés sur un "cloud desktop"
WO2021143182A1 (fr) Procédé et appareil de traitement de jeu, dispositif électronique, et support de stockage lisible par ordinateur
EP3706365B1 (fr) Procédé de transmission de données de flux secondaire et procédé d'affichage destiné à être utilisé dans une conférence, système de conférence et dispositif périphérique
WO2017124860A1 (fr) Système distribué de service de machine virtuelle multi-écran sans fil
KR20140035707A (ko) 가상화 시스템 및 가상화 서비스 제공방법
CN111240631A (zh) 基于AMD显卡虚拟化传输Linux虚拟机屏幕画面的方法及系统
WO2014139269A1 (fr) Procédé et appareil pour lire et traiter des vidéos sur la base d'un bureau virtuel
CN104349177B (zh) 一种在桌面云下转向播放多媒体文件的方法、虚拟机及系统
WO2020151660A1 (fr) Procédé et système de mise en nuage de stb, un stb mince, un stb et une plateforme virtuels et un support de stockage
WO2012151957A1 (fr) Serveur, client, et procédé et système de lecture de fichier vidéo à distance à l'aide de ceux-ci
KR101931514B1 (ko) 웹 브라우저에서 미디어의 재생과 백업을 동시에 수행하는 장치 및 방법
WO2024037110A1 (fr) Procédé et appareil de traitement de données, dispositif et support
AlDuaij et al. Heterogeneous multi-mobile computing
CN102546803B (zh) 基于能力集的远端桌面通信方法
CN114268626A (zh) 窗口处理系统、方法以及装置
CN106658070B (zh) 视频重定向的方法和装置
KR102199270B1 (ko) 클라우드 스트리밍 서비스 시스템, 스틸 이미지 기반 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
WO2016066056A1 (fr) Procédé de projection d'image à distance, serveur, et client
KR20170105317A (ko) 하드웨어 기반의 gpu를 이용한 가상머신의 화면 전송 방법 및 이를 이용한 장치
WO2016107174A1 (fr) Procédé et système de traitement de lecteur, de client et de données de fichier multimédia

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13874658

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13874658

Country of ref document: EP

Kind code of ref document: A1