IP Library Granted Patent US 11,736,739
Granted Patent B2
US 11,736,739 · App. 17/844,698 · Granted Aug 22, 2023

System and method for transcoding media stream

Inventors: Bradley Reitmeyer (Allen, TX); Paul Martel (Richardson, TX); Christopher Joel Ribble (Garland, TX)
Assignee: RESI MEDIA LLC
H04N21/2187H04L65/765H04N21/2365H04N21/234309H04N21/2743H04N21/432H04N21/440218H04N21/63345H04N21/63775H04N21/8456
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 11,736,739
App. No.
17/844,698
Granted
Aug 22, 2023
Kind
B2
Abstract

A system for transcoding a media stream includes at least one network interface; at least one memory; and at least one processor each coupled to one or more of the at least one network interface and one or more of the at least one memory. The at least one processor is configured to publish, via a messaging bus, a segment transcode request in a segment transcode request queue, retrieve the segment transcode request by a transcode worker thread, wherein the first transcode worker thread monitors the segment transcode request queue, transcode by a second transcode worker thread a segment referenced by the segment transcode request, determine by the manifest processor whether the second transcode worker thread has completed transcoding the segment and is still operating, and, if not, transcode the segment by a third transcode worker thread, and store the transcoded segment.

Claims (81)

1. A method comprising:

accessing, by a first thread among a plurality of threads executing on one or more processors, a media segment specified by a transcode request;

initiating, by the first thread among the plurality of threads executing on the one or more processors, a transcoding of the media segment specified by the transcode request;

determining, by the one or more processors, that the transcoding of the media segment by the first thread failed to complete; and

based on the determining that the transcoding of the media segment failed to complete and by the one or more processors, providing the transcode request to a queue monitored by a second thread among the plurality of threads.

2. The method of claim 1 , wherein:

the determining that the transcoding of the media segment by the first thread failed to complete includes determining that the transcoding of the media segment is incomplete and that the first thread is inoperative.

3. The method of claim 1 , wherein:

the initiated transcoding of the media segment by the first thread is a first initiated transcoding of the media segment; and

the method further comprises:

initiating, by the second thread among the plurality of threads executing on the one or more processors, a second transcoding of the media segment specified by the transcode request.

4. The method of claim 1 , further comprising:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the accessing, by the first thread, of the media segment specified by the transcode request is responsive to the first thread detecting the transcode request that specifies the media segment in the queue.

5. The method of claim 1 , further comprising:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the queue has a front end from which threads detect sequentially next transcode requests; and

the providing of the transcode request to the queue based on the determining that the transcoding of the media segment failed to complete provides the transcode request to the front end of the queue.

6. The method of claim 1 , further comprising:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the queue has a back end opposite from a front end from which threads detect sequentially next transcode requests; and

the providing of the transcode request to the queue based on the determining that the transcoding of the media segment failed to complete provides the transcode request to the back end of the queue.

7. The method of claim 1 , wherein:

the providing of the transcode request to the queue monitored by the second thread provides the transcode request to a reattempt queue; and

the method further comprises:

monitoring, by the first thread, a main queue for transcode requests; and wherein:

the accessing, by the first thread, of the media segment specified by the transcode request is responsive to the first thread detecting the transcode request in the main queue.

8. A system comprising:

one or more processors; and

a memory storing instructions that, when executed by at least one processor among the one or more processors, cause the system to perform operations comprising:

accessing, by a first thread among a plurality of threads, a media segment specified by a transcode request;

initiating, by the first thread, a transcoding of the media segment specified by the transcode request;

determining that the transcoding of the media segment by the first thread failed to complete; and

based on the determining that the transcoding of the media segment failed to complete, providing the transcode request to a queue monitored by a second thread among the plurality of threads.

9. The system of claim 8 , wherein:

the determining that the transcoding of the media segment by the first thread failed to complete includes determining that the transcoding of the media segment is incomplete and that the first thread is inoperative.

10. The system of claim 8 , wherein:

the initiated transcoding of the media segment by the first thread is a first initiated transcoding of the media segment; and

the operations further comprise:

initiating, by the second thread among the plurality of threads executing on the one or more processors, a second transcoding of the media segment specified by the transcode request.

11. The system of claim 8 , wherein the operations further comprise:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the accessing, by the first thread, of the media segment specified by the transcode request is responsive to the first thread detecting the transcode request that specifies the media segment in the queue.

12. The system of claim 8 , wherein the operations further comprise:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the queue has a front end from which threads detect sequentially next transcode requests; and

the providing of the transcode request to the queue based on the determining that the transcoding of the media segment failed to complete provides the transcode request to the front end of the queue.

13. The system of claim 8 , wherein the operations further comprise:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the queue has a back end opposite from a front end from which threads detect sequentially next transcode requests; and

the providing of the transcode request to the queue based on the determining that the transcoding of the media segment failed to complete provides the transcode request to the back end of the queue.

14. The system of claim 8 , wherein:

the providing of the transcode request to the queue monitored by the second thread provides the transcode request to a reattempt queue; and

the operations further comprise:

monitoring, by the first thread, a main queue for transcode requests; and wherein:

the accessing, by the first thread, of the media segment specified by the transcode request is responsive to the first thread detecting the transcode request in the main queue.

15. A non-transitory machine-readable medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

accessing, by a first thread among a plurality of threads, a media segment specified by a transcode request;

initiating, by the first thread, a transcoding of the media segment specified by the transcode request;

determining that the transcoding of the media segment by the first thread failed to complete; and

based on the determining that the transcoding of the media segment failed to complete, providing the transcode request to a queue monitored by a second thread among the plurality of threads.

16. The non-transitory machine-readable medium of claim 15 , wherein:

the initiated transcoding of the media segment by the first thread is a first initiated transcoding of the media segment; and

the operations further comprise:

initiating, by the second thread among the plurality of threads executing on the one or more processors, a second transcoding of the media segment specified by the transcode request.

17. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the accessing, by the first thread, of the media segment specified by the transcode request is responsive to the first thread detecting the transcode request that specifies the media segment in the queue.

18. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the queue has a front end from which threads detect sequentially next transcode requests; and

the providing of the transcode request to the queue based on the determining that the transcoding of the media segment failed to complete provides the transcode request to the front end of the queue.

19. The non-transitory machine-readable medium of claim 15 , wherein the operations further comprise:

monitoring, by the first thread, the queue for transcode requests; and wherein:

the queue has a back end opposite from a front end from which threads detect sequentially next transcode requests; and

the providing of the transcode request to the queue based on the determining that the transcoding of the media segment failed to complete provides the transcode request to the back end of the queue.

20. The non-transitory machine-readable medium of claim 15 , wherein:

the providing of the transcode request to the queue monitored by the second thread provides the transcode request to a reattempt queue; and

the operations further comprise:

monitoring, by the first thread, a main queue for transcode requests; and wherein:

the accessing, by the first thread, of the media segment specified by the transcode request is responsive to the first thread detecting the transcode request in the main queue.

Assignments (6)
TERMINATION AND RELEASE OF PATENT SECURITY INTERESTS RECORDED ON MAY 19, 2023, AT REEL/FRAME 063696/0709 Recorded Aug 20, 2024
From: CRESCENT AGENCY SERVICES LLC, AS ADMINISTRATIVE AGENT
To: PUSHPAY USA INC; RESI MEDIA LLC
Reel/Frame 068722/0660 →
PATENT SECURITY AGREEMENT Recorded Aug 20, 2024
From: PUSHPAY USA INC; RESI MEDIA LLC
To: JEFFERIES FINANCE LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 068722/0758 →
SECURITY INTEREST Recorded May 19, 2023
From: PUSHPAY USA INC; RESI MEDIA LLC
To: CRESCENT AGENCY SERVICES LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 063696/0709 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2022
From: REITMEYER, BRADLEY; MARTEL, PAUL; RIBBLE, CHRISTOPHER JOEL
To: LIVING AS ONE, LLC
Reel/Frame 060253/0711 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2022
From: ASYNCHRONOUS HOLDINGS, LLC
To: RESI MEDIA LLC
Reel/Frame 060253/0718 →
CHANGE OF NAME Recorded Jun 21, 2022
From: LIVING AS ONE, LLC
To: ASYNCHRONOUS HOLDINGS, LLC
Reel/Frame 060514/0341 →
Continuity (7)
Continuation 17198307 · Mar 11, 2021
Continuation 16710660 · Dec 11, 2019
Continuation 16017474 · Jun 25, 2018
Continuation In Part 15944312 · Apr 3, 2018
Continuation 15462816 · Mar 18, 2017
Continuation 15252368 · Aug 31, 2016
Related Publication 20220394313A1 · Dec 8, 2022
Cited By (1)
US 12,610,093