IP Library Granted Patent US 11,128,903
Granted Patent B2
US 11,128,903 · App. 16/721,125 · Granted Sep 21, 2021

Systems and methods of orchestrated networked application services

Inventors: Ronald A. Brockmann (Los Gatos, CA); Maarten Hoeben (Amersfoort, NL); Gerrit Willem Hiddink (San Jose, CA)
Assignee: ActiveVideo Networks, Inc.
H04N21/2387H04N21/234H04N21/235H04N21/2662H04N21/435H04N21/44H04N21/47202H04N21/232H04N21/4431H04N21/4622
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,128,903
App. No.
16/721,125
Granted
Sep 21, 2021
Kind
B2
Abstract

A server computing device receives, from a client device, a digest segment generated by the client device. The digest segment corresponds to a first media stream segment received by the client device, and the digest segment includes a representation of the first media stream segment. The server computing devices determines, using the digest segment, a playback command that corresponds to the first media stream segment and transmits, to the client device, the playback command.

Claims (43)

1. A method comprising:

at a server computing device having one or more processors and memory storing one or more programs for execution by the one or more processors:

receiving, from a client device, a digest segment generated by the client device, wherein:

the digest segment corresponds to a first media stream segment, the first media stream segment received by the client device from a content provider distinct from the server, and

the digest segment includes a representation for each of a plurality of frames of video data of the first media stream segment, wherein the digest segment excludes frame data for each of the plurality of frames of video data and includes header information for the plurality of frames of video data;

generating a second media stream segment based on the digest segment, wherein the second media stream segment includes the header information for the plurality of frames of video data and dummy data that is distinct from the video data;

determining, using the second media stream segment, a playback command that corresponds to the first media stream segment; and

transmitting, to the client device, the playback command for controlling playback of the first media stream segment on a display communicatively coupled to the client device.

2. The method of claim 1 , wherein a second size of the generated second media stream segment is the same as a first size of the first media stream segment.

3. The method of claim 2 , wherein a third size of the digest segment is smaller than the first size of the first media stream segment.

4. The method of claim 1 , wherein generating the second media stream segment comprises reconstructing at least one respective frame of the plurality of frames of video data using the representation for the at least one respective frame.

5. The method of claim 1 , wherein at least a portion of the second media stream segment is generated using random or pseudorandom data.

6. The method of claim 1 , including, prior to receiving the digest segment that corresponds to the first media stream segment, transmitting a request for a first media stream that includes the first media stream segment.

7. The method of claim 1 , including:

prior to receiving the digest segment generated by the client device, receiving, from an orchestrator, an invocation communication that corresponds to request to execute instructions to run, by a virtual client virtual machine, a media application that corresponds to the media stream; and

in response to receiving the invocation communication, executing, by the virtual client virtual machine, the media application that corresponds to the media stream.

8. A non-transitory computer readable storage medium storing one or more programs for execution by one or more processors of a server system the one or more programs including instructions for:

receiving, from a client device, a digest segment generated by the client device, wherein:

the digest segment corresponds to a first media stream segment, the first media stream segment received by the client device from a content provider distinct from the server, and

the digest segment includes a representation for each of a plurality of frames of video data of the first media stream segment, wherein the digest segment excludes frame data for each of the plurality of frames of video data and includes header information for the plurality of frames of video data;

generating a second media stream segment based on the digest segment, wherein the second media stream segment includes the header information for the plurality of frames of video data and dummy data that is distinct from the video data;

determining, using the second media stream segment, a playback command that corresponds to the first media stream segment; and

transmitting, to the client device, the playback command for controlling playback of the first media stream segment on a display communicatively coupled to the client device.

9. A server system, 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:

receiving, from a client device, a digest segment generated by the client device, wherein:

the digest segment corresponds to a first media stream segment, the first media stream segment received by the client device from a content provider distinct from the server, and

the digest segment includes a representation for each of a plurality of frames of video data of the first media stream segment, wherein the digest segment excludes frame data for each of the plurality of frames of video data and includes header information for the plurality of frames of video data;

generating a second media stream segment based on the digest segment, wherein the second media stream segment includes the header information for the plurality of frames of video data and dummy data that is distinct from the video data;

determining, using the second media stream segment, a playback command that corresponds to the first media stream segment; and

transmitting, to the client device, the playback command for controlling playback of the first media stream segment on a display communicatively coupled to the client device.

10. The server system of claim 1 , wherein a second size of the generated second media stream segment is the same as a first size of the first media stream segment.

11. The server system of claim 10 , wherein a third size of the digest segment is smaller than the first size of the first media stream segment.

12. The server system of claim 1 , wherein generating the second media stream segment comprises reconstructing at least one respective frame of the plurality of frames of video data using the representation of the at least one respective frame.

13. The server system of claim 1 , wherein at least a portion of the second media stream segment is generated using random or pseudorandom data.

14. The server system of claim 9 , including, prior to receiving the digest segment that corresponds to the first media stream segment, transmitting a request for a first media stream that includes the first media stream segment.

15. The server system of claim 9 , including:

prior to receiving the digest segment generated by the client device, receiving, from an orchestrator, an invocation communication that corresponds to request to execute instructions to run, by a virtual client virtual machine, a media application that corresponds to the media stream; and

in response to receiving the invocation communication, executing, by the virtual client virtual machine, the media application that corresponds to the media stream.

16. The method of claim 1 , wherein the header information comprises an unmodified segment header for the first media stream segment.

17. The method of claim 1 , wherein the header information includes frame headers for frames in the plurality of frames of video data.

18. The method of claim 1 , wherein the server system executes an application having an API, and the API of the application generates the playback command onto the second media stream segment; and

the method further comprises forwarding the playback command to the client device to be overlaid with the content received from the content provider.

19. The method of claim 1 , wherein the playback command that is determined using the second media stream segment comprises a command that instructs the client device to initiate playback of the first media stream segment that was received by the client device.

Assignments (5)
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: HIDDINK, GERRIT WILLEM
To: ACTIVEVIDEO NETWORKS, LLC
Reel/Frame 066910/0484 →
CONFIRMATORY ASSIGNMENT Recorded Mar 26, 2024
From: HOEBEN, MAARTEN
To: ACTIVEVIDEO NETWORKS, LLC
Reel/Frame 066910/0473 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA TO ADD A THIRD INVENTOR GERRIT WILLEM HIDDINK PREVIOUSLY RECORDED ON REEL 053377 FRAME 0141. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 20, 2021
From: BROCKMANN, RONALD A.; HOEBEN, MAARTEN; HIDDINK, GERRIT WILLEM
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 057552/0537 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: BROCKMANN, RONALD A.; HOEBEN, MAARTEN
To: ACTIVEVIDEO NETWORKS, INC.
Reel/Frame 053377/0141 →
Continuity (3)
Continuation PCTUS2018040118 · Jun 28, 2018
Provisional Application 62526954 · Jun 29, 2017
Related Publication 20200128282A1 · Apr 23, 2020
Cited By (1)
US 12,382,128