IP Library Granted Patent US 9,712,887
Granted Patent B2
US 9,712,887 · App. 13/445,361 · Granted Jul 18, 2017

Methods and systems for real-time transmuxing of streaming media content

Inventors: Robert Linwood Myers (Mississauga, CA); Parasuram Ranganathan (Brampton, CA); Ivan Chvets (Toronto, CA); Krzysztof Pakulski (Mississauga, CA)
Assignee: ARRIS Canada, Inc.
H04N21/64322H04L65/4084H04L65/605H04L65/80H04N21/2221H04N21/2381H04N21/23608H04N21/64707H04N21/8456H04N21/85406
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,712,887
App. No.
13/445,361
Granted
Jul 18, 2017
Kind
B2
Abstract

Systems and methods for providing a full reverse translating proxy for streaming media content, which can employ session tracking or transmuxing, or both. The described system can be integrated seamlessly into an existing adaptive streaming environment. The system can transmux each request from a client into a delivery format supported by an origin content server, and vice versa, irrespective of the specific delivery format used by either the client or server. Conversely, the system can further transmux the requested content into the delivery format used by the client. A stateful session model can link each request from a specific end user for a specific piece of content to a particular identified client streaming session.

Claims (52)

1. A system for delivering a streaming media content item from an origin server to a client device, wherein the origin server has an origin container format and an origin delivery format for the streaming media content, and wherein the streaming media content comprises a first plurality of content fragments encoded in an origin encoding format, the system comprising:

an intermediate server, communicatively coupled to the origin server and the client device, the intermediate server comprising at least one processor configured to provide:

a) a mapping module configured to receive a client request from the client device for at least a requested portion of the streaming media content item using a client delivery format, determine that the client request is in a client delivery format and generate an intermediate request in the origin delivery format that corresponds to the client request;

b) an intermediate client module configured to transmit the intermediate request to the server and receive a subset of the first plurality of content fragments corresponding to the requested portion of the streaming media content item, wherein the subset is received in the origin container format from the origin server using the origin delivery format;

c) a container conversion module configured to unpack the subset from the origin container format and pack the subset into a client container format, wherein the content fragments in the subset that are packed in the client container format remain encoded in the origin encoding format;

d) an intermediate server module configured to transmit the streaming media content item in the client container format to the client device using the client delivery format; and

(e) a session management module configured to initiate a streaming session when the client request is received, and further configured to determine a session state of the client device for the streaming session by monitoring fragment requests from the client device, and further configured to store, for each of a plurality of open client sessions, corresponding client session state information for associating the client request with one of the plurality of open client sessions.

2. The system of claim 1 , wherein the container conversion module packs the streaming media content items into the client container format by reassembling the first plurality of content fragments into a second plurality of content fragments, wherein the second plurality of content fragments have different durations than the first plurality of content fragments.

3. The system of claim 1 , wherein the mapping module determines that the origin server is configured to transmit using the origin delivery format by transmitting one or more requests using predetermined delivery formats and determining whether a successful response is received.

4. The system of claim 1 , wherein the mapping module determines that the client request is in the client delivery format by comparing the client request with a plurality of predetermined request patterns.

5. A method for delivering a streaming media content item from an origin server to a client, wherein the origin server has an origin container format and an origin delivery format for the streaming media content, and wherein the streaming media content comprises a first plurality of content fragments encoded in an origin encoding format, the method comprising:

a) receiving a client request from the client for at least a requested portion of the streaming media content item using a client delivery format;

b) determining that the client request is in the client delivery format;

c) generating an intermediate request corresponding to the client request, wherein the origin request is in the origin delivery format;

d) transmitting the intermediate request to the server;

e) receiving a subset of the first plurality of content fragments corresponding to the requested portion of the streaming media content item, wherein the subset is received in the origin container format from the origin server using the origin delivery format;

f) a container conversion module unpacking the subset from the origin container format and packing the subset into a client container format, wherein the content fragments in the subset that are packed in the client container format remain encoded in the origin encoding format;

g) initiating a streaming session when the client request is received, determining a session state of the client for the streaming session by monitoring fragment requests from the client, and storing, for each of a plurality of open client sessions, corresponding client session state information for associating the client request with one of the plurality of open client sessions; and

h) transmitting the streaming media content item in the client container format to the client using the client delivery format.

6. The method of claim 5 , wherein the packing is performed by reassembling the first plurality of content fragments into a second plurality of content fragments, wherein the second plurality of content fragments have different durations than the first plurality of content fragments.

7. The method of claim 5 , further comprising determining that the origin server is configured to transmit using the origin delivery format by transmitting one or more requests using predetermined delivery formats and determining whether a successful response is received.

8. The method of claim 5 , further comprising determining that the client request is in the client delivery format by comparing the client request with a plurality of predetermined request patterns.

9. A system for delivering a streaming media content item from an origin server to a client device, wherein the origin server has an origin container format and an origin delivery format for the streaming media content, and wherein the streaming media content comprises a first plurality of content fragments encoded in an origin encoding format, the system comprising:

a) a mapping module configured to receive at least one client request from the client device for at least a requested portion of the streaming media content item and generate an intermediate request that corresponds to the at least one client request;

b) a session management module configured to initiate a streaming session when the at least one client request is received, the session management module further configured to determine a session state of the client device for the streaming session by monitoring the at least one client request, and further configured to store, for each of a plurality of open client sessions, corresponding client session state information for associating the at least one client request with one of the plurality of open client sessions;

c) an intermediate client module configured to transmit the intermediate request to the server and receive a subset of the first plurality of content fragments corresponding to the requested portion of the streaming media content item;

d) a container conversion module configured to unpack the subset from the origin container format and pack the subset into a client container format, wherein the content fragments in the subset that are packed in the client container format remain encoded in the origin encoding format;

e) an intermediate server module configured to transmit the streaming media content item to the client device.

10. The system of claim 9 , wherein the mapping module is configured to receive the client request using a client delivery format and determine that the client request is in the client delivery format, wherein the intermediate request is in the origin delivery format, wherein the subset of the first plurality of content fragments is received in the origin container format from the origin server using the origin delivery format, wherein the intermediate server module is configured to transmit the streaming media content item in the client container format to the client device using the client delivery format.

11. The system of claim 9 , wherein the session management module is further configured to identify the state of all open client sessions.

12. The system of claim 9 , wherein the session management module is further configured to mark the session state as inactive after a predetermined timeout period.

13. The system of claim 12 , wherein the session management module is further configured to mark the session state as active when a further fragment request associated with the client session is received.

14. The system of claim 9 , wherein the at least one client request comprises a plurality of client requests, and wherein the session state is determined based on a timing of the plurality of client requests.

15. The system of claim 14 , wherein when the timing indicates that the plurality of client requests are for fragments that are out of sequence, then a seek operation is determined.

16. The system of claim 14 , wherein when the timing indicates that an actual elapsed time exceeds a playing time of fragments requested in the plurality of client requests, then a trick play operation is determined.

17. A method for delivering a streaming media content item from an origin server to a client device, wherein the origin server has an origin container format and an origin delivery format for the streaming media content, and wherein the streaming media content comprises a first plurality of content fragments encoded in an origin encoding format, the system comprising:

a) receiving at least one client request from the client device for at least a requested portion of the streaming media content item;

b) generating an intermediate request that corresponds to the at least one client request;

c) initiating a streaming session when the at least one client request is received;

d) determining a session state of the client device for the streaming session by monitoring the at least one client request;

e) transmitting the intermediate request to the server;

f) receiving a subset of the first plurality of content fragments corresponding to the requested portion of the streaming media content item;

g) a container conversion module unpacking the subset from the origin container format and packing the subset into a client container format, wherein the content fragments in the subset that are packed in the client container format remain encoded in the origin encoding format;

h) initiating a streaming session when the client request is received, determining a session state of the client device for the streaming session by monitoring fragment requests from the client, and storing, for each of a plurality of open client sessions, corresponding client session state information for associating the client request with one of the plurality of open client sessions; and

i) transmitting the streaming media content item to the client device.

18. The method of claim 17 , wherein the client request is received using a client delivery format, wherein the intermediate request is in the origin delivery format, wherein the subset of the first plurality of content fragments is received in the origin container format from the origin server using the origin delivery format, and wherein the streaming media content item is transmitted in the client container format to the client device using the client delivery format.

19. The method of claim 17 , further comprising identifying the state of all open client sessions.

20. The method of claim 17 , further comprising marking the session state as inactive after a predetermined timeout period.

21. The method of claim 20 , further comprising marking the session state as active when a further fragment request associated with the client session is received.

22. The method of claim 17 , wherein the at least one client request comprises a plurality of client requests, and wherein the session state is determined based on a timing of the plurality of client requests.

23. The method of claim 22 , wherein when the timing indicates that the plurality of client requests are for fragments that are out of sequence, then a seek operation is determined.

24. The method of claim 22 , wherein when the timing indicates that an actual elapsed time exceeds a playing time of fragments requested in the plurality of client requests, then a trick play operation is determined.

Assignments (4)
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 →
MERGER Recorded Oct 20, 2015
From: SEAWELL NETWORKS, INC.
To: ARRIS CANADA, INC.
Reel/Frame 036834/0426 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 12, 2012
From: MYERS, ROBERT LINWOOD; RANGANATHAN, PARASURAM; CHVETS, IVAN; PAKULSKI, KRZYSZTOF
To: SEAWELL NETWORKS INC.
Reel/Frame 028036/0474 →
Continuity (1)
Related Publication 20130275557A1 · Oct 17, 2013