IP Library Granted Patent US 10,129,310
Granted Patent B1
US 10,129,310 · App. 14/832,627 · Granted Nov 13, 2018

In-application demonstration using video and data streams

Inventor: Christopher David Brunning (Rugby, GB)
Assignee: Twitch Interactive, Inc.
H04L65/4092G06F3/033G06F3/0484G06F9/453G09B5/06H04L43/106H04L65/604
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,129,310
App. No.
14/832,627
Granted
Nov 13, 2018
Kind
B1
Abstract

Techniques for in-application demonstration using video and data streams are described herein. A video stream comprising video data that includes an instructional video may be received and played. A data stream associated with the video stream may be received at least partially concurrently with, or during, receiving of the video stream. It may then be determined when the playing of the video stream proceeds to a first data location, and the playing of the video stream may be stopped. A first portion of data within the data stream that is associated with the first data location within the video stream may then be identified. The first portion of data may include an indication of at least one operation performable within an executing application. Instructions may then be provided, based at least in part on the first portion of data, for performing the at least one operation within the executing application.

Claims (59)

1. A computing system for demonstration, within an executing application, of at least one operation associated with an instructional video comprising:

one or more processors;

one or more memories having stored therein computer instructions that, upon execution by the one or more processors, cause at least the computing system to perform operations comprising:

receiving and playing a video stream comprising video data that includes the instructional video;

receiving, at least partially concurrently with the receiving and the playing of the video stream, a data stream associated with the video stream, wherein a plurality of data collections are associated with the video stream, wherein the data stream is associated with a first data collection of the plurality of data collections, and wherein the first data collection is selected based on one or more characteristics of the executing application and/or a client;

determining when the playing of the video stream proceeds to a first data location within the video steam;

stopping the playing of the video stream;

identifying a first portion of data within the data stream that is associated with the first data location within the video stream, wherein the first portion of data includes an indication of the at least one operation performable within the executing application, the indication comprising first instructions for determining a screen location associated with a control, for causing a pointer or cursor to move to the screen location, and for selecting the control;

providing, based at least in part on the first portion of data, second instructions for performing, by a component installed on the computing system, the at least one operation within the executing application;

determining that the at least one operation has been performed; and

resuming the playing of the video stream based, at least in part, on the determining that the at least one operation has been performed.

2. The computing system of claim 1 , wherein at least the identifying and the providing are performed by a plug-in component that executes in combination with the executing application.

3. The computing system of claim 1 , wherein identifying the first portion of data within the data stream that is associated with the first data location within the video stream comprises:

identifying, within the video stream, a first timestamp value associated with the first data location;

searching, within the data stream, for a first portion of data associated with the first timestamp value; and

determining that the first portion of data within the data stream is associated with the first timestamp value.

4. The computing system of claim 1 , wherein the indication further comprises an indication of an identifier associated with the control.

5. The computing system of claim 1 , wherein the data stream comprises third instructions for determining that the at least one operation has been performed based, at least in part, on receiving an invocation of a callback function.

6. A method for demonstration, within an executing application, of at least one operation associated with an instructional video comprising:

receiving and playing a video stream comprising video data that includes the instructional video;

receiving, during the receiving and the playing of the video stream, a data stream associated with the video stream, wherein a plurality of data collections are associated with the video stream, wherein the data stream is associated with a first data collection of the plurality of data collections, and wherein the first data collection is selected based on one or more characteristics of the executing application and/or a client;

determining when the playing of the video stream proceeds to a first data location within the video steam;

stopping the playing of the video stream;

identifying a first portion of data within the data stream that is associated with the first data location within the video stream, wherein the first portion of data includes an indication of the at least one operation performable within the executing application, the indication comprising first instructions for determining a screen location associated with a control, for causing a pointer or cursor to move to the screen location, and for selecting the control; and

providing, based at least in part on the first portion of data, second instructions for performing, by a component installed on a computing system, the at least one operation within the executing application.

7. The method of claim 6 , wherein the indication further comprises an indication of an identifier associated with the control.

8. The method of claim 6 , wherein at least the identifying and the providing are performed by a plug-in component that executes in combination with the executing application.

9. The method of claim 6 , wherein identifying the first portion of data within the data stream that is associated with the first data location within the video stream comprises:

identifying, within the video stream, a first timestamp value associated with the first data location;

searching, within the data stream, for a first portion of data associated with the first timestamp value; and

determining that the first portion of data within the data stream is associated with the first timestamp value.

10. The method of claim 6 , further comprising:

detecting user input requesting interruption of performance of the at least one operation; and

responsively causing performance of the at least one operation to be ceased.

11. The method of claim 6 , further comprising:

determining that the at least one operation has been performed; and

resuming the playing of the video stream based, at least in part, on the determining that the at least one operation has been performed.

12. The method of claim 6 , wherein the data stream comprises third instructions for determining that the at least one operation has been performed based, at least in part, on receiving an invocation of a callback function.

13. The method of claim 6 , wherein the data stream comprises third instructions generated based, at least in part, on captured user input.

14. One or more non-transitory computer-readable storage media having stored thereon computing instructions that, upon execution by one or more compute nodes, cause the one or more compute nodes to perform operations comprising:

receiving and playing a video stream comprising video data that includes an instructional video;

receiving, during the receiving and the playing of the video stream, a data stream associated with the video stream, wherein a plurality of data collections are associated with the video stream, wherein the data stream is associated with a first data collection of the plurality of data collections, and wherein the first data collection is selected based on one or more characteristics of an executing application and/or a client;

determining when the playing of the video stream proceeds to a first data location within the video steam;

stopping the playing of the video stream;

identifying a first portion of data within the data stream that is associated with the first data location within the video stream, wherein the first portion of data includes an indication of at least one operation performable within the executing application, the indication comprising first instructions for determining a screen location associated with a control, for causing a pointer or cursor to move to the screen location, and for selecting the control; and

providing, based at least in part on the first portion of data, second instructions for performing, by a component installed on a computing system, the at least one operation within the executing application.

15. The one or more non-transitory computer-readable storage media of claim 14 , wherein the indication further comprises an indication of an identifier associated with the control.

16. The one or more non-transitory computer-readable storage media of claim 14 , wherein at least the identifying and the providing are performed by a plug-in component that executes in combination with the executing application.

17. The one or more non-transitory computer-readable storage media of claim 14 , wherein identifying the first portion of data within the data stream that is associated with the first data location within the video stream comprises:

identifying, within the video stream, a first timestamp value associated with the first data location;

searching, within the data stream, for a first portion of data associated with the first timestamp value; and

determining that the first portion of data within the data stream is associated with the first timestamp value.

18. The one or more non-transitory computer-readable storage media of claim 14 , wherein the operations further comprise:

detecting user input requesting interruption of performance of the at least one operation; and

responsively causing performance of the at least one operation to be ceased.

19. The one or more non-transitory computer-readable storage media of claim 14 , wherein the operations further comprise:

determining that the at least one operation has been performed; and

resuming the playing of the video stream based, at least in part, on the determining that the at least one operation has been performed.

20. The one or more non-transitory computer-readable storage media of claim 14 , wherein the data stream comprises third instructions for determining that the at least one operation has been performed based, at least in part, on receiving an invocation of a callback function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2016
From: BRUNNING, CHRISTOPHER DAVID
To: TWITCH INTERACTIVE, INC.
Reel/Frame 040441/0925 →
Cited By (3)
US 12,389,080 US 12,598,241 US 12,694,904