IP Library Granted Patent US 11,743,308
Granted Patent B1
US 11,743,308 · App. 17/867,521 · Granted Aug 29, 2023

Efficient media storage for use in media streaming

Inventors: Vitaly Shoykhet (Broomfield, CO); Brian Scott Bosworth (Edgewater, MD); Jeremiah Matthew Jones (Jacksonville, FL); Justin Byron Filion (Washougal, WA); John William Morris, IV (Washougal, WA)
Assignee: AUDACY OPERATIONS, INC.
H04L65/61G06F12/0802H04N21/6375H04N21/6587
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,743,308
App. No.
17/867,521
Granted
Aug 29, 2023
Kind
B1
Abstract

The method for storing streaming media includes receiving, from a user device, a request to navigate to a requested time of a media stream. The method also includes determining whether a block of media segments that have a time interval that overlaps with the requested time is stored at the server. The method also includes retrieving the block of media segments from long-term memory in accordance with a determination that the block of media segments is not stored at the server. The method also includes traversing the block of media segments that have a time interval that overlaps with the requested time of the media stream to seek and identify a media segment corresponding to the requested time of the media stream. The method also includes streaming a media stream to the user device that begins at the media segment corresponding to the requested time of the media stream.

Claims (40)

1. A method of storing streaming media, comprising:

at a server, while simultaneously receiving and streaming a plurality of media streams to a plurality of user devices, wherein each respective media stream of the plurality of media streams comprises a plurality of media segments, and each media segment corresponds to a time-divided portion of a respective media stream:

grouping subsets of temporally adjacent media segments for each media stream of the plurality of media streams into blocks of media segments, each block of media segments corresponding to a time interval of the respective media stream;

for each block of media segments having a time interval of a respective media stream that does not overlap with a time of a currently-streaming media stream, storing a respective block of media segments in long-term memory that is separate and distinct from memory at the server;

receiving, from a respective user device of the plurality of user devices, a request to navigate from a current time of a media stream to a requested time of the media stream;

determining whether a block of media segments that have a time interval that overlaps with the requested time of the media stream is stored at the server;

in accordance with a determination that the block of media segments that have a time interval that overlaps with the requested time of the media stream is not stored at the server:

retrieving the block of media segments from long-term memory;

in accordance with a determination that the block of media segments that have a time interval that overlaps with the requested time of the media stream is stored at short-term memory at the server:

foregoing retrieving the block of media segments from long-term memory, and

traversing the block of media segments that have a time interval that overlaps with the requested time of the media stream to seek and identify a media segment corresponding to the requested time of the media stream; and

streaming a media stream to the user device that begins at the media segment corresponding to the requested time of the media stream.

2. The method of claim 1 , further comprising, prior to retrieving the block of media segments from long-term memory:

quantizing the requested time into a particular unit of time, wherein each unit of quantized time corresponds to a time interval for the blocks of media segments; and

determining whether a block of media segments that have a time interval that corresponds to the particular unit of time is stored at the server.

3. The method of claim 1 , further comprising:

determining whether a respective media segment temporally subsequent to a currently-streaming media segment is stored at the server; and

in accordance with a determination that the respective media segment temporally subsequent to the currently-streaming media segment is not stored at the server, retrieving a block of media segments that includes the temporally subsequent respective media segment from long-term memory.

4. The method of claim 1 , further comprising:

determining whether a respective block of media segments that is not currently streaming to a respective user meets deprecation criteria, and in response to a determination that the respective block of media segments meets the deprecation criteria, removing the respective block of media segments from the server.

5. The method of claim 4 , wherein determining whether a respective block of media segments that is not currently streaming to a respective user meets deprecation criteria includes applying a criterion that is met when a previously initiated timer associated with the respective block of media segments expires after a predetermined amount of time since any media segments of the block of media segments was streamed to a respective user.

6. The method of claim 5 , wherein the predetermined amount of time is based on a total length of media segments of the respective block of media segments.

7. The method of claim 1 , wherein each media segment of the plurality of media segments is of a same length.

8. The method of claim 1 , wherein each media segment of the plurality of media segments is no more than ten seconds long.

9. The method of claims 1 , wherein each media segment of the plurality of media segments is of a same size.

10. The method of any of claim 1 , further comprising:

displaying, at the respective user device, an indication of the current time of the media stream; and

displaying, at the user device, an option to navigate from the current time of the media stream to another portion of the media stream.

11. The method of claim 1 , wherein retrieving the block of media segments from long-term memory comprises:

removing, in accordance with a determination that there is not sufficient free space in the server for storage of the media segment, a pre-stored block of media segments, wherein a timer associated with the pre-stored block of media segments will expire before any other timer associated with respective other blocks of media segments stored in the server.

12. The method of claim 1 , wherein the server comprises a server in a content distribution network (CDN).

13. The method of claim 1 , wherein the requested time of the media stream comprises an earlier time of the media stream relative to the current time of the media stream.

14. The method of claim 1 , wherein the requested time of the media stream comprises a later time of the media stream relative to the current time of the media stream.

15. The method of claim 1 , wherein the media stream comprises audio media.

16. The method of claim 1 , wherein the media stream comprises video media.

17. The method of claim 1 , wherein the media stream comprises a live stream.

18. An electronic device, comprising:

one or more processors; and

memory storing one or more programs, the one or more programs including instructions, which, when executed by the one or more processors, cause the electronic device to perform the method of claim 1 .

19. A non-transitory, computer-readable medium, storing one or more programs, the one or more programs including instructions, which, when executed by one or more processors of an electronic device, cause the electronic device to perform the method of claim 1 .

Assignments (7)
CHANGE OF NAME Recorded Feb 11, 2025
From: AUDACY OPERATIONS, INC.
To: AUDACY OPERATIONS, LLC
Reel/Frame 070186/0862 →
SECURITY INTEREST Recorded Feb 5, 2025
From: AUDACY CAPITAL LLC
To: WILMINGTON SAVINGS FUND SOCIETY
Reel/Frame 070121/0061 →
SECURITY INTEREST Recorded Sep 30, 2024
From: AUDACY CAPITAL, LLC; AUDACY OPERATIONS, LLC; EVENTFUL, LLC
To: WILMINGTON SAVINGS FUND SOCIETY, FSB
Reel/Frame 068747/0588 →
ASSIGNMENT OF PATENT SECURITY INTEREST PREVIOUSLY RECORDED AT REEL/FRAME (064948/0889) Recorded Dec 5, 2023
From: JPMORGAN CHASE BANK, N.A., AS RESIGNING COLLATERAL AGENT
To: WILMINGTON SAVINGS FUND SOCIETY, FSB, AS SUCCESSOR COLLATERAL AGENT
Reel/Frame 065778/0933 →
SECURITY INTEREST Recorded Sep 19, 2023
From: AUDACY OPERATIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 064948/0889 →
SECURITY INTEREST Recorded Sep 13, 2023
From: AUDACY OPERATIONS, INC.
To: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS NOTES COLLATERAL AGENT
Reel/Frame 064887/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 25, 2023
From: SHOYKHET, VITALY; BOSWORTH, BRIAN; JONES, JEREMIAH MATTHEW; FILION, JUSTIN BYRON; MORRIS, JOHN WILLIAM
To: AUDACY OPERATIONS, INC.
Reel/Frame 063763/0726 →