IP Library › Granted Patent US 10,735,496
Granted Patent B2
US 10,735,496 · App. 13/871,684 · Granted Aug 4, 2020

Server side video screen capture

Inventors: Tovi Grossman (Toronto, CA); George Fitzmaurice (Toronto, CA)
Assignee: Autodesk, Inc.
H04L67/10
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,735,496
App. No.
13/871,684
Granted
Aug 4, 2020
Kind
B2
Abstract

A technique for capturing the output of a software application, controlled by an end-user of a client computer, on a server computer. The data may be captured from a hosted application running on the server computer, an application simulating the operations of an application used by the end-user on the client computer, or from a capture stream sent by an application on the client computer. A capture engine stores the capture data on the server computer without consuming processing or memory resources of the client computer. Furthermore, the capture data is immediately available on the server computer for sharing and publication, without consuming network bandwidth or a long upload delay.

Claims (106)

1. A computer-implemented method for publishing information that reflects the operation of a software application executing on a first computing device, the method comprising:

receiving, at a second computing device, a capture stream that reflects the operation of the software application executing on the first computing device, wherein the capture stream includes at least a portion of input data provided by an end-user and at least a portion of output data generated in response to the input data;

performing one or more storage operations, at the second computing device, to store capture data included within the capture stream;

automatically terminating, at the second computing device, the one or more storage operations in response to instructions within the input data; and

publishing, at the second computing device, the capture data for access via a network.

2. The computer-implemented method of claim 1 , further comprising, at the first computing device:

initiating generation of the capture stream automatically prior to generating the output data; and

terminating the generation of the capture stream in response to no additional output data being generated.

3. The computer-implemented method of claim 1 , further comprising, at the first computing device:

initiating generation of the capture stream in response to a first input received from the end-user; and

terminating the generation of the capture stream in response to a second input received from the end-user.

4. The computer-implemented method of claim 1 , further comprising receiving input from the end-user that specifies a portion of the output data to be included in the at least a portion of the output data.

5. The computer-implemented method of claim 1 , wherein the second computing device is configured to publish the capture data by:

encoding the capture data according to a compression standard to generate an encoded sequence;

storing the encoded sequence at a first location in memory associated with the second computing device;

generating a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location; and

transmitting the URL to the first computing device.

6. The computer-implemented method of claim 1 , wherein the second computing device is configured to publish the capture data by:

transmitting the capture data to a third computing device configured to:

encode the capture data according to a compression standard to generate an encoded sequence,

store the encoded sequence at a first location in memory associated with the third computing device,

generate a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location, and

transmit the URL to the first computing device.

7. The computer-implemented method of claim 1 , wherein the second computing device is configured to publish the capture data by:

transmitting the capture data to a third computing device configured to:

encode the capture data according to a compression standard to generate an encoded sequence, and

transmit the encoded sequence to a fourth computing device configured to:

store the encoded sequence at a first location in memory associated with the fourth computing device,

generate a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location, and

transmit the URL to the first computing device.

8. The computer-implemented method of claim 1 , wherein the capture stream reflects the operation of an operating system (OS) program that executes on the first computing device.

9. The computer-implemented method of claim 1 , wherein the second computing device is configured to publish the capture data by:

storing the capture data in memory associated with the second computing device; and

publishing the capture data.

10. The computer-implemented method of claim 9 , wherein the second computing device is configured to derive and store the capture data without using a processing unit or memory unit of the first computing device.

11. The computer-implemented method of claim 1 , further comprising automatically pausing the one or more storage operations when there is no change in output of the software application.

12. The computer-implemented method of claim 1 , wherein the capture data is stored only when predetermined operations are performed by the software application.

13. The computer-implemented method of claim 1 , further comprising automatically pausing, at the second computing device, the one or more storage operations in response to no change in an output of the software application.

14. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to publish information that reflects the operation of a software application executing on a first computing device, by performing the steps of:

receiving, at a second computing device, a capture stream that reflects the operation of the software application executing on the first computing device, wherein the capture stream includes at least a portion of input data provided by an end-user and at least a portion of output data generated in response to the input data;

performing one or more storage operations, at the second computing device, to store capture data included within the capture stream;

automatically terminating, at the second computing device, the one or more storage operations in response to instructions within the input data; and

publishing, at the second computing device, the capture data for access via a network.

15. The one or more non-transitory computer-readable media of claim 14 , further comprising:

initiating generation of the capture stream automatically prior to generating the output data; and

terminating the generation of the capture stream in response to no additional output data being generated.

16. The one or more non-transitory computer-readable media of claim 14 , further comprising:

initiating generation of the capture stream in response to a first input received from the end-user; and

terminating the generation of the capture stream in response to a second input received from the end-user.

17. The one or more non-transitory computer-readable media of claim 14 , further comprising receiving input from the end-user that specifies a portion of the output data to be included in the at least a portion of the output data.

18. The one or more non-transitory computer-readable media of claim 14 , wherein the second computing device is configured to publish the capture data by:

encoding the capture data according to a compression standard to generate an encoded sequence;

storing the encoded sequence at a first location in memory associated with the second computing device;

generating a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location; and

transmitting the URL to the first computing device.

19. The one or more non-transitory computer-readable media of claim 14 , wherein the second computing device is configured to publish the capture data by:

transmitting the capture data to a third computing device configured to:

encode the capture data according to a compression standard to generate an encoded sequence,

store the encoded sequence at a first location in memory associated with the third computing device,

generate a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location, and

transmit the URL to the first computing device.

20. The one or more non-transitory computer-readable media of claim 14 , wherein the second computing device is configured to publish the capture data by:

transmitting the capture data to a third computing device configured to:

encode the capture data according to a compression standard to generate an encoded sequence, and

transmit the encoded sequence to a fourth computing device configured to:

store the encoded sequence at a first location in memory associated with the fourth computing device,

generate a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location, and

transmit the URL to the first computing device.

21. The one or more non-transitory computer-readable media of claim 14 , wherein the capture stream reflects the operation of an operating system (OS) program that executes on the first computing device.

22. A system for publishing information that reflects the operation of a software application executing on a first computing device, the system comprising:

a second computing device having a processing unit that is configured to:

receive a capture stream that reflects the operation of the software application executing on the first computing device, wherein the capture stream includes at least a portion of input data provided by an end-user and at least a portion of output data generated in response to the input data;

perform one or more storage operations to store capture data included within the capture stream;

automatically terminate the one or more storage operations in response to instructions within the input data; and

publish the capture data for access via a network.

23. The system of claim 22 , wherein the second computing device is configured to publish the capture data by:

encoding the capture data according to a compression standard to generate an encoded sequence;

storing the encoded sequence at a first location in memory associated with the second computing device;

generating a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location; and

transmitting the URL to the first computing device.

24. The system of claim 22 , wherein the second computing device is configured to publish the capture data by:

transmitting the capture data to a third computing device configured to:

encode the capture data according to a compression standard to generate an encoded sequence,

store the encoded sequence at a first location in memory associated with the third computing device,

generate a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location, and

transmit the URL to the first computing device.

25. The system of claim 22 , wherein the second computing device is configured to publish the capture data by:

transmitting the capture data to a third computing device configured to:

encode the capture data according to a compression standard to generate an encoded sequence, and

transmit the encoded sequence to a fourth computing device configured to:

store the encoded sequence at a first location in memory associated with the fourth computing device,

generate a uniform resource locator (URL) that provides access to the encoded sequence stored at the first location, and

transmit the URL to the first computing device.

26. A computer-implemented method for publishing information that reflects the operation of a software application executing on a first computing device, the method comprising:

receiving, at a second computing device, a capture stream that reflects the operation of the software application executing on the first computing device, wherein the capture stream includes at least a portion of input data provided by an end-user and at least a portion of output data generated in response to the input data;

performing one or more storage operations, at the second computing device, to store capture data included within the capture stream, wherein the capture data is stored only when predetermined operations are performed by the software application; and

publishing, at the second computing device, the capture data for access via a network.

27. One or more non-transitory computer-readable media including instructions that, when executed by one or more processors, cause the one or more processors to publish information that reflects the operation of a software application executing on a first computing device, by performing the steps of:

receiving, at a second computing device, a capture stream that reflects the operation of the software application executing on the first computing device, wherein the capture stream includes at least a portion of input data provided by an end-user and at least a portion of output data generated in response to the input data;

performing one or more storage operations, at the second computing device, to store capture data included within the capture stream, wherein the capture data is stored only when predetermined operations are performed by the software application; and

publishing, at the second computing device, the capture data for access via a network.

28. A system for publishing information that reflects the operation of a software application executing on a first computing device, the system comprising:

a second computing device having a processing unit that is configured to:

receive a capture stream that reflects the operation of the software application executing on the first computing device, wherein the capture stream includes at least a portion of input data provided by an end-user and at least a portion of output data generated in response to the input data;

perform one or more storage operations to store capture data included within the capture stream, wherein the capture data is stored only when predetermined operations are performed by the software application; and

publish the capture data for access via a network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2016
From: GROSSMAN, TOVI; FITZMAURICE, GEORGE
To: AUTODESK, INC.
Reel/Frame 038415/0528 →
Continuity (2)
Provisional Application 61807274 · Apr 1, 2013
Related Publication 20140297717A1 · Oct 2, 2014