CPC H04L 65/61 (2022.05) [G06F 12/0802 (2013.01); H04N 21/6375 (2013.01); H04N 21/6587 (2013.01)] | 19 Claims |
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.
|