Transcodificação de VOD¶
Um arquivo enviado pode ser servido como está ou desdobrado em uma escada de qualidades: vários arquivos de tamanho e bitrate diferentes mais um descritor para o player. Como desdobrar é definido por um modelo de asset; o trabalho em si é uma tarefa e roda no streamer onde está o original. As saídas ficam no mesmo asset, ao lado do original.
Para isso a seção VOD tem duas abas: Modelos de ativos e Tarefas. O andamento de um asset é visto no seu cartão; o quadro geral, no painel de controle.
Modelos de asset¶
A aba Modelos de ativos é o catálogo de escadas. As colunas: Nome, Descrição — as qualidades em palavras, por exemplo 720p H.264, 360p H.264, e Assets — quantos assets estão vinculados ao modelo.

Os modelos do sistema (mbr-1080, mbr-720, source-like) não são editados nem apagados; a única ação é Clonar, que abre o formulário de um modelo próprio com uma cópia da escada. Os modelos próprios têm Editar e Apagar; o botão Novo modelo abre um formulário com uma única qualidade.
Um modelo vinculado a assets também pode ser apagado: a confirmação informa quantos são, depois da exclusão os assets ficam sem modelo e seus arquivos não são tocados. O próximo upload para um asset assim oferece escolher um modelo de novo.
O formulário do modelo¶
O formulário do modelo é a escada, qualidade a qualidade. Nome é como o modelo aparece nas listas. Original é o que fazer com o arquivo de origem após o processamento: manter ou apagar após processar. Depois, as qualidades: cada uma tem sua resolução (o campo Altura), Codec e Bitrate, e cada qualidade é um arquivo de saída; o preset do codificador, o tamanho do GOP e a estrutura de quadros são definidos para toda a escada. Os botões Adicionar qualidade oferecem as resoluções usuais, Outra… — qualquer resolução, original como está — uma qualidade sem redimensionamento. A regra de áudio é uma para toda a escada: todas as trilhas de áudio do original são recodificadas em AAC e vão para cada saída mantendo a etiqueta de idioma, então dublagens e traduções não se perdem.

Os nomes das saídas não são digitados: são montados a partir do nome da origem e da resolução da qualidade. O cartão O que sairá de movie.mp4 à direita mostra o resultado para o exemplo: movie-mp4-720p.mp4, movie-mp4-360p.mp4 e o descritor movie-mp4.smil. O ponto do nome de origem vira hífen, então movie.mp4 e movie.mkv no mesmo asset produzem saídas diferentes e não se sobrescrevem.
Duas qualidades com a mesma resolução e o mesmo codec não são salvas: é o mesmo arquivo com dois nomes. As qualidades se distinguem pela resolução.
Abaixo fica o cartão Ativos com este modelo: links para os cartões dos assets vinculados; a partir de cem, o cartão mostra os primeiros cem. Um modelo criado via API segue as mesmas regras: o servidor aceita apenas uma escada assim, então qualquer modelo abre no formulário.
Upload com um modelo¶
O modelo é vinculado ao asset no upload: na pré-visualização do upload, ao lado do nome do novo asset, está o campo Modelo do ativo. Cada arquivo de vídeo leva a marca Pelo modelo; sem a marca, o arquivo é guardado como está, sem tarefa. Um upload para um asset com modelo segue o modelo dele, não há o que escolher; um asset sem modelo oferece escolhê-lo na própria pré-visualização.
A tarefa aparece sozinha assim que o upload termina. Não há nada a iniciar à mão.
Tarefas¶
A aba Tarefas é o registro do trabalho de todos os streamers. Acima da lista está o resumo por status: na fila, enviado, em andamento, cancelando, erro.

As colunas: Tarefa — o arquivo de origem, o link abre o cartão da tarefa; Ativo — a chave, o link abre o cartão do asset; Status; Progresso — a porcentagem e a velocidade em relação ao tempo real; Executor — o streamer e sua fila; Tentativa; Erro — em palavras; Criada — quando a tarefa foi iniciada. Em uma tarefa na fila a coluna Erro informa o motivo da espera: o streamer está offline ou não executa tarefas, a fila dele não tem lugar, uma tentativa falhou e será repetida.
Status de uma tarefa:
- na fila — espera um executor;
- enviado — aceita por um streamer, espera sua vez lá;
- em andamento — codificando;
- cancelando — o cancelamento foi enviado ao executor, aguarda a confirmação;
- concluído;
- erro — as tentativas se esgotaram ou a origem não serve;
- cancelado.
Por padrão a lista mostra ativas e erros; as tarefas concluídas e canceladas abrem pelo filtro Status, e a opção todos mostra o registro inteiro. O filtro Ativo aceita uma chave de asset, Nó — o streamer executor, Limpar remove todos os filtros.
Ações da linha:
- Cancelar em uma tarefa na fila a fecha na hora; em uma tarefa em andamento passa a cancelando até o streamer confirmar. Em uma tarefa com erro, Cancelar remove o registro.
- Repetir aparece nos erros que uma nova tentativa pode resolver: o streamer estava indisponível, acabou o espaço, o codificador caiu. Erros da origem — o arquivo não é legível, o formato não é suportado — não se resolvem repetindo, e o botão não aparece.
Tarefas concluídas e com erro são guardadas por sete dias e depois saem do registro sozinhas. O botão Limpar as remove antes: ele aparece com o filtro por concluídas, com erro ou canceladas e, após a confirmação, remove todas as tarefas desse status. As tarefas de um asset apagado saem junto com ele.
O cartão da tarefa¶
O cartão da tarefa abre pelo nome da origem na lista. O cabeçalho traz o arquivo, o status e o link Voltar aos trabalhos.

O bloco Progresso — a barra de andamento, Processado em relação à duração do arquivo, Velocidade e Tentativa. O bloco Detalhes — o modelo, o que acontece com o original após o processamento, a origem e as saídas; em uma tarefa com erro a mensagem completa do executor também fica aqui. O bloco Resultado aparece quando pelo menos uma saída está pronta e lista os arquivos prontos e o descritor do player. Uma tarefa na fila mostra o motivo da espera no lugar do andamento. À direita, Execução — o asset, o executor com sua fila e quem criou a tarefa, e Cronologia — quando foi criada, enviada e iniciada; Fim em uma tarefa em andamento é uma estimativa pela velocidade atual, marcada com ≈, em uma concluída a hora real, e em uma com erro ou cancelada a linha se chama Parada. Uma tarefa cancelada não mostra saídas nem resultado: ela não produziu nada.
Um asset em processamento¶
No cartão do asset, o bloco Modelo do ativo mostra o modelo vinculado. Salvar muda apenas o modelo e não inicia tarefas. Iniciar tarefa… abre a escolha de originais: os marcados são processados de novo pelo modelo atual e as saídas são refeitas. O link Tarefas do ativo abre o registro filtrado por este asset com todos os status, incluindo as concluídas; ao lado, quantas das tarefas dele estão ativas e com erro.

Enquanto a tarefa roda, seu original vem primeiro na lista de arquivos e fica destacado, e o Apagar dele fica inativo: o arquivo está em processamento. Ao terminar, as saídas e o descritor ficam na lista junto aos demais arquivos, sem marcas; o descritor .smil é o ponto de entrada do player para toda a escada.

O painel de controle¶
No painel de controle, a linha Transcodificação de arquivos VOD mostra quantas tarefas estão na fila, em andamento e com erro, e quantos streamers podem executá-las; o link às tarefas abre o registro. O executor de uma tarefa é sempre o streamer onde está o original: o arquivo não é copiado para lugar nenhum.

Uma tarefa via API¶
O console inicia tarefas apenas pelo modelo do asset. Uma tarefa avulsa para arquivos específicos, com outro modelo ou com um plano próprio é iniciada pela API:
curl -X POST 'http://<central>/central/api-v4/vod/jobs' \
-H 'Authorization: Bearer <chave>' -H 'Content-Type: application/json' \
-d '{"asset_id": "<asset id>", "files": ["movie.mp4"], "template_id": "mbr-720"}'
- files — quais originais processar; sem o campo, todos os originais do asset.
- template_id ou plan — um modelo ou um plano na própria requisição; ele não é vinculado ao asset e o modelo do asset não muda.
- target_asset_id coloca as saídas em outro asset, trim corta um trecho.
Um plano próprio não é limitado pela forma da escada: o descritor, os nomes das saídas e o conjunto de trilhas são livres. Essa tarefa aparece na aba Tarefas como qualquer outra.
O registro via API — GET /central/api-v4/vod/jobs com os filtros asset_key, status (um status ou vários separados por vírgula, por exemplo queued,running) e node; o registro traz o motivo da espera como código (wait_reason) e em palavras (reason). DELETE /vod/jobs/{id} em uma tarefa concluída, com erro ou cancelada remove o registro; DELETE /vod/jobs?status=error — todos os registros desse status.
O que vem depois¶
- Uploads de VOD — a pré-visualização do upload, o dock e os armazenamentos.
- Catálogo VOD — o cartão do asset, a reprodução e a exclusão.