Tutoriais

Escolhendo uma API de streaming ao vivo: o que verificar antes de construir

O que um desenvolvedor deve comparar em uma API de vídeo para transmissões ao vivo e sob demanda, da cobrança e do ingest à incorporação e ao trabalho que continua do seu lado.

dcast Team
8 min de leitura
Compartilhar:
código, programação, html, digitação, trabalho, negócios, mãos, laptop, computador, tecnologia, escritório, mesa, programação, programação, c
On this page

Escolher um backend de vídeo parece uma comparação de recursos, mas a decisão se aproxima mais de contratar um fornecedor para a parte do seu produto que os seus clientes realmente assistem. Uma API de streaming ao vivo envolve uploads, codificação, entrega e reprodução, então uma escolha fraca aparece como chamados de suporte, uma fatura inesperada ou uma reescrita. Este guia apresenta um procedimento curto para comparar provedores, seja você estiver avaliando uma API gerenciada contra a construção de um pipeline próprio, seja procurando uma alternativa à que usa hoje. Você pode executar todas as verificações abaixo em uma tarde, com uma conta de teste, e cada uma revela algo que uma página de marketing não mostra.

Comece pelas tarefas que o seu produto precisa cumprir

Anote as tarefas antes de abrir qualquer página de fornecedor. Uma lista típica diz: aceitar um upload, transformá-lo em algo reproduzível, entrar ao vivo a partir de um encoder, exibir o resultado na sua própria página e restringir quem pode assistir. Se você vende acesso, acrescente o checkout e a concessão de acesso à lista. Cada linha vira um teste que você pode executar, e cada teste termina em aprovação ou reprovação claras, que não dependem de como a página de recursos foi redigida.

Em seguida, avalie cada API com base nessa lista, e não na página de recursos. A página de recursos lista aquilo de que o provedor se orgulha, enquanto a sua lista descreve o que você precisa entregar. Marque cada tarefa como coberta pela API, coberta apenas em um painel ou não coberta. Uma tarefa que existe apenas em um painel obriga uma pessoa a clicar em uma tela toda vez que você integra um cliente, portanto trate isso como uma lacuna para qualquer produto que vá crescer além de um punhado de contas.

Pergunte como o uso é cobrado

O formato da cobrança importa mais do que qualquer tarifa isolada. A cobrança por minutos ou por tráfego gera uma fatura que acompanha a sua audiência, de modo que uma transmissão popular aumenta o valor no mesmo dia em que aumenta as suas horas assistidas. Um plano fixo oferece um número em torno do qual você pode planejar, mas costuma vir com limites de armazenamento, de transmissões simultâneas ou de qualidade, e é preciso ler esses limites com o mesmo cuidado.

Faça as contas com o seu próprio tráfego em vez do exemplo da página. Pegue as horas mensais de visualização esperadas, um pico pessimista bem maior e a quantidade de vídeo que você espera armazenar, e passe todos esses cenários por cada modelo de cobrança. Se a fatura por consumo só é tolerável no cenário tranquilo, você descobriu que a sua margem depende da sorte. Se o modelo fixo comporta o pico, mas parece superdimensionado em um mês calmo, você descobriu que está reservando capacidade que talvez não use, o que é uma troca justa apenas quando a previsibilidade importa para você.

Verifique se a API cobre todo o caminho

Procure cobertura de todo o caminho, do upload até um player pronto. Montar um uploader, um transcodificador e um player de fornecedores diferentes multiplica os pontos em que algo pode quebrar, e multiplica os painéis, as chaves e as faturas que você mantém. Cada junção tem o seu próprio modo de falha: o uploader informa sucesso enquanto o transcodificador rejeita o codec, ou o player carrega um manifesto que a entrega ainda não alcançou.

Uma única API não é automaticamente melhor, então teste as junções que você teria de manter de qualquer forma. Envie um arquivo com um contêiner incomum, um clipe vertical de celular e uma gravação muito longa, e observe o que volta em cada caso. Se o provedor lida com eles e devolve um status claro, a integração que você escreve continua pequena. Se você precisar adicionar código de conversão ou lógica de nova tentativa personalizada em torno do fornecedor, conte esse código como parte do esforço real de escolhê-lo.

Leia as respostas e teste o fluxo de status

Leia o que a API retorna para um novo upload e para uma nova transmissão antes de escrever o código de integração. Para um upload, você quer um endereço de upload, um endereço de status e um código de incorporação pronto na resposta, sem nenhuma etapa manual. Para uma transmissão, você quer o endereço de publicação, a chave de transmissão e o código do player. Se qualquer um deles exigir que uma pessoa abra um painel, a sua automação tem um buraco.

Em seguida, teste o fluxo de status com um arquivo real, do upload, passando pelo processamento, até ficar pronto. Não confie no exemplo da documentação. Envie um arquivo do tamanho que os seus usuários enviarão, consulte o endereço de status e registre quanto tempo dura cada estado. Você vai descobrir se o progresso do processamento é informado, se um arquivo com falha devolve um motivo que você possa mostrar ao usuário e como o status se comporta se você perguntar antes de o upload terminar.

Trate espera, falha e nova tentativa no seu próprio código. Espera significa que a sua página mostra um espaço reservado em vez de um player quebrado. Falha significa uma mensagem visível e uma forma de recomeçar. Nova tentativa significa que a requisição de upload pode ser repetida com segurança, sem deixar para trás um espaço de armazenamento reservado pela metade. Escreva um teste para cada estado, incluindo um arquivo deliberadamente corrompido, porque é esse o caso que o seu primeiro cliente real vai encontrar.

Proteja segredos e limite onde o vídeo pode ser incorporado

Trate o endereço de publicação e a chave de transmissão como segredos e crie-os no seu servidor, em vez de em uma página do navegador. Quem tiver uma chave de transmissão pode publicar no seu canal, e tudo o que é enviado ao navegador pode ser lido por um visitante que abra as ferramentas de desenvolvedor. A mesma regra vale para a própria chave da API: mantenha-a no servidor, chame o provedor a partir do seu backend e entregue ao navegador apenas o que ele precisa para reproduzir.

Veja como o player é incorporado e como o acesso é limitado, porque um vídeo que qualquer site pode incorporar não é o que um produto pago quer. Se o seu conteúdo está à venda, um código de incorporação copiado em outro site dá aos espectadores um jeito de contornar o seu checkout. Pergunte se é possível restringir o player a uma lista de domínios, se essa lista também cobre transmissões ao vivo e chat, e o que acontece quando a lista não pode ser lida. Um sistema seguro se recusa a incorporar nesse caso. Se o seu objetivo é alcance, a configuração oposta é a correta, então decida em qual caso você está antes de começar a comparar.

Descubra quais limites pertencem à conta

Os limites muitas vezes se escondem atrás da palavra chave. Descubra quais limites pertencem à conta e não à chave, como transmissões simultâneas e armazenamento, para que um lançamento bem-sucedido não bata em uma parede no primeiro dia. Se você cria uma chave separada para cada cliente ou ambiente, um teto no nível da conta é compartilhado entre todas elas, e os seus testes de homologação podem consumir o espaço de que o tráfego de produção precisa.

Confirme que a mesma assinatura atende o painel e a API. Um nível enterprise separado para acesso programático pode acrescentar meses a um projeto pequeno, porque transforma uma decisão técnica em uma conversa comercial. Pergunte diretamente se o acesso à API e os controles de incorporação de que você precisa estão incluídos no nível que pretende comprar, e obtenha a resposta por escrito para não descobrir uma barreira depois de terminada a integração.

Monitore o provedor e planeje a saída

Mantenha uma pequena conta de teste e um script que cria, reproduz e exclui um vídeo todos os dias, para que uma mudança no provedor apareça antes de os seus clientes a verem. O script deve fazer trabalho real: solicitar um upload, enviar um arquivo pequeno, esperar até ficar pronto, buscar o código do player, carregá-lo em um navegador headless, confirmar que os quadros são reproduzidos e então excluir o vídeo. Gere um alerta para qualquer etapa que falhe ou que demore muito mais do que o normal, e guarde os resultados em um registro para poder dizer ao suporte exatamente quando o comportamento mudou.

Planeje a saída mantendo a sua própria cópia dos originais e o seu próprio registro dos identificadores de vídeo, o que transforma uma futura troca de provedor em uma migração em vez de uma reescrita. Guarde o upload original no seu próprio armazenamento e mantenha uma tabela que associe o ID interno do seu vídeo ao ID do provedor. Use os seus próprios IDs em páginas e links, de modo que apenas a camada de integração conheça os do provedor. Essa separação é o que torna a dependência de fornecedor um risco administrável, e não um motivo para evitar a contratação por completo.

Antes de se comprometer, execute a lista de verificação mais uma vez como ensaio. Você consegue descrever em uma página cada tarefa, a fatura em um mês de pico, o fluxo de status, os segredos, os limites da conta, a verificação diária e a saída? Se consegue, está pronto para construir. Se não consegue, a linha que falta é a pergunta a fazer ao provedor em seguida.

Documentação da API sobre este tema

API de vídeostreaming ao vivodesenvolvedoresincorporação de vídeocobrança
d

dcast Team

Especialistas em streaming de vídeo que ajudam os criadores a ter sucesso.

Comece hoje o seu negócio de vídeo

Envie, transmita e venda seus vídeos. Comece no plano gratuito, sem cartão.

Comece grátis