Respostas para perguntas frequentes sobre criptografia HLS, criptografia proprietária da Alibaba Cloud e criptografia DRM no ApsaraVideo VOD.
Criptografia HLS
O que é o MtsHlsUriToken e como obtê-lo?
O parâmetro MtsHlsUriToken é um parâmetro personalizado. Na criptografia HLS padrão, após a gravação da string de criptografia no fluxo HLS, o endereço de um servidor de descriptografia é adicionado ao manifesto M3U8. Para permitir que apenas usuários específicos acessem o vídeo, o servidor de descriptografia exige um mecanismo de autenticação de identidade. O parâmetro MtsHlsUriToken adiciona uma camada de autenticação ao seu servidor de descriptografia. Em seguida, um parâmetro especial é gerado com base nessa lógica de autenticação e transmitido para a verificação da descriptografia.
Para configurar a criptografia, configure um service de emissão de tokens que gere o MtsHlsUriToken (Etapa 1 em HLS encryption).
Como usar a chave gerada?
A operação GenerateKMSDataKey retorna uma chave de texto cifrado (CiphertextBlob) e uma chave de texto simples (Plaintext). Passe apenas a chave de texto cifrado para o ApsaraVideo VOD, conforme especificado em EncryptConfig: specifies the configurations for HLS encryption em SubmitTranscodeJobs.
Armazene em cache tanto a chave de texto cifrado quanto a chave de texto simples geradas.
Uma chave de service não pode ser excluída ou atualizada após a criação. Ela é usada apenas para gerar chaves de criptografia.
Como passar um token para o service de descriptografia?
Use um nome de domínio do Alibaba Cloud cdn para reprodução. Passe o parâmetro MtsHlsUriToken ao solicitar um endereço M3U8. O sistema reescreve automaticamente o MtsHlsUriToken para o service de descriptografia. Envie a solicitação.
Como verificar se um vídeo criptografado é reproduzido corretamente?
Use a Plataforma de Diagnóstico do Player da Alibaba Cloud para testar a reprodução de M3U8 criptografado com HLS. Insira a URL do M3U8 e o valor do MtsHlsUriToken (se definido) para verificar a descriptografia e a reprodução.
Outras perguntas frequentes
-
Mensagem de erro de API
Se SubmitTranscodeJobs retornar KeyNotFound, entre em contato com o suporte técnico do ApsaraVideo VOD e crie uma chave de service na região necessária, como China (Beijing) ou China (Shanghai). A chave de service é usada para gerar chaves de criptografia.
-
Arquivo não criptografado
Se o arquivo de saída não estiver criptografado, acesse seu modelo de transcodificação e confirme se Video Encryption está ativado e se Alibaba Cloud Proprietary Cryptography está selecionado.
-
Chave personalizada
Strings personalizadas não podem ser usadas como chaves de criptografia. Gere a chave de texto simples chamando GenerateKMSDataKey.
-
Falha na criptografia
Se a criptografia HLS e a transcodificação falharem sem gerar saída, verifique se a chave gerada por GenerateKMSDataKey é do tipo AES_128.
-
Falha na descriptografia
Se um vídeo criptografado com HLS falhar ao descriptografar para reprodução, verifique se o service de descriptografia decodifica em Base64 a chave de texto simples retornada por DecryptKMSDataKey antes de a enviar ao player. Se a chave de texto simples não for decodificada, a descriptografia falhará.
-
Arquivos criptografados duplicados
Se aparecerem arquivos criptografados duplicados, verifique se SubmitTranscodeJobs foi chamado várias vezes. A criptografia HLS e a transcodificação só podem ser iniciadas manualmente.
Criptografia DRM
Erro "Submit transcode job failed" com criptografia DRM
Sintoma: Ao enviar um trabalho de transcodificação com criptografia DRM, o trabalho falha com o código de erro TranscodeJob.SubmitFailed.
Causa:
Trabalhos de transcodificação criptografados com DRM não podem ser acionados a partir de ApsaraVideo VOD console > Media Library > Audio/Video > Media Processing > Transcoding Template Group Processing após o upload de um vídeo.
Solução:
Adicione um grupo de modelos de transcodificação criptografado com DRM a um fluxo de trabalho e use-o para transcodificação. Workflows.
Erro "Can not found user info" ao fazer upload de um certificado DRM
Sintoma: Ao fazer upload de um certificado DRM, a ação falha com o código de erro NotUserInfoExist.
Solução:
Ative um bucket do VOD na região do seu certificado DRM. Enable VOD buckets.
Como solucionar o erro 503 retornado pela reprodução do FairPlay
O FairPlay do navegador Safari retorna o erro 503 ao reproduzir vídeos criptografados com DRM. O navegador Chrome usa o método Widevine para reproduzir o mesmo vídeo normalmente. Siga as etapas abaixo para solucionar o problema:
Verifique o status do certificado FairPlay: Faça login no ApsaraVideo VOD console, acesse Configuration Management> Media Processing Configuration> DRM Certificate Management e verifique se o certificado FairPlay foi enviado e está com o status normal. Se a lista de certificados estiver vazia ou se o certificado tiver expirado, solicite novamente e faça o upload do certificado FairPlay.
Verifique os parâmetros do certificado: Certifique-se de que o ASK e a PassPhrase inseridos ao fazer o upload do certificado sejam consistentes com as informações do certificado de desenvolvedor da Apple. O ASK é fornecido pela Apple, e a PassPhrase é a chave para descriptografar a chave privada, que deve corresponder exatamente às informações no momento da solicitação do certificado.
Diagnosticar solicitação de licença: Abra a ferramenta de desenvolvedor (F12) no navegador Safari, mude para o painel Network, reproduza o vídeo criptografado com DRM, filtre as solicitações de licença e visualize o código de status da resposta e o corpo da resposta. Erros 503 geralmente indicam que o service de licença DRM está temporariamente indisponível ou que a configuração do certificado faz com que o servidor rejeite a solicitação.
Solução de problemas por diferenciação de navegador: O mesmo vídeo é reproduzido no navegador Chrome no modo Widevine, o que indica que não há problemas com a criptografia DRM e a transcodificação. O problema está focado na configuração do certificado FairPlay ou no lado do service de licença da Apple.
Outras perguntas frequentes sobre criptografia
Como verificar se um vídeo está criptografado e qual método de criptografia é usado?
Você pode verificar isso no console ou chamando uma API.
Método 1 (console): Faça login no ApsaraVideo VOD console. No painel de navegação à esquerda, escolha Media Library > Audio/Video. Encontre o vídeo e clique em Manage. Na página de detalhes do vídeo, clique na guia Video URL e verifique a coluna Format. Se o formato for mp4, o vídeo geralmente não está criptografado. Se o formato for m3u8 e a URL de reprodução contiver parâmetros de criptografia, o vídeo usa criptografia HLS.
Método 2 (API): Chame a operação GetPlayInfo e verifique os parâmetros de resposta. O campo Encrypt indica se o vídeo está criptografado (0: não criptografado, 1: criptografado). Se Encrypt for 1, verifique o campo EncryptType para determinar o método de criptografia: AliyunVoDEncryption indica criptografia proprietária da Alibaba Cloud, e HLSEncryption indica criptografia HLS.
Como solucionar um erro de Licença DRM InvalidParameter.ResourceNotFound que ocorre apenas em alguns dispositivos?
Esse erro geralmente ocorre porque o cliente não conseguiu obter ou configurar corretamente o certificado DRM (Licença). Embora a própria Licença seja válida, os dispositivos afetados não concluíram as etapas de configuração. Baixe e configure corretamente o arquivo de Licença conforme exigido pela documentação. Você pode comparar os dispositivos afetados com dispositivos que funcionam normalmente para solucionar o problema.
A criptografia DRM e a criptografia proprietária da Alibaba Cloud podem coexistir para o mesmo recurso de vídeo?
Sim. Fluxos criptografados com DRM e com criptografia proprietária da Alibaba Cloud podem coexistir sob o mesmo videoId. Você não precisa fazer o upload do vídeo novamente para gerar fluxos do outro tipo de criptografia.
Ao reproduzir o vídeo, especifique o tipo de criptografia que corresponde ao fluxo que você deseja reproduzir:
Para reproduzir o fluxo de criptografia proprietária da Alibaba Cloud em um aplicativo, defina
encryptType: 1.Para reproduzir o fluxo criptografado com DRM na web, defina
isDrm: true.
Por que a reprodução na web com um token STS às vezes falha e retorna ao tipo de criptografia incorreto?
Isso pode acontecer quando um vídeo tem um fluxo de transcodificação antigo e um novo. Se GetPlayInfo retornar apenas o novo fluxo e o player não lidar corretamente com o cenário de fluxos mistos, a reprodução pode retornar ao fluxo de criptografia proprietária da Alibaba Cloud e falhar.
Para resolver esse problema, chame DeleteStream e exclua o fluxo de criptografia proprietária do vídeo, mantenha apenas o fluxo criptografado com DRM e tente a reprodução novamente.
Após excluí-lo, o fluxo de vídeo não poderá ser restaurado. Prossiga com cautela.
Por que a reprodução HLS falha ou para de funcionar após fechar o console de desenvolvedor ao usar uma versão mais antiga do Web Player SDK?
Versões mais antigas do ApsaraVideo Player SDK para web (por exemplo, 2.20.0) são incompatíveis com kernels mais recentes do navegador Edge. Essa incompatibilidade pode causar erros de carregamento HLS, ou a reprodução pode parar de funcionar após você fechar o console de desenvolvedor do navegador.
Para resolver esse problema, atualize o ApsaraVideo Player SDK para web para a versão mais recente e certifique-se de ter solicitado uma Licença gratuita para autorizar a reprodução.