IP Library Granted Patent US 12,096,045
Granted Patent B2
US 12,096,045 · App. 18/216,585 · Granted Sep 17, 2024

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/234309H04N21/2365H04N21/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 12,096,045
App. No.
18/216,585
Granted
Sep 17, 2024
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 (64)

1. A method comprising:

accessing, by one or more processors, a media segment that corresponds to a transcode request;

determining, by the one or more processors, that a transcoding of the media segment by a first thread has stopped short of completion; and

by the one or more processors, based on the transcoding having stopped short of completion, providing the transcode request to a queue monitored by a second thread.

2. The method of claim 1 , wherein:

the determining that the transcoding of the media segment by the first thread has stopped short of completion includes determining that the first thread is inoperative while the transcoding of the media segment is incomplete.

3. The method of claim 1 , wherein:

the transcoding of the media segment by the first thread is a first transcoding; and the method further comprises:

initiating the first transcoding of the media segment by the first thread; and

based on the first transcoding having stopped short of completion, initiating a second transcoding of the media segment by the second thread.

4. The method of claim 1 , wherein:

the accessing of the media segment that corresponds to the transcode request is responsive to the first thread detecting the transcode request in the queue.

5. The method of claim 1 , wherein:

the queue has a front end from which one or more threads are configured to detect one or more queued transcode requests; and

the providing of the transcode request to the queue based on the transcoding having stopped short of completion provides the transcode request to the front end of the queue.

6. The method of claim 1 , wherein:

the queue has a back end opposite from a front end from which one or more threads are configured to detect one or more queued transcode requests; and

the providing of the transcode request to the queue based on the transcoding having stopped short of completion provides the transcode request to the back end of the queue.

7. The method of claim 1 , wherein:

the queue is a reattempt queue distinct from a main queue;

the accessing of the media segment is responsive to the first thread detecting the transcode request in the main queue; and

the second thread is configured to monitor the reattempt queue for transcode requests.

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 a media segment that corresponds to a transcode request;

determining that a transcoding of the media segment by a first thread has stopped short of completion; and

based on the transcoding having stopped short of completion, providing the transcode request to a queue monitored by a second thread.

9. The system of claim 8 , wherein:

the determining that the transcoding of the media segment by the first thread has stopped short of completion includes determining that the first thread is inoperative while the transcoding of the media segment is incomplete.

10. The system of claim 8 , wherein:

the transcoding of the media segment by the first thread is a first transcoding; and the operations further comprise:

initiating the first transcoding of the media segment by the first thread; and

based on the first transcoding having stopped short of completion, initiating a second transcoding of the media segment by the second thread.

11. The system of claim 8 , wherein:

the accessing of the media segment that corresponds to the transcode request is responsive to the first thread detecting the transcode request in the queue.

12. The system of claim 8 , wherein:

the queue has a front end from which one or more threads are configured to detect one or more queued transcode requests; and

the providing of the transcode request to the queue based on the transcoding having stopped short of completion provides the transcode request to the front end of the queue.

13. The system of claim 8 , wherein:

the queue has a back end opposite from a front end from which one or more threads are configured to detect one or more queued transcode requests; and

the providing of the transcode request to the queue based on the transcoding having stopped short of completion provides the transcode request to the back end of the queue.

14. The system of claim 8 , wherein:

the queue is a reattempt queue distinct from a main queue;

the accessing of the media segment is responsive to the first thread detecting the transcode request in the main queue; and

the second thread is configured to monitor the reattempt queue for transcode requests.

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 a media segment that corresponds to a transcode request;

determining that a transcoding of the media segment by a first thread has stopped short of completion; and

based on the transcoding having stopped short of completion, providing the transcode request to a queue monitored by a second thread.

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

the determining that the transcoding of the media segment by the first thread has stopped short of completion includes determining that the first thread is inoperative while the transcoding of the media segment is incomplete.

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

the transcoding of the media segment by the first thread is a first transcoding; and the operations further comprise:

initiating the first transcoding of the media segment by the first thread; and

based on the first transcoding having stopped short of completion, initiating a second transcoding of the media segment by the second thread.

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

the accessing of the media segment that corresponds to the transcode request is responsive to the first thread detecting the transcode request in the queue.

19. The non-transitory machine-readable medium of claim 15 :

the queue has a front end from which one or more threads are configured to detect one or more queued transcode requests; and

the providing of the transcode request to the queue based on the transcoding having stopped short of completion provides the transcode request to the front end of the queue.

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

the queue has a back end opposite from a front end from which one or more threads are configured to detect one or more queued transcode requests; and

the providing of the transcode request to the queue based on the transcoding having stopped short of completion provides the transcode request to the back end of the queue.

Assignments (6)
TERMINATION AND RELEASE OF PATENT SECURITY INTERESTS RECORDED ON FEBRUARY 8, 2024, AT REEL/FRAME 066419/0731 Recorded Aug 20, 2024
From: CRESCENT AGENCY SERVICES LLC, AS ADMINISTRATIVE AGENT
To: PUSHPAY USA INC; RESI MEDIA LLC
Reel/Frame 068722/0535 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2024
From: REITMEYER, BRADLEY; MARTEL, PAUL; RIBBLE, CHRISTOPHER JOEL
To: LIVING AS ONE, LLC
Reel/Frame 067345/0341 →
CHANGE OF NAME Recorded May 8, 2024
From: LIVING AS ONE, LLC
To: ASYNCHRONOUS HOLDINGS, LLC
Reel/Frame 067345/0493 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2024
From: ASYNCHRONOUS HOLDINGS, LLC
To: RESI MEDIA LLC
Reel/Frame 067345/0716 →
SECURITY INTEREST Recorded Feb 8, 2024
From: PUSHPAY USA INC; RESI MEDIA LLC
To: CRESCENT AGENCY SERVICES LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 066419/0731 →
Continuity (8)
Continuation 17844698 · Jun 20, 2022
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 20230345057A1 · Oct 26, 2023