IP Library Granted Patent US 9,191,725
Granted Patent B2
US 9,191,725 · App. 14/214,206 · Granted Nov 17, 2015

Method and apparatus for streaming video

Inventors: Mark S Schmidt (San Diego, CA); Paul Moroney (La Jolla, CA); Arjun Ramamurthy (San Diego, CA)
Assignee: ARRIS Technology, Inc.
H04N21/8456H04L65/4084H04L65/602H04L65/607H04L65/608H04N21/2343H04N21/2347H04N21/23439H04N21/266H04N21/26258H04N21/438H04N21/4345H04N21/4385H04N21/462H04N21/47202
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 9,191,725
App. No.
14/214,206
Granted
Nov 17, 2015
Kind
B2
Abstract

A method, apparatus, article of manufacture, and a memory structure for a CPT stream to a client device via an HTTP live streaming (HLS) protocol having a plurality of HLS media files is disclosed. In one embodiment, the method comprises generating an HLS playlist specifying a plurality 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.

Claims (51)

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.

2. The method of claim 1 , wherein each HLS media file represents a segment of the compressed packetized transport stream of substantially the same temporal duration as other HLS media files representing other segments of the CPT stream.

3. The method of claim 2 , further comprising:

receiving a request from the client device for the CPT stream beginning at a selected temporal location selected by the client device;

searching the CPT stream for an I-frame nearest the selected temporal location;

transcoding the CPT stream beginning at the I-frame temporally nearest to the selected temporal location to produce a further plurality of HLS media files; and

transmitting the further plurality of HLS media files to the client device.

4. The method of claim 3 , wherein the client request for the CPT stream beginning at a selected temporal location selected by the client device comprises an identifier of a requested HLS media file, and searching the CPT stream for an I-frame nearest the selected temporal location comprises:

computing a time reference for a beginning of the requested media file from the requested media file sequential location within the plurality of HLS media files derived from the HLS playlist and the substantially same temporal duration of HLS media files; and

computing a time reference within the CPT media stream from the computed time reference and an index generated from the CPT media stream.

5. The method of claim 4 , wherein the temporally first frame of the first of the plurality of further HLS media files is a further I-frame temporally beginning at the temporal location of the I-frame of the CPT stream nearest the selected temporal location.

6. The method of claim 5 , wherein the temporally first frame of the first of the plurality of further HLS media files is a further I-frame temporally beginning at a temporal location of the I frame of the CPT stream nearest to and following the selected temporal location.

7. The method of claim 5 , wherein the temporally first frame of the first of the plurality of further HLS media files is a further I frame temporally beginning at a temporal location of the I frame of the CPT stream nearest to and preceding the selected temporal location.

8. The method of claim 5 , wherein the CPT stream comprises a temporally last frame, and the plurality of further HLS files comprises a last HLS file having frames temporally extended to the temporal location of the temporally last frame of the CPT stream.

9. The method of claim 1 , further comprising:

receiving a request from the client device for the CPT stream beginning at a selected temporal location selected by the client device;

searching the CPT stream for an I-frame nearest to and preceding the selected temporal location;

generating a transitional HLS media file by transcoding the CPT stream beginning at an I-frame of the CPT stream nearest to and preceding the selected temporal location; and

providing the transitional HLS media file to the client device;

wherein each HLS media file except the transitional HLS media file represents a segment of the compressed packetized transport stream of substantially the same temporal length as other HLS media files representing other segments of the CPT stream.

10. The method of claim 1 , wherein:

the CPT media stream comprises a plurality of frames including I-frames having P-frames and B-frames therebetween; and

each of the plurality of HLS media files comprises one or more transcoded I-frames and a plurality of transcoded P-frames and transcoded B-frames, wherein:

at least one transcoded I-frame is at or near the temporally first frame of each HLS media file; and

at least one of the transcoded I-frames of one of the plurality of HLS media files is converted from a CPT P-frame of the media stream.

11. An apparatus for 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: a processor; a memory, coupled to the processor, the memory storing processor instructions comprising instructions for: 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 the instructions for transcoding the CPT stream into at least a subset of the plurality of HLS media files comprise instructions for: 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-frames; for each the frames of the CPT stream temporally following the N frames: (a) transcoding an I-frame 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 flame following the N frames of the CPT stream, transcoding a next P-frame from the CPT stream temporally following the subsequent HLS media frame to an I-frame.

12. The apparatus of claim 11 , wherein each HLS media file represents a segment of the compressed packetized transport stream of substantially the same temporal duration as other HLS media files representing other segments of the CPT stream.

13. The apparatus of claim 12 , wherein the instruction further comprise instructions for:

receiving a request from the client device for the CPT stream beginning at a selected temporal location selected by the client device;

searching the CPT stream for an I-frame nearest the selected temporal location;

transcoding the CPT stream beginning at the I-frame temporally nearest to the selected temporal location to produce a further plurality of HLS media files; and

transmitting the further plurality of HLS media files to the client device.

14. The apparatus of claim 13 , wherein the client request for the CPT stream beginning at a selected temporal location selected by the client device comprises an identifier of a requested HLS media file, and the instructions for searching the CPT stream for an I-frame nearest the selected temporal location comprise instructions for:

computing a time reference for a beginning of the requested media file from the requested media file sequential location within the plurality of HLS media files derived from the HLS playlist and the substantially same temporal duration of HLS media files; and

computing a time reference within the CPT media stream from the computed time reference and an index generated from the CPT media stream.

15. The apparatus of claim 14 , wherein the temporally first frame of the first of the plurality of further HLS media files is a further I-frame temporally beginning at the temporal location of the I-frame of the CPT stream nearest the selected temporal location.

16. The apparatus of claim 15 , wherein the temporally first frame of the first of the plurality of further HLS media files is a further I-frame temporally beginning at a temporal location of the I frame of the CPT stream nearest to and following the selected temporal location.

17. The apparatus of claim 15 , wherein the temporally first frame of the first of the plurality of further HLS media files is a further I frame temporally beginning at a temporal location of the I frame of the CPT stream nearest to and preceding the selected temporal location.

18. The apparatus of claim 15 , wherein the CPT stream comprises a temporally last frame, and the plurality of further HLS files comprises a last HLS file having frames temporally extended to the temporal location of the temporally last frame of the CPT stream.

19. The apparatus of claim 11 , wherein the instructions further comprise instructions for:

receiving a request from the client device for the CPT stream beginning at a selected temporal location selected by the client device;

searching the CPT stream for an I-frame nearest to and preceding the selected temporal location;

generating a transitional HLS media file by transcoding the CPT stream beginning at an I-frame of the CPT stream nearest to and preceding the selected temporal location; and

providing the transitional HLS media file to the client device;

wherein each HLS media file except the transitional HLS media file represents a segment of the compressed packetized transport stream of substantially the same temporal length as other HLS media files representing other segments of the CPT stream.

20. The apparatus of claim 11 , wherein:

the CPT media stream comprises a plurality of frames including I-frames having P-frames and B-frames therebetween; and

each of the plurality of HLS media files comprises one or more transcoded I-frames and a plurality of transcoded P-frames and transcoded B-frames, wherein:

at least one transcoded I-frame is at or near the temporally first frame of each HLS media file; and

at least one of the transcoded I-frames of one of the plurality of HLS media files is converted from a CPT P-frame of the media stream.

Assignments (14)
SECURITY INTEREST Recorded Apr 8, 2026
From: ARRIS ENTERPRISES LLC; RUCKUS IP HOLDINGS LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 075476/0814 →
RELEASE OF SECURITY INTEREST AT REEL/FRAME 049905/0504 Recorded Dec 19, 2024
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: ARRIS ENTERPRISES LLC (F/K/A ARRIS ENTERPRISES, INC.); ARRIS TECHNOLOGY, INC.; ARRIS SOLUTIONS, INC.; COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; RUCKUS WIRELESS, LLC (F/K/A RUCKUS WIRELESS, INC.)
Reel/Frame 071477/0255 →
SECURITY INTEREST Recorded Dec 17, 2024
From: ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE INC., OF NORTH CAROLINA; OUTDOOR WIRELESS NETWORKS LLC; RUCKUS IP HOLDINGS LLC
To: APOLLO ADMINISTRATIVE AGENCY LLC
Reel/Frame 069889/0114 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2022
From: ARRIS TECHNOLOGY, INC.
To: ARRIS ENTERPRISES, INC.
Reel/Frame 060791/0583 →
SECURITY INTEREST Recorded Nov 19, 2021
From: ARRIS SOLUTIONS, INC.; ARRIS ENTERPRISES LLC; COMMSCOPE TECHNOLOGIES LLC; COMMSCOPE, INC. OF NORTH CAROLINA; RUCKUS WIRELESS, INC.
To: WILMINGTON TRUST
Reel/Frame 060752/0001 →
ABL SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049892/0396 →
TERM LOAN SECURITY AGREEMENT Recorded Jul 3, 2019
From: COMMSCOPE, INC. OF NORTH CAROLINA; COMMSCOPE TECHNOLOGIES LLC; ARRIS ENTERPRISES LLC; ARRIS TECHNOLOGY, INC.; RUCKUS WIRELESS, INC.; ARRIS SOLUTIONS, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 049905/0504 →
PATENT SECURITY AGREEMENT Recorded Jul 3, 2019
From: ARRIS ENTERPRISES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 049820/0495 →
CHANGE OF NAME Recorded Jul 2, 2019
From: ARRIS ENTERPRISES, INC.
To: ARRIS ENTERPRISES LLC
Reel/Frame 049649/0062 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Apr 8, 2019
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS INTERNATIONAL LIMITED; ARRIS TECHNOLOGY, INC.; ARCHIE U.S. MERGER LLC; ARCHIE U.S. HOLDINGS LLC; ARRIS GLOBAL SERVICES, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; ARRIS SOLUTIONS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; JERROLD DC RADIO, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC
Reel/Frame 050721/0401 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2015
From: ARRIS TECHNOLOGY, INC
To: ARRIS ENTERPRISES, INC.
Reel/Frame 037328/0341 →
SECURITY INTEREST Recorded Jun 26, 2015
From: ARRIS GROUP, INC.; ARRIS ENTERPRISES, INC.; ARRIS INTERNATIONAL LIMITED; ARRIS TECHNOLOGY, INC.; ARCHIE U.S. MERGER LLC; ARCHIE U.S. HOLDINGS LLC; ARRIS GLOBAL SERVICES, INC.; ARRIS HOLDINGS CORP. OF ILLINOIS, INC.; ARRIS SOLUTIONS, INC.; BIG BAND NETWORKS, INC.; TEXSCAN CORPORATION; POWER GUARD, INC.; JERROLD DC RADIO, INC.; NEXTLEVEL SYSTEMS (PUERTO RICO), INC.; GIC INTERNATIONAL HOLDCO LLC; GIC INTERNATIONAL CAPITAL LLC
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 036020/0789 →
MERGER AND CHANGE OF NAME Recorded Mar 5, 2015
From: GENERAL INSTRUMENT CORPORATION; ARRIS TECHNOLOGY, INC.
To: ARRIS TECHNOLOGY, INC.
Reel/Frame 035133/0286 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 1, 2014
From: SCHMIDT, MARK S.; MORONEY, PAUL; RAMAMURTHY, ARJUN
To: GENERAL INSTRUMENT CORPORATION
Reel/Frame 033442/0780 →
Continuity (2)
Provisional Application 61801420 · Mar 15, 2013
Related Publication 20140380376A1 · Dec 25, 2014