System and method for transcoding media stream
AssigneeResi Media LLC
InventorsBradley Reitmeyer, Paul Martel, Christopher Joel Ribble
Life of this patent
Estimating the term…
Loading patent…
AssigneeResi Media LLC
InventorsBradley Reitmeyer, Paul Martel, Christopher Joel Ribble
Estimating the term…
This disclosure relates to a system for transcoding a media stream. The system comprises 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 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.
A system for transcoding a media stream, comprising:
A method for transcoding a media stream, comprising:
A non-transitory computer readable medium comprising instructions for operating a system including at least one network interface, at least one memory, and at least one processor, and the instructions, when executed by the at least one processor, cause the system to:
Dependencies are inferred from the claim text.
Drawings are temporarily unavailable. Open the PDF at USPTO
From the US filing history. Foreign family members aren’t listed.
Source of audio or video content , e.g. local disk arrays: live feed
Media network packet handling: intermediate
Involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements: by…
Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL…:…
About 9 years 10 months of term left · ends 31 Aug 2036 (estimated)
This disclosure relates to transcoding media for streaming, and more specifically to a system and method for transcoding a media stream.
Streaming live digital multimedia may result in a lower quality playback experience for end users because any issue with the upload process (from encoder to media server) may result in missing, incomplete, or degraded content. This defective content is then transmitted to end users in the same defective state, even when using a distribution network. This issue may be accepted by some end users because those end users might prefer to view the content as close to realtime as possible. However, some end users prefer for the content to be high quality and gapless upon viewing, and will therefore accept a higher latency (time delay) when viewing the live content. In addition, adaptive bitrate streaming allows for end users to receive content according to their available bandwidth.
In one aspect thereof, a system for transcoding a media stream is provided. The system 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 initialize one or more manifest processors, initialize a plurality of transcode worker threads, publish, via a messaging bus, a transcode request in a transcode request queue, wherein the transcode request includes one or more transcode request parameters, wherein the messaging bus and the transcode request queue are provided by a messaging service, and wherein the messaging service provides communications distributed over the messaging bus across the system. The at least one processor is further configured to retrieve by a manifest processor the transcode request from the transcode request queue, publish, by the manifest processor via the messaging bus, a segment transcode request in a segment transcode request queue, wherein the segment transcode request queue is provided by the messaging service, retrieve the segment transcode request by a first transcode worker thread, wherein each one of the plurality of transcode worker threads are configured to monitor the segment transcode request queue or independently perform transcoding operations on segments, transcode by a second transcode worker thread a segment referenced by the segment transcode request in accordance with the one or more transcode request parameters, determine by the manifest processor whether the transcode worker thread has completed transcoding the segment and is still operating, and, if not, return, via the messaging bus, the segment transcode request to the segment transcode request queue, and transcode the segment by a third transcode worker thread, and store the transcoded segment.
For a more complete understanding, reference is now made to the following description taken in conjunction with the accompanying Drawings in which:
FIG. 1 illustrates one embodiment of a digital content streaming system;
FIG. 2 illustrates one embodiment of an asynchronous queuing and upload system;
Referring now to the drawings, wherein like reference numbers are used herein to designate like elements throughout, the various views and embodiments of a system and method for transcoding a media stream are illustrated and described, and other possible embodiments are described. The figures are not necessarily drawn to scale, and in some instances the drawings have been exaggerated and/or simplified in places for illustrative purposes only. One of ordinary skill in the art will appreciate the many possible applications and variations based on the following examples of possible embodiments.
Referring now to FIG. 1, there is illustrated of a digital content streaming system 100 in accordance with various embodiments of the present disclosure. The system 100 includes a capture site 102. The capture site 102 is a location at which digital content is to be captured, or recorded, and stored. The capture site 102 includes a capture device 104 connected to an encoder 106. In some embodiments, the capture device 102 can be a physical device for capturing video and audio that passes the captured video and audio to the encoder 106. For instance, the capture device 104 could be a video camera connected as a peripheral device to the encoder 106, a webcam contained within the encoder 106, a device on a network to capture video and audio and to transmit the video and audio to the encoder 106 over the network, or any other device capable of capturing video and audio, or other types of digital content. In other embodiments, the capture device 104 may not be a physical device, but rather a method for acquiring video by the encoder 106 such as software and network processes and functions, including, but not limited to, an ability of the encoder 106 to capture video of its associated display, such as recording its desktop, retrieving a video from a location on a network, and using technologies such as Network Device Interface (NDI). In embodiments using technologies similar to NDI, multimedia content is captured by a device on a network which the encoder 106 is also connected. The encoder 106 could receive this multimedia content over the network to encode or re-encode the content. Therefore, the capture device 104, in its various embodiments, is not limited to physical devices that allow for the capture of video and audio content, but also may include any other means for accessing content by the encoder 106, such as video content being already stored on the network and retrieved by the encoder 106.
The encoder 106 may be a custom built machine that allows for video to be received via a capture device, processed, and stored on a local drive connected to the machine. The encoder 106 may run an operating system capable of executing various programs. The encoder 106 also may, in some embodiments, operate as a web server similar in function to a server 108. In this way, the encoder 106 provides digital content to client applications running on equipment that is either on the local network of the encoder 106, or on outside networks. The encoder also can establish a connection with a server 108 over a network 110 for enhanced distribution capabilities.