A seguir é descrito os passos necessários para encodar um vídeo com uma trilha de audio. Como exemplo supõe se que esse arquivo tenha 10 minutos em 60 FPS, totalizando 36000 quadros, e que suporte streaming com seek.

Criação da tarefa (job)

Os dados necessários para a criação são, o vídeo, os parâmetros dos codecs de audio e video, e as opções de segmentação.
Como exemplo serão utilizados os codecs com os seguintes parâmetros: libaom-av1 com crf 30, e para o audio libopus com taxa de bits de 96Kbps. Os parâmetros de segmentação como segmentos de 3600 quadros, resultando em 10 segmentos de 1 minuto e um segmento com todo o audio.

Para realizar a inclusão de uma tarefa o cliente, autenticado e autorizado, realizara um post request com o video e os dados mencionados acima. Esse request irá criar uma task de análise.

Criação das tasks

São necessários 3 tipos de tasks para o funcionamento do programa, um para análise do arquivo de entrada, um para realizar o processamento de cada segmento, e um para juntar todos os segmentos processados no arquivo final.

A task final depende todos os segmentos, e logo deve ser a última a ser executada. A task de análise também precisa ser a primeira a ser executada, mas antes de sua execução não haverá outras tasks no job. Logo a execução pode ser separada em 3 fases, e as tarefas da fase seguinte dependem da fase anterior.

Análise

Essa task deve analisar o arquivo para determinar o começo e o fim de cada segmento e, a partir disso, criar as tasks de processamento e de combinação final.

Algum worker, ou o servidor, após determinar onde começa e termina cada seguimento, incluirá todos os seguimentos, cada um como uma task, e no final, uma task para unir todos os segmentos no arquivo final.