US 11,743,308 B1
Efficient media storage for use in media streaming
Vitaly Shoykhet, Broomfield, CO (US); Brian Scott Bosworth, Edgewater, MD (US); Jeremiah Matthew Jones, Jacksonville, FL (US); Justin Byron Filion, Washougal, WA (US); and John William Morris, IV, Washougal, WA (US)
Assigned to AUDACY OPERATIONS, INC., Philadelphia, PA (US)
Filed by AUDACY OPERATIONS, INC., Philadelphia, PA (US)
Filed on Jul. 18, 2022, as Appl. No. 17/867,521.
Int. Cl. G06F 12/08 (2016.01); H04L 29/06 (2006.01); H04N 21/6375 (2011.01); H04N 21/6587 (2011.01); H04L 65/61 (2022.01); G06F 12/0802 (2016.01)
CPC H04L 65/61 (2022.05) [G06F 12/0802 (2013.01); H04N 21/6375 (2013.01); H04N 21/6587 (2013.01)] 19 Claims
OG exemplary drawing
 
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.