Patent ID: 9191725
Filing Date: 2015-11-17
Classification: H04L,H04N

Abstract:
1. A method of providing a compressed packetized transport (CPT) stream to a client device via an HTTP live streaming (HLS) protocol having a plurality of HLS media files, comprising: generating an HLS playlist specifying a plurality of HLS media files before generating any of the HLS media files, wherein each of the plurality of HLS media files has a unique name; transmitting the HLS playlist to the client device; after generating the HLS playlist, transcoding the CPT stream into at least a subset of the plurality of HLS media files; and providing at least one of the subset of plurality of HLS media files to the client device, wherein the at least one of the plurality of HLS media files is a client-requested media file selected from the HLS playlist; wherein transcoding the CPT stream into at least a subset of the plurality of HLS media files comprises: transcoding a first I-frame of the CPT stream into a first HLS media file I-frame; transcoding N frames of the CPT stream temporally following the first I-frame of the CPT stream into first HLS media file P-frames and B-flames; for each the frames of the CPT stream temporally following the N frames: (a) transcoding an I-flame of the CPT stream to a subsequent HLS media file I-frame or a non-I-frame of the CPT stream to a subsequent HLS media P-frame or B-frame; (b) determining if the subsequent HLS media file frame is an I-frame; (c) if the subsequent HLS media frame is an I-frame, outputting the subsequent HLS media frame as the first I-frame of a second HLS media file subsequent to the first HLS media file; (d) if the subsequent HLS media frame is not an I-frame, determining if the subsequent HLS media frame is more than M frames subsequent from the first frame following the N frames of the CPT stream; (e) if the subsequent HLS media frame is not more than M frames subsequent from the first frame following the N frames of the CPT stream, repeating (a)-(e); (f) if the subsequent HLS media frame is more than M frames subsequent from the first frame following the N frames of the CPT stream, transcoding a next P-frame from the CPT stream temporally following the subsequent HLS media flame to an I-frame and outputting the I-frame as the first I-frame of the second HLS media file subsequent the first HLS media file.