IP Library Granted Patent US 11,588,874
Granted Patent B2
US 11,588,874 · App. 15/888,797 · Granted Feb 21, 2023

Web-based content recording and adaptive streaming

Inventors: Ori Wallenstein (Raanana, IL); Max Romanov (Petach-Tikva, IL); Oleg Yudovich (Tel Aviv, IL)
Assignee: McGraw Hill LLC
H04L65/75H04L65/612H04L65/70H04L65/762H04L65/80H04L67/02H04L67/10H04L67/303H04L67/306
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,588,874
App. No.
15/888,797
Granted
Feb 21, 2023
Kind
B2
Abstract

Systems and methods for recording “on-screen” content of a user device via a web browser-based coupling with a content recording system. The content to be recorded may include an audio component and a video component. The audio and video components are merged into a single stream that contains the content displayed via the user device. Segments of the recorded stream are periodically stored to a local storage associated with the web browser. Upon completion of the storage of a segment in the local storage, the segment is uploaded to the content recording system. As the recording session persists, multiple file segments are created in the local storage of the web browser and uploaded, on a segment-by-segment basis, to the server. The server of the content recording system concatenates the multiple uploaded file segments to generate a single file associated with the recorded session.

Claims (53)

1. A method comprising:

identifying, by an embedded program of a web browser executable by a processing device, at a first time, a command to record content accessed from a video source component associated with a user device;

accessing, by the embedded program, via the web browser executed by the user device, an audio input and a video input associated with the content accessed from the video source component associated with the user device;

merging, by the embedded program, the audio input and the video input to generate at least a portion of an in-progress stream;

capturing, by a media recorder component of the embedded program, at least a portion of the in-progress stream comprising merged data including the audio input and the video input accessed from the video source component associated with the user device;

initiating, at a second time occurring at a predetermined periodic interval following the first time associated with the command, a first storing of a first segment of the stream in a local storage associated with the web browser, wherein the first segment comprises a first portion of the stream accruing in the media recorder component between the first time and the second time, and wherein the first segment is provided to the local storage by the media recorder component;

associating the first segment with a first unique identifier;

initiating, at a third time occurring at the predetermined periodic interval following the second time, a second storing of a second segment of the stream in the local storage associated with the web browser, wherein the second segment comprises a first second portion of the stream accruing in the media recorder component between the second time and the third time, and wherein the second segment is provided to the local storage by the media recorder component;

in response to identifying a first completion of the first storing of the first segment in the local storage and prior to a second completion of the second storing of the second segment in the local storage, uploading, by the web browser, the first segment of the stream and the first unique identifier to an operatively coupled server while the second storing of the second segment is in progress;

associating the second segment with a second unique identifier;

in response to identifying the second completion of the second storing of the second segment in the local storage, uploading the second segment of the stream to the operatively coupled server;

in response to a subsequent command to terminate recording of the content, identifying a completed stream comprising the first segment and the second segment; and

generating a file comprising the completed stream using the first unique identifier and the second unique identifier to concatenate the first segment and the second segment.

2. The method of claim 1 , wherein the storing of the first segment to the local storage of the web browser comprises a data dump at the predetermined periodic interval of a portion of the stream captured by the media recorder component.

3. The method of claim 1 , wherein the audio input and the video input comprise on-screen content of a display of the user device.

4. The method of claim 1 , further comprising receiving, by the web browser, a playback stream of the file at a rate adapted based on one or more computing parameters associated with the user device.

5. A system comprising:

a processing device; and

memory to store computer-executable instructions that, if executed, cause the processing device to perform operations comprising:

identifying, by an embedded program of a web browser executable by the processing device at a first time, a command to record content accessed from a video source component associated with a user device;

accessing, by the embedded program, via the web browser executed by the user device, an audio input and a video input associated with the content accessed from the video source component associated with the user device;

merging, by the embedded program, the audio input and the video input to generate at least a portion of an in-progress stream;

capturing, by a media recorder component of the embedded program, at least a portion of the in-progress stream comprising merged data including the audio input and the video input accessed from the video source component associated with the user device;

initiating, at a second time occurring at a predetermined periodic interval following the first time associated with the command, a first storing of a first segment of the stream in a local storage associated with the web browser, wherein the first segment comprises a first portion of the stream accruing in the media recorder component between the first time and the second time, and wherein the first segment is provided to the local storage by the media recorder component;

associating the first segment with a first unique identifier;

initiating, at a third time occurring at the predetermined periodic interval following the second time, a second storing of a second segment of the stream in the local storage associated with the web browser, wherein the second segment comprises a first second portion of the stream accruing in the media recorder component between the second time and the third time, and wherein the second segment is provided to the local storage by the media recorder component;

in response to identifying a first completion of the first storing of the first segment in the local storage and prior to a second completion of the second storing of the second segment in the local storage, uploading, by the web browser, the first segment of the stream and the first unique identifier to an operatively coupled server while the second storing of the second segment is in progress;

associating the second segment with a second unique identifier;

in response to identifying the second completion of the second storing of the second segment in the local storage, uploading the second segment of the stream to the operatively coupled server;

in response to a subsequent command to terminate recording of the content, identifying a completed stream comprising the first segment and the second segment; and

generating wherein a file comprising the completed stream is generated using the first unique identifier and the second unique identifier to concatenate the first segment and the second segment.

6. The system of claim 5 , the operation further comprising determining a profile associated with a receiving user device requesting playback of the stream, wherein the profile comprises one or more computing parameters associated with the receiving user device.

7. The system of claim 6 , wherein the one or more computing parameters comprise a bandwidth associated with the receiving user device.

8. The system of claim 5 , further comprising providing the embedded program to the web browser of the user device, wherein the embedded program generates the first segment and the second segment of the recorded stream.

9. The system of claim 8 , wherein the embedded program causes the first segment to be stored in the local storage of the web browser.

10. The system of claim 5 , wherein the upload of the first segment occurs prior to or during the second storing of the second segment to the local storage associated with the web browser of the user device.

11. A non-transitory computer-readable storage device storing computer-executable instructions that, if executed by a processing device, cause the processing device to perform operations comprising:

identifying, by an embedded program of a web browser executable by the processing device at a first time, a command to record content accessed from a video source component associated with a user device;

accessing, by the embedded program, via the web browser executed by the user device, an audio input and a video input associated with the content accessed from the video source component associated with the user device;

merging, by the embedded program, the audio input and the video input to generate at least a portion of an in-progress stream;

capturing, by a media recorder component of the embedded program, at least a portion of the in-progress stream comprising merged data including the audio input and the video input accessed from the video source component associated with the user device;

initiating, at a second time occurring at a predetermined periodic interval following the first time associated with the command, a first storing of a first segment of the stream in a local storage associated with the web browser, wherein the first segment comprises a first portion of the stream accruing in the media recorder component between the first time and the second time, and wherein the first segment is provided to the local storage by the media recorder component;

associating the first segment with a first unique identifier;

initiating, at a third time occurring at the predetermined periodic interval following the second time, a second storing of a second segment of the stream in the local storage associated with the web browser, wherein the second segment comprises a first second portion of the stream accruing in the media recorder component between the second time and the third time, and wherein the second segment is provided to the local storage by the media recorder component;

in response to identifying a first completion of the first storing of the first segment in the local storage and prior to a second completion of the second storing of the second segment in the local storage, uploading, by the web browser, the first segment of the stream and the first unique identifier to an operatively coupled server while the second storing of the second segment is in progress;

associating the second segment with a second unique identifier;

in response to identifying the second completion of the second storing of the second segment in the local storage, uploading the second segment of the stream to the operatively coupled server;

in response to a subsequent command to terminate recording of the content, identifying a completed stream comprising the first segment and the second segment; and

generating a file comprising the completed stream using the first unique identifier and the second unique identifier to concatenate the first segment and the second segment.

12. The non-transitory computer-readable storage device of claim 11 , the operations further comprising determining a profile associated with a receiving user device requesting playback of the stream, wherein the profile comprises one or more computing parameters associated with the receiving user device.

13. The non-transitory computer-readable storage device of claim 12 , wherein the one or more computing parameters comprise a bandwidth associated with the receiving user device.

14. The non-transitory computer-readable storage device of claim 11 , wherein the upload of the first segment occurs prior to or during the second storing of the second segment to the local storage associated with the web browser of the user device.

15. The non-transitory computer-readable storage device of claim 14 , wherein the embedded program is configured to be executed by a plurality of different web browser types.

Assignments (10)
SECURITY INTEREST (NOTES) Recorded Aug 9, 2024
From: ACHIEVE3000, INC.; ACTIVELY LEARN INC.; MCGRAW HILL LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 068522/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2021
From: WALLENSTEIN, ORI; ROMANOV, MAX; YUDOVICH, OLEG
To: MCGRAW HILL LLC
Reel/Frame 057462/0486 →
RELEASE OF PATENT SECURITY AGREEMENT (FIRST LIEN) Recorded Aug 23, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS AGENT
To: MCGRAW HILL LLC
Reel/Frame 057263/0664 →
MERGER AND CHANGE OF NAME Recorded Aug 6, 2021
From: MCGRAW - HILL GLOBAL EDUCATION HOLDINGS, LLC; MCGRAW - HILL SCHOOL EDUCATION HOLDINGS LLC
To: MCGRAW HILL LLC
Reel/Frame 057110/0309 →
RELEASE OF SECURITY INTEREST Recorded Aug 3, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: MCGRAW HILL LLC
Reel/Frame 057070/0283 →
NOTES SECURITY AGREEMENT Recorded Jul 30, 2021
From: MCGRAW HILL LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 057041/0977 →
SECURITY AGREEMENT Recorded Jul 30, 2021
From: MCGRAW HILL LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 057041/0925 →
ABL SECURITY AGREEMENT Recorded Jul 30, 2021
From: MCGRAW HILL LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 057041/0934 →
SECURITY INTEREST Recorded Jan 22, 2021
From: MCGRAW HILL LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 055000/0643 →
SECURITY INTEREST Recorded Jan 2, 2020
From: MCGRAW HILL LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 051402/0282 →
Continuity (1)
Related Publication 20190245903A1 · Aug 8, 2019
Cited By (1)
US 12,307,920