US2018007439A1PendingUtilityA1

Systems and methods for digital media storage and playback

40
Assignee: REALLY SIMPLE SOFTWARE INCPriority: Oct 24, 2014Filed: Aug 31, 2017Published: Jan 4, 2018
Est. expiryOct 24, 2034(~8.3 yrs left)· nominal 20-yr term from priority
H04N 21/234309H04N 21/2743H04N 21/4622H04N 21/4431H04N 21/8456G11B 27/10H04N 21/8186H04N 21/4334H04N 21/2347H04N 21/2541H04N 21/4147H04N 21/4408H04N 21/8586H04N 21/4627H04N 21/4126G11B 2220/412G11B 27/031
40
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

Methods and systems for storage and playback of broadcast media received via a local digital video recording (DVR) system. The system includes the DVR system configured to receive the broadcast media and upload the broadcast media to a storage server over a network. The DVR system divides the broadcast media content into blocks and assigns a unique block ID to each block based on the block data. Prior to uploading each block to the storage server, the unique block ID is sent to the storage server, which only uploads and stored the block if a duplicate block has not already been stored on the storage device, minimizing network demand. A transcoding server coupled to the storage server transcodes the broadcast media content for streaming over the network.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . An uploader module for a digital media storage device, the uploader module configured to receive a stream of broadcast media content having a plurality of PTS boundaries and perform the steps of:
 parse the stream for a first PTS boundary occurring in the stream, the first PTS boundary having a first PTS location;   determine a first grid location upstream of and relative to the first PTS location;   determine a second grid location downstream of and relative to the first PTS location;   parse the stream for a PTS boundary immediately downstream of the second grid location and having a second PTS location; and   define a first block of the stream bounded by the first PTS location and the second PTS location.   
     
     
         2 . The uploader module for the digital media storage device of  claim 1 , wherein each grid location is based at least in part on a predetermined duration value. 
     
     
         3 . The uploader module for the digital media storage device of  claim 2 , wherein the first grid location is equal to the duration value multiplied by a predetermined integer value. 
     
     
         4 . The uploader module for the digital media storage device of  claim 3 , wherein the integer value is calculated by dividing the first PTS location by the duration value and truncating the result to an integer. 
     
     
         5 . The uploader module for the digital media storage device of  claim 1 , the second grid location determined such that a distance between the second grid location and the first PTS location is greater than a predetermined minimum duration value. 
     
     
         6 . The uploader module for the digital media storage device of  claim 1 , the uploader module further configured to perform the step of assigning at least one block identification to the first block. 
     
     
         7 . The uploader module for the digital media storage device of  claim 6 , wherein the uploader is configured to divide the stream into a plurality of sequential blocks by repeatedly performing the steps of:
 setting the second PTS location as an updated first PTS location;   determining an updated first grid location upstream of and relative to the updated first PTS location;   determining a second grid location downstream of and relative to the updated first PTS location;   parsing the stream for a PTS boundary immediately downstream of the second grid location and having an updated second PTS location;   defining the next sequential block of the stream as being bounded by the updated first PTS location and the updated second PTS location;   assigning at least one block identification to the next sequential block.   
     
     
         8 . The uploader module for the digital media storage device of  claim 7 , wherein the at least one block identification for each defined block in the stream includes a sparse identification, wherein the sparse identification for each block is determined by performing the steps of:
 selecting a sub-range of block data for each block;   converting the sub-range of block data into plain text;   appending a date stamp string to an end of the sub-range of block data;   hashing the sub-range of block data; and   converting the sub-range of block data to a string.   
     
     
         9 . The uploader module for the digital media storage device of  claim 8 , wherein the date stamp string includes a time offset. 
     
     
         10 . The uploader module for the digital media storage device of  claim 8 , wherein the date stamp string is based on a local date and time of stream creation. 
     
     
         11 . The uploader module for the digital media storage device of  claim 8 , wherein the sub-range is a sequential number of packets in the block. 
     
     
         12 . The uploader module for the digital media storage device of  claim 11 , wherein the sequential number of packets follow a payload start indicator of the block. 
     
     
         13 . The uploader module for the digital media storage device of  claim 8 , wherein the hashing of the sub-range of block data is a SHA-256 hash algorithm. 
     
     
         14 . The uploader module for the digital media storage device of  claim 8 , wherein the converting of the sub-range of block data to a string uses a base64 string encoding algorithm. 
     
     
         15 . The uploader module for the digital media storage device of  claim 8 , wherein the at least one block identification of each defined block includes a block ID based on the entire block data. 
     
     
         16 . The uploader module for the digital media storage device of  claim 15 , wherein the sparse ID and the block ID for each defined block are mapped. 
     
     
         17 . The uploader module for the digital media storage device of  claim 8 , wherein each sparse ID is stored in a list. 
     
     
         18 . The uploader module for the digital media storage device of  claim 7 , wherein the at least one block identification for each defined block includes a block hash created by hashing plain text data of the block, a block ID created by hashing data of the block, and a block crypto key created by hashing the block hash. 
     
     
         19 . The uploader module for the digital media storage device of  claim 18 , wherein the hashing of the block hash uses the MD5 hash function. 
     
     
         20 . The uploader module for the digital media storage device of  claim 18 , wherein the hashing of the plain text data of the block uses the SHA-256 algorithm.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.