Coordination of fault-tolerant video stream processing in cloud-based video streaming system
First Claim
1. A method executed by an electronic device implementing a streaming platform coordinator (SPC) to coordinate at least a first and a second video streaming platform for processing video sources, wherein at least a subset of the video sources are accessible to both the first video and the second video streaming platforms, the method comprising:
- receiving a request to create a media workflow for a video source, wherein the request indicates that the media workflow is required to be redundant;
responsive to receiving the request at the SPC, transmitting two requests to create the media workflow, one each to the first and second video streaming platforms from the SPC, wherein each of the first and second video streaming platforms is caused to create one instance of the media workflow using the video source as input and using a common set of resources of a content distribution network (CDN) to publish, and wherein a first instance of the media workflow is assigned to a first worker at the first video streaming platform and a second instance of the media workflow is assigned to a second worker at the second video streaming platform;
receiving requests at the SPC from the first and the second video streaming platforms to route the video source to the first and the second workers respectively;
causing the video source to be routed to the first and the second workers; and
communicating with the first and the second workers so that only one worker out of the first and second workers publishes output from one instance of the media workflow to the CDN at a given moment, where communicating to the first and the second workers includes receiving a request to publish output of an instance of the media workflow from at least one of the first and the second workers, determining one worker out of the first and the second workers to publish to the CDN for a period of time, and granting a permission to publish to the one worker for the period of time so that the one worker publishes the output of its instance of the media workflow to the CDN, wherein the one worker makes current media workflow publishing progress information accessible to the streaming platform coordinator,wherein publishing is a task of a task graph created for the instance of the media workflow in the first and second video streaming platforms, wherein the task graph is a directed acyclic graph of tasks with each node of the task graph representing a processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task.
3 Assignments
0 Petitions
Accused Products
Abstract
A method to coordinate redundant video processing in video streaming platforms is disclosed. In one embodiment, a request is received at a streaming platform coordinator (SPC) to create a redundant media workflow for a video source. The SPC transmits two requests to create the media workflow, one each to a first and a second video streaming platforms, each creating one instance of the media workflow. The SPC then receives requests to route the video source to a first and a second workers respectively and causes the video source to be routed so. The SPC then communicates with the first and the second workers so that only one worker out of the first and second workers publishes output of one instance of the media workflow to a CDN at a given moment. A system to perform the method and a storage medium storing instructions to perform the method are disclosed too.
-
Citations
16 Claims
-
1. A method executed by an electronic device implementing a streaming platform coordinator (SPC) to coordinate at least a first and a second video streaming platform for processing video sources, wherein at least a subset of the video sources are accessible to both the first video and the second video streaming platforms, the method comprising:
-
receiving a request to create a media workflow for a video source, wherein the request indicates that the media workflow is required to be redundant; responsive to receiving the request at the SPC, transmitting two requests to create the media workflow, one each to the first and second video streaming platforms from the SPC, wherein each of the first and second video streaming platforms is caused to create one instance of the media workflow using the video source as input and using a common set of resources of a content distribution network (CDN) to publish, and wherein a first instance of the media workflow is assigned to a first worker at the first video streaming platform and a second instance of the media workflow is assigned to a second worker at the second video streaming platform; receiving requests at the SPC from the first and the second video streaming platforms to route the video source to the first and the second workers respectively;
causing the video source to be routed to the first and the second workers; and
communicating with the first and the second workers so that only one worker out of the first and second workers publishes output from one instance of the media workflow to the CDN at a given moment, where communicating to the first and the second workers includes receiving a request to publish output of an instance of the media workflow from at least one of the first and the second workers, determining one worker out of the first and the second workers to publish to the CDN for a period of time, and granting a permission to publish to the one worker for the period of time so that the one worker publishes the output of its instance of the media workflow to the CDN, wherein the one worker makes current media workflow publishing progress information accessible to the streaming platform coordinator,wherein publishing is a task of a task graph created for the instance of the media workflow in the first and second video streaming platforms, wherein the task graph is a directed acyclic graph of tasks with each node of the task graph representing a processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An electronic device to serve as a streaming platform coordinator (SPC) to coordinate at least a first and a second video streaming platform for processing video sources, wherein at least a subset of the video sources are accessible to both the first video and the second video streaming platforms, the electronic device comprising:
-
a processor and a non-transitory machine-readable storage medium coupled to the processor, the non-transitory machine-readable storage medium containing operations executable by the processor, wherein the electronic device is operative to;
receive a request to create a media workflow for a video source, wherein the request indicates that the media workflow is required to be redundant;
responsive to receiving the request at the SPC, transmit two requests to create the media workflow, one each to the first and the second video streaming platforms from the SPC, wherein each of the first and second video streaming platforms is caused to create one instance of the media workflow using the video source as input and using a common set of resources of a content distribution network (CDN) to publish, and wherein a first instance of the media workflow is assigned to a first worker at the first video streaming platform and a second instance of the media workflow is assigned to a second worker at the second video streaming platform;
receive requests at the SPC from the first and the second video streaming platforms to route the video source to the first and the second workers respectively;
cause the video source to be routed to the first and the second workers; and
communicate with the first and the second workers so that only one worker out of the first and second workers publishes output from one instance of the media workflow to the CDN at a given moment, where the communication with the first and the second workers includes the electronic device being configured to receive a request to publish output of an instance of the media workflow from at least one of the first and the second workers, to determine one worker out of the first and the second workers to publish to the CDN for a period of time, and to grant a permission to publish to the one worker for the period of time so that the one worker publishes the output of its instance of the media workflow to the CDN, wherein the one worker makes current media workflow publishing progress information accessible to the streaming platform coordinator,wherein publishing is a task of a task graph created for the instance of the media workflow in the first and second video streaming platforms, wherein the task graph is a directed acyclic graph of tasks with each node of the task graph representing a processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A non-transitory machine-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations in an electronic device implementing a streaming platform coordinator (SPC) to coordinate at least a first and a second video streaming platform for processing video sources, wherein at least a subset of the video sources are accessible to both the first video and the second video streaming platforms, the operations comprising:
-
receiving a request to create a media workflow for a video source, wherein the request indicates that the media workflow is required to be redundant;
responsive to receiving the request at the SPC, transmitting two requests to create the media workflow, one each to the first and second video streaming platforms from the SPC, wherein each of the first and second video streaming platforms is caused to create one instance of the media workflow using the video source as input and using a common set of resources of a content distribution network (CDN) to publish, and wherein a first instance of the media workflow is assigned to a first worker at the first video streaming platform and a second instance of the media workflow is assigned to a second worker at the second video streaming platform;receiving requests at the SPC from the first and the second video streaming platforms to route the video source to the first and the second workers respectively;
causing the video source to be routed to the first and the second workers; and
communicating with the first and the second workers so that only one worker out of the first and second workers publishes output from one instance of the media workflow to the CDN at a given moment, where communicating to the first and the second workers includes receiving a request to publish output of an instance of the media workflow from at least one of the first and the second workers, determining one worker out of the first and the second workers to publish to the CDN for a period of time, and granting a permission to publish to the one worker for the period of time so that the one worker publishes the output of its instance of the media workflow to the CDN, wherein the one worker makes current media workflow publishing progress information accessible to the streaming platform coordinator,wherein publishing is a task of a task graph created for the instance of the media workflow in the first and second video streaming platforms, wherein the task graph is a directed acyclic graph of tasks with each node of the task graph representing a processing task and each edge of the task graph representing a data flow across two tasks and a corresponding input and output of each task. - View Dependent Claims (14, 15, 16)
-
Specification