Coisas a considerar ao usar o Azure AI Video Indexer em escala
Ao usar o Azure AI Video Indexer para indexar vídeos e seu arquivo de vídeos estiver crescendo, considere dimensionar.
Este artigo responde a perguntas como:
- Há alguma restrição tecnológica que preciso levar em consideração?
- Há uma maneira inteligente e eficiente de fazê-lo?
- Posso evitar gastar dinheiro em excesso no processo?
O artigo fornece seis práticas recomendadas de como usar o Azure AI Video Indexer em escala.
Ao carregar vídeos, considere usar uma URL em uma matriz de bytes
O Azure AI Video Indexer oferece a opção de carregar vídeos de uma URL ou diretamente enviando o arquivo como uma matriz de bytes, a última vem com algumas restrições.
Primeiro, ele tem limitações de tamanho de arquivo. O tamanho do arquivo da matriz de bytes é limitado a 2 GB em comparação com a limitação de tamanho de carregamento de 30 GB ao usar a URL.
Segundo, considere apenas alguns dos problemas que podem afetar o desempenho e, portanto, sua capacidade de escalar:
- Enviar arquivos em várias partes significa alta dependência de sua rede,
- confiabilidade do serviço,
- conectividade,
- velocidade de carregamento,
- perda de pacotes em algum lugar na World Wide Web.
Ao enviar vídeos usando URL, você só precisa fornecer um caminho para o local de um arquivo de mídia e o Video Indexer cuida do resto (confira o campo videoUrl
na API de carregamento de vídeo).
Dica
Use o parâmetro opcional videoUrl
da API de carregamento de vídeo. Além disso, você pode usar o AzCopy para obter uma maneira rápida e confiável de obter seu conteúdo para uma conta de armazenamento da qual você pode enviá-lo para o Azure AI Video Indexer usando a URL SAS. O Azure AI Video Indexer recomenda o uso de URLs SAS somente leitura.
Respeitar a limitação da largura de banda
O Azure AI Video Indexer foi criado para lidar com a indexação em escala e, quando você quiser aproveitá-la ao máximo, também deverá estar ciente dos recursos do sistema e projetar sua integração de acordo. Você não vai querer enviar uma solicitação de carregamento de um lote de vídeos só para descobrir que alguns dos filmes não foram carregados e receber um código de resposta HTTP 429 (muitas solicitações). Há um limite de solicitações de API de 10 solicitações por segundo e até 120 solicitações por minuto.
O Azure AI Video Indexer adiciona um retry-after
cabeçalho na resposta HTTP, o cabeçalho especifica quando você deve tentar sua próxima tentativa. Verifique se você está respeitando esse limite antes de tentar sua próxima solicitação.
Usar URL de retorno de chamada
Recomendamos que, em vez de sondar o status da sua solicitação constantemente a partir do segundo em que você enviou a solicitação de upload, você possa adicionar uma URL de retorno de chamada e aguardar que o Azure AI Video Indexer o atualize. Assim que houver qualquer mudança de status em sua solicitação de carregamento, você receberá uma notificação POST para a URL especificada.
Você pode adicionar uma URL de retorno de chamada como um dos parâmetros da API de carregamento de vídeo. Confira os exemplos de código no repositório do GitHub.
Na URL de retorno de chamada, você também pode usar o Azure Functions, uma plataforma orientada para eventos sem servidor que pode ser disparada por HTTP e implementar um fluxo a seguir.
Definição da URL de retorno de chamada
Uma URL de retorno de chamada é usada para notificar o cliente (por meio de uma solicitação POST) sobre os eventos a seguir:
Alteração de estado de indexação:
Propriedades:
Nome Descrição ID A ID de vídeo estado O estado do vídeo Exemplo: https://test.com/notifyme?projectName=MyProject& id=1234abcd&state=Processado
Pessoa identificada no vídeo:
Propriedades
Nome Descrição ID A ID de vídeo faceId A identificação de face que aparece no índice de vídeo knownPersonId A ID da pessoa que é exclusiva dentro de um modelo de detecção facial personName O nome da pessoa Exemplo: https://test.com/notifyme?projectName=MyProject& id=1234abcd&faceid=12&knownPersonId=CCA84350-89B7-4262-861C-3CAC796542A5&personName=Inigo_Montoya
Use os parâmetros de indexação certos para você
Ao tomar decisões relacionadas ao uso do Azure AI Video Indexer em escala, veja como aproveitá-lo ao máximo com os parâmetros certos para suas necessidades. Pense no seu caso de uso, ao definir diferentes parâmetros você pode economizar dinheiro e agilizar o processo de indexação de seus vídeos. Por exemplo, não defina a predefinição para streaming se você não planeja assistir ao vídeo, e não indexe insights de vídeo se você só precisa de insights de áudio.
Indexação na resolução ideal, não na mais alta
Você pode estar se perguntando, que qualidade de vídeo você precisa para indexar seus vídeos?
Em muitos casos, o desempenho da indexação não tem quase nenhuma diferença entre vídeos em HD (720P) e 4K. No fim, você obterá quase os mesmo insights com a mesma confiança. Quanto maior a qualidade do filme que você carrega, maior o tamanho do arquivo, levando à necessidade de se ter maior poder de computação e tempo para carregar o vídeo.
Por exemplo, para o recurso de detecção facial, uma resolução mais alta pode ajudar em um cenário em que haja muitas rostos pequenos, mas contextualmente importantes. No entanto, isso vem com um aumento quadrático no tempo de execução e um risco aumentado de falsos positivos.
Portanto, recomendamos que você verifique se consegue obter os resultados certos para seu caso de uso e que ele seja testado localmente primeiro. Carregue o mesmo vídeo em 720P e em 4K e compare os insights obtidos.