IP Library Granted Patent US 11,750,892
Granted Patent B2
US 11,750,892 · App. 17/544,822 · Granted Sep 5, 2023

Systems and methods of alternative networked application services

Inventors: Ronald A. Brockmann (Los Gatos, CA); Maarten Hoeben (Acquapendente, IT)
Assignee: Active Video Networks, Inc.
H04N21/6587H04N21/23106H04N21/4312H04N21/632H04N21/8456H04N21/8547
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 11,750,892
App. No.
17/544,822
Granted
Sep 5, 2023
Kind
B2
Abstract

A server computing device hosts one or more virtual machines. A first virtual machine corresponding to a first client device receives a first media stream that includes first content corresponding to a plurality of frames of video data and generates a first digest segment that corresponds to the first media stream. The first digest segment includes a representation of the plurality of frames but does not include the video data. The first virtual machine stores the first digest segment in a cache at the server system. A second virtual machine corresponding to a second client device receives a playback position of the first media stream playing at the second client device and uses the playback position from the second client device and the first digest segment stored in the cache to perform processing to recreate a representation of the playback of the first media stream on the second client device.

Claims (62)

1. A method comprising:

at a server system hosting one or more virtual machines, each associated with a respective client device of one or more client devices for playback of media streams:

at a first virtual machine corresponding to a first client device:

receiving, a first media stream that includes first content corresponding to a plurality of frames of video data;

generating a first digest segment that corresponds to the first media stream, wherein the first digest segment includes a representation of the plurality of frames but does not include the video data; and

storing the first digest segment in a cache at the server system; and

at a second virtual machine corresponding to a second client device distinct from the first client device, that is playing back the first media stream:

receiving a playback position of the first media stream at the second client device; and

using the playback position from the second client device and the first digest segment stored in the cache to perform processing to recreate a representation of the playback of the first media stream on the second client device.

2. The method of claim 1 , further comprising:

determining, using the first digest segment, a first overlay for the first media stream; and

transmitting, to the first client device, the first overlay for the first media stream.

3. The method of claim 1 , wherein processing to recreate a representation of the playback of the first media stream on the second client device comprises, at the second virtual machine, using the first digest segment, stored in the cache, to generate a reconstructed media stream based on the first digest segment, wherein the reconstructed media stream includes dummy data that is distinct from the video data.

4. The method of claim 1 , further comprising:

determining, using the first digest segment stored in the cache and the received playback position, a second overlay for the first media stream; and

transmitting, to the second client device, the second overlay for the first media stream.

5. The method of claim 4 , further comprising:

at the second virtual machine:

receiving, from the second client device, a playback command;

in response to receiving the playback command, determining, using the reconstructed media stream, a first playback position of the first media stream at the second client device;

wherein: the second overlay is determined based on the playback command for the first media stream; and

the second overlay is transmitted to the second client device for display at the first playback position of the first media stream.

6. The method of claim 5 , wherein:

the second virtual machine of the one or more virtual machines executes a first application that includes a first Application Programming Interface (API); and

determining the first overlay comprises transmitting the reconstructed media stream to the first application via the first API and receiving the first overlay back from the first API.

7. The method of claim 6 , wherein the first overlay comprises one or more graphical user interface elements provided by the first application.

8. The method of claim 1 , further comprising, determining, at the first virtual machine, that there is not a digest segment stored in the cache corresponding to the first media stream, wherein the generating and storing are performed in accordance with the determination that there is not a digest segment stored in the cache corresponding to the first media stream.

9. The method of claim 1 , further comprising:

receiving, at a fourth virtual machine, a fourth media stream that includes a plurality of frames of video data, wherein the fourth media stream includes content distinct from the first content of the first media stream; and

in accordance with a determination that the fourth media stream is not associated with a digest segment stored in the cache:

sending a request for the fourth media stream that includes the plurality of frames of video data;

generating a second digest segment for the fourth media stream; and

storing the second digest segment for the fourth media stream in the cache.

10. The method of claim 1 , further comprising:

receiving, at a fifth virtual machine, a fifth media stream that includes a plurality of frames of video data from a third client device; and

in accordance with a determination that the fifth media stream is associated with a digest segment stored in the cache, sending a command to the third client device to stop transmitting the fifth media stream that includes a plurality of frames of video data.

11. The method of claim 1 , wherein the video data comprises image content in each frame of the plurality of frames in the first media stream.

12. The method of claim 1 , wherein the playback position comprises a timestamp indicating a position within the first media stream.

13. The method of claim 1 , wherein the playback position further comprises frame headers for the first media stream.

14. The method of claim 1 , wherein the representation of the plurality of frames in the first digest segment includes a segment header for the first media stream.

15. The method of claim 1 , wherein the representation of the plurality of frames in the first digest segment includes at least one respective frame header that corresponds to a respective frame of the plurality of frames.

16. The method of claim 1 , wherein the representation of the plurality of frames in the first digest segment includes a frame identifier for at least one respective frame of the plurality of frames.

17. The method of claim 1 , wherein the first media stream is received from the first client device.

18. The method of claim 1 , wherein the first media stream is received from a content provider.

19. A computer readable storage medium storing one or more programs for execution by a server system hosting one or more virtual machines, each associated with a respective client device of one or more client devices for playback of media streams, the one or more programs including instructions for:

at a first virtual machine corresponding to a first client device:

receiving, a first media stream that includes first content corresponding to a plurality of frames of video data;

generating a first digest segment that corresponds to the first media stream, wherein the first digest segment includes a representation of the plurality of frames but does not include the video data; and

storing the first digest segment in a cache at the server system; and

at a second virtual machine corresponding to a second client device distinct from the first client device, that is playing back the first media stream:

receiving a playback position of the first media stream at the second client device; and

using the playback position from the second client device and the first digest segment stored in the cache to perform processing to recreate a representation of the playback of the first media stream on the second client device.

20. A server system, hosting one or more virtual machines, each associated with a respective client device of one or more client devices for playback of media streams, comprising:

one or more processors; and

memory storing one or more programs for execution by the one or more processors, the one or more programs including instructions for:

at a first virtual machine corresponding to a first client device:

receiving, a first media stream that includes first content corresponding to a plurality of frames of video data;

generating a first digest segment that corresponds to the first media stream, wherein the first digest segment includes a representation of the plurality of frames but does not include the video data; and

storing the first digest segment in a cache at the server system; and

at a second virtual machine corresponding to a second client device distinct from the first client device, that is playing back the first media stream:

receiving a playback position of the first media stream at the second client device; and

using the playback position from the second client device and the first digest segment stored in the cache to perform processing to recreate a representation of the playback of the first media stream on the second client device.

Assignments (3)
CONFIRMATORY ASSIGNMENT Recorded Mar 26, 2024
From: BROCKMANN, RONALD A
To: ACTIVEVIDEO NETWORKS, LLC
Reel/Frame 066910/0348 →
CONFIRMATORY ASSIGNMENT Recorded Mar 26, 2024
From: HOEBEN, MAARTEN
To: ACTIVEVIDEO NETWORKS, LLC
Reel/Frame 066910/0473 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2022
From: BROCKMANN, RONALD A.; HOEBEN, MAARTEN
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 061231/0112 →
Continuity (3)
Continuation PCTUS2021061896 · Dec 3, 2021
Provisional Application 63122425 · Dec 7, 2020
Related Publication 20220182732A1 · Jun 9, 2022