# US 12,096,045 B2 · System and method for transcoding media stream

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,096,045 B2
- Document ID: US12096045B2
- Status: Granted
- Kind: B2
- Application number: 18/216,585
- Filed: 2023-06-29
- Published: 2023-10-26
- Granted: 2024-09-17
- Earliest claimed: 2016-08-31
- Assignees: Resi Media LLC
- Applicants: Resi Media LLC
- Inventors: Bradley Reitmeyer; Paul Martel; Christopher Joel Ribble
- Web page: https://patentgrep.com/patent/US12096045B2

## CPC

- H04N 21/2187: Live feed
- H04L 65/765: {intermediate}
- H04N 21/234309: {by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo (conversion of standards in analog television systems H04N7/01)}
- H04N 21/2365: Multiplexing of several video streams
- H04N 21/2743: Video hosting of uploaded data from client
- H04N 21/432: Content retrieval operation from a local storage medium, e.g. hard-disk {(details of retrieval of video data and associated meta data in video databases G06F16/739)}
- H04N 21/440218: {by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 (conversion of standards in analogue television systems H04N7/01)}
- H04N 21/63345: {by transmitting keys (key distribution for secret or secure communication H04L9/08; network support of key management H04L63/06)}
- H04N 21/63775: {for uploading keys, e.g. for a client to communicate its public key to the server (key management H04L9/08; network support of key management H04L63/06)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 1)

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.

### Claim 5 (depends on 1)

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.

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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.

### Claim 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.

### Claim 9 (depends on 8)

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.

### Claim 10 (depends on 8)

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.

### Claim 11 (depends on 8)

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.

### Claim 12 (depends on 8)

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.

### Claim 13 (depends on 8)

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.

### Claim 14 (depends on 8)

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.

### Claim 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.

### Claim 16 (depends on 15)

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.

### Claim 17 (depends on 15)

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.

### Claim 18 (depends on 15)

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.

### Claim 19 (depends on 15)

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.

### Claim 20 (depends on 15)

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.
