IP Library Granted Patent US 10,592,417
Granted Patent B2
US 10,592,417 · App. 15/655,344 · Granted Mar 17, 2020

Video redirection in virtual desktop environments

Inventors: Lavesh Bhatia (Palo Alto, CA); Shixi Qiu (Palo Alto, CA)
Assignee: VMware, Inc.
G06F12/0868G06F9/452G06F9/45529G06F9/45558G06F16/9574H04N21/431H04N21/4316H04N21/4437H04N21/4782H04N21/8543G06F2009/45579G06F2009/45583
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,592,417
App. No.
15/655,344
Granted
Mar 17, 2020
Kind
B2
Abstract

A system is described for playing embedded video on the Web inside the virtual desktop. A video element, such as an HTML5 video element, in a webpage accessed through a browser in the virtual desktop can be detected and video content for the video element can be intercepted before it is decoded in the virtual desktop. The encoded video data can be transmitted to the client device. On the client device, a counterpart video rendering application can receive the transmitted video data, decode it, and render it in a window that is overlaid onto a corresponding area of the virtual desktop graphical user interface (GUI) in a client application. Headless video composition can be implemented for rendering the video on the client, giving the illusion of the video playing inside the virtual desktop, while it is actually playing on the client itself.

Claims (48)

1. A method for redirecting video in a virtual desktop environment, the method comprising:

remoting a virtual desktop executing on a remote server to a client device, the virtual desktop executing a web browser accessing a webpage with an embedded video;

intercepting video data for the embedded video transmitted to the virtual desktop inside the web browser by a web browser extension before the video is decoded on the virtual desktop; and

transmitting the encoded video intercepted by the web browser extension to the client device;

wherein the encoded video is decoded and rendered on the client device.

2. The method of claim 1 , further comprising:

identifying a video element corresponding to the embedded video in the webpage on the virtual desktop; and

blocking the video element in the virtual desktop graphical user interface by placing a dummy object over the video element.

3. The method of claim 2 , wherein:

the dummy object is a solid element colored in a color key; and

the encoded video is rendered on the client device and the video is drawn only over areas of the GUI where the color key is present.

4. The method of claim 1 , further comprising:

detecting a video command for the video in the virtual desktop; and

communicating the video command from the virtual desktop to the client device.

5. The method of claim 1 , wherein the video is an HTML5 (Hypertext Markup Language 5) video.

6. The method of claim 1 , wherein the video is conveyed to the client device over a protocol virtual channel.

7. A computing device, comprising: at least one processor; and

memory including instructions that, when executed by the at least one processor, cause the computing device to perform the steps of:

remoting a virtual desktop executing on a remote server to a client device, the virtual desktop executing a web browser accessing a webpage with an embedded video;

intercepting video data for the embedded video transmitted to the virtual desktop inside the web browser by a web browser extension before the video is decoded on the virtual desktop; and

transmitting the encoded video intercepted by the web browser extension to the client device; and

wherein the encoded video is decoded and rendered on the client device.

8. The computing device of claim 7 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

identifying a video element corresponding to the embedded video in the webpage on the virtual desktop; and

blocking the video element in the virtual desktop graphical user interface by placing a dummy object over the video element.

9. The computing device of claim 8 , wherein:

the dummy object is a solid element colored in a color key; and

the encoded video is rendered on the client device and the video is drawn only over areas of the GUI where the color key is present.

10. The computing device of claim 8 , wherein the memory further includes instructions that when executed by the at least one processor, cause the computing device to perform the steps of:

detecting a video command for the video in the virtual desktop; and

communicating the video command from the virtual desktop to the client device.

11. The computing device of claim 8 , wherein the video is an HTML5 (Hypertext Markup Language 5) video.

12. The computing device of claim 8 , wherein the video is conveyed to the client device over a protocol virtual channel.

13. A non-transitory computer readable storage medium comprising one or more sequences of instructions, the instructions when executed by one or more processors causing the one or more processors to execute the operations of:

remoting a virtual desktop executing on a remote server to a client device, the virtual desktop executing a web browser accessing a webpage with an embedded video;

intercepting video data for the embedded video transmitted to the virtual desktop inside the web browser by a web browser extension before the video is decoded on the virtual desktop; and

transmitting the encoded video intercepted by the web browser extension to the client device;

wherein the encoded video is decoded and rendered on the client device.

14. The non-transitory computer readable storage medium of claim 13 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

identifying a video element corresponding to the embedded video in the webpage on the virtual desktop; and

blocking the video element in the virtual desktop graphical user interface by placing a dummy object over the video element.

15. The non-transitory computer readable storage medium of claim 14 , wherein:

the dummy object is a solid element colored in a color key; and

the encoded video is rendered on the client device and the video is drawn only over areas of the GUI where the color key is present.

16. The non-transitory computer readable storage medium of claim 13 , further comprising instructions that when executed by the one or more processors cause the one or more processors to execute the operations of:

detecting a video command for the video in the virtual desktop; and

communicating the video command from the virtual desktop to the client device.

17. The non-transitory computer readable storage medium of claim 13 , wherein the video is an HTML5 (Hypertext Markup Language 5) video.

Assignments (4)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2017
From: BHATIA, LAVESH; QIU, SHIXI
To: VMWARE, INC.
Reel/Frame 043056/0420 →