Media acceleration for virtual computing services
First Claim
1. A method for transmitting a media stream between a local host and a remote rendering device comprising:
- transmitting desktop information between the local host and the remote rendering device using a first channel using a remoting protocol;
identifying an uncompressed media stream that is being rendered on the local host, wherein the media stream is being rendered with the desktop information transmitted using the remoting protocol;
capturing bitmap content for the identified media stream after the media stream has been rendered on the local host, wherein the capturing prevents a remoting protocol from processing the rendered bitmap content for transmission to the remote rendering device, and wherein the capturing includes intercepting calls to render the identified media stream as bitmap content;
encoding the identified media stream using an encoder configured to encode streaming media and supported on both the local host and the remote rendering device, wherein encoding includes encapsulating the bitmap content in a software wrapper; and
transmitting the encoded media stream to the remote rendering device using a second channel comprising a media acceleration channel associated with the remoting protocol to cause the encoded content of the media stream to be decoded and displayed with the desktop information at the remote rendering device.
3 Assignments
0 Petitions
Accused Products
Abstract
Streaming media is problematic for thin clients using remoting protocols like RDP that were never designed to handle the volume of data associated with multimedia. The result is large demands on the host computer and thin client CPU and excessive bandwidth on the network, which results in a poor display quality. A process running on a host computer detects an existing multimedia acceleration channel to a thin client and also identifies unaccelerated media streams like Adobe Flash. The unaccelerated content is automatically re-encoded using a codec format supported by the thin client acceleration channel. This results in a significant improvement in the quality of the streaming media displayed on the thin client and overall reductions in host CPU load, network bandwidth and thin client CPU load. No additional software is required on the thin clients to support new media types including Adobe Flash.
48 Citations
18 Claims
-
1. A method for transmitting a media stream between a local host and a remote rendering device comprising:
-
transmitting desktop information between the local host and the remote rendering device using a first channel using a remoting protocol; identifying an uncompressed media stream that is being rendered on the local host, wherein the media stream is being rendered with the desktop information transmitted using the remoting protocol; capturing bitmap content for the identified media stream after the media stream has been rendered on the local host, wherein the capturing prevents a remoting protocol from processing the rendered bitmap content for transmission to the remote rendering device, and wherein the capturing includes intercepting calls to render the identified media stream as bitmap content; encoding the identified media stream using an encoder configured to encode streaming media and supported on both the local host and the remote rendering device, wherein encoding includes encapsulating the bitmap content in a software wrapper; and transmitting the encoded media stream to the remote rendering device using a second channel comprising a media acceleration channel associated with the remoting protocol to cause the encoded content of the media stream to be decoded and displayed with the desktop information at the remote rendering device. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system, comprising:
-
a local host hosting a desktop environment, including a remoting protocol for transmitting a rendered desktop between the local host and a remote rendering device on a first channel over a computer network, the remoting protocol having an associated second channel including a media acceleration channel supporting an encoder configured to encode a media stream on the local host, the local host being configured to; identify the media stream for the rendered desktop that is being rendered on the local host wherein the media stream is being rendered with the rendered desktop transmitted using the remoting protocol; capture bitmap content for the identified media stream after the media stream has been rendered on the local host, wherein the capture prevents a remoting protocol from processing the rendered bitmap content for transmission to the remote rendering device, and wherein the capturing includes intercepting calls to render the identified media stream as bitmap content; encode the identified media stream using the encoder configured to encode streaming media and supported by the remote rendering device, wherein encoding includes encapsulating the bitmap content in a software wrapper; transmit desktop information between the local host and the remote rendering device using the first channel using the remoting protocol; and transmit the encoded media stream to the remote rendering device using the media acceleration channel associated with the remoting protocol to cause the remote rendering device to decode and display the encoded content of the media stream with the desktop information. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer program product, comprising:
-
nontransitory computer readable storage including computer program instructions stored in locations on the computer readable storage for processing by a local host, wherein the local host hosts a desktop environment including a remoting protocol for transmitting a rendered desktop between the local host and a remote rendering device on a first channel over a computer network, wherein the remoting protocol has an associated second channel including a media acceleration channel supporting an encoder configured to encode streaming media, wherein the local host includes the encoder, wherein the local host, when processing the computer program instructions, is configured to; identify a media stream for the rendered desktop that is being rendered on the local host, wherein the media stream is being rendered with the rendered desktop transmitted using the remoting protocol; capture bitmap content for the identified media stream after the media stream has been rendered on the local host, wherein the capture prevents the remoting protocol from processing the rendered bitmap content for transmission to the remote rendering device, and wherein the capturing includes intercepting calls to render the identified media stream as bitmap content; encode the identified media stream using the encoder configured to encode streaming media and supported by the remote rendering device, wherein encoding includes encapsulating the bitmap content in a software wrapper; transmit desktop information between the local host and the remote rendering device using the first channel using the remoting protocol; and transmit the encoded media stream to the remote rendering device using the media acceleration channel associated with the remoting protocol to cause the remote rendering device to decode and display the encoded content of the media stream with the desktop information. - View Dependent Claims (15, 16, 17, 18)
-
Specification