Todos os produtos
Search
Central de documentação

ApsaraVideo VOD:Reproduzir um vídeo criptografado

Última atualização: Oct 18, 2026

O ApsaraVideo VOD e o ApsaraVideo Live oferecem suporte a diversos métodos de criptografia de vídeo. Este tópico descreve como usar o ApsaraVideo Player SDK para reproduzir vídeos com criptografia proprietária da Alibaba Cloud, criptografia padrão HLS e criptografia DRM.

Visão geral da criptografia de vídeo

O ApsaraVideo VOD fornece um mecanismo abrangente de segurança de conteúdo que inclui controle de acesso, assinatura de URL, autenticação remota, criptografia de vídeo e download seguro.

A Visão geral aborda todas as políticas de segurança disponíveis. A tabela a seguir compara os três métodos de criptografia de vídeo.

Política de segurança

Método

Benefício

Nível de segurança

Complexidade de implantação

Criptografia de vídeo

Criptografia proprietária da Alibaba Cloud

O ApsaraVideo VOD utiliza um algoritmo de criptografia proprietário para oferecer uma solução integrada de nuvem e dispositivo. Isso garante a segurança dos links de transmissão.

Alto

Relativamente baixa. Basta realizar configurações simples e integrar o ApsaraVideo Player SDK.

Criptografia HTTP Live Streaming (HLS)

A criptografia HLS usa AES-128 para criptografar o conteúdo de vídeo e é compatível com todos os players HLS. No entanto, as chaves estão suscetíveis a roubo.

Alto

Alta. É necessário configurar um serviço de gerenciamento de chaves e um serviço de emissão de tokens. Além disso, você deve garantir a segurança dos links de transmissão.

DRM comercial

Suporte nativo a sistemas DRM comerciais, incluindo Apple FairPlay e Google Widevine. Este método oferece um alto nível de segurança e atende aos requisitos da maioria dos detentores de direitos autorais.

Alto

Alta. A cobrança é baseada no número de chamadas de licença (para DRM de terceiros, consulte os padrões de faturamento aplicáveis). Você só precisa integrar o ApsaraVideo Player SDK.

Compatibilidade do ApsaraVideo Player SDK

Nota
  1. Antes de usar o ApsaraVideo Player SDK for Web para reproduzir vídeos criptografados, verifique a Compatibilidade do navegador e a Compatibilidade de recursos. O ApsaraVideo Player SDK for Web pode reproduzir vídeos com criptografia proprietária da Alibaba Cloud nos principais navegadores móveis. Na tabela a seguir, ✔️ indica suporte e ❌ indica falta de suporte.

  2. Para garantir a compatibilidade, baixe a versão mais recente do ApsaraVideo Player SDK na página de Visão geral do SDK.

  3. Observação: O HLS utiliza o formato M3U8.

Cliente

Método de reprodução

Criptografia proprietária (HLS)

Criptografia baseada em licença (HLS)

Criptografia baseada em licença (MP4)

Criptografia proprietária (FLV ao vivo)

Criptografia HLS

DRM da Alibaba Cloud

DRM de terceiros

Web

Reprodução baseada em UrlSource

❌

❌

❌

❌

✔️

❌

✔️

Reprodução baseada em VidAuth

✔️

❌

❌

❌

✔️

❌

❌

Reprodução baseada em VidSts

✔️

❌

❌

❌

✔️

✔️

❌

Streaming ao vivo baseado em UrlSource

❌

❌

❌

❌

✔️

❌

✔️

Streaming ao vivo baseado em LiveStsSource

✔️

❌

❌

❌

❌

✔️

❌

Nativo (iOS/Android/Flutter/Harmony)

Nativo (iOS/Android/Flutter)

Reprodução baseada em UrlSource

✔️

✔️

Requer ApsaraVideo Player SDK v6.17.0 ou posterior.

✔️

Requer ApsaraVideo Player SDK v6.8.0 ou posterior.

❌

✔️

❌

✔️

Requires ApsaraVideo Player SDK v7.8.0 or later. Not supported on Flutter.

Reprodução baseada em VidAuth

✔️

✔️

❌

❌

✔️

❌

❌

Reprodução baseada em VidSts

✔️

✔️

❌

❌

✔️

✔️

Not supported on Flutter.

❌

Streaming ao vivo baseado em UrlSource

❌

❌

❌

❌

✔️

❌

✔️

Requires ApsaraVideo Player SDK v7.8.0 or later. Not supported on Flutter.

Streaming ao vivo baseado em LiveStsSource

✔️

✔️

❌

✔️

❌

✔️

Not supported on Flutter.

❌

Visão geral da criptografia

Criptografia de vídeo da Alibaba Cloud (criptografia privada)

A Criptografia de Vídeo da Alibaba Cloud (Criptografia Privada) criptografa os dados de vídeo para que permaneçam protegidos mesmo após o download, impedindo a redistribuição não autorizada e hotlinking. Consulte a Criptografia de Vídeo da Alibaba Cloud (Criptografia Privada).

O ApsaraVideo Player SDK gerencia a descriptografia e as interações com o servidor. Você só precisa configurar a transcodificação criptografada e integrar o SDK.

Importante

Configurar criptografia privada

Para configurar a Criptografia de Vídeo da Alibaba Cloud, siga o Guia de instruções.

Limitações

A Criptografia de Vídeo da Alibaba Cloud (Criptografia Privada) suporta criptografia para vídeos nos formatos HLS, FLV e MP4. A reprodução desses vídeos é possível apenas com o Alibaba Cloud Player. Clientes Web suportam apenas reprodução HLS. Já os clientes nativos permitem a reprodução em todos esses formatos.

Criptografia de vídeo da Alibaba Cloud (criptografia privada baseada em licença)

A Criptografia de Vídeo da Alibaba Cloud (Criptografia Privada Baseada em Licença) aprimora a Criptografia Privada e permite a reprodução diretamente a partir da URL do vídeo criptografado, melhorando a velocidade de inicialização. Esta solução é ideal para cenários de vídeos curtos e minisséries.

Importante
  • A Criptografia de Vídeo da Alibaba Cloud (Criptografia Privada Baseada em Licença) é gratuita, mas a criptografia exige transcodificação de mídia, que incorre em taxas. Consulte o Faturamento de transcodificação de mídia.

Configurar criptografia privada baseada em licença

Para configurar a Criptografia de Vídeo da Alibaba Cloud, siga o Guia de instruções.

Limitações

A Criptografia de Vídeo da Alibaba Cloud (Criptografia Privada Baseada em Licença) suporta criptografia para vídeos nos formatos HLS e MP4. A reprodução desses vídeos criptografados é possível apenas com o Alibaba Cloud Player.

Criptografia padrão HLS

A Criptografia Padrão HLS utiliza AES-128 para criptografar o conteúdo de vídeo. Ela é compatível com todos os players HLS, incluindo soluções próprias e open-source, porém apresenta implementação mais complexa e menor segurança em comparação aos métodos proprietários. Consulte a Criptografia Padrão HLS.

Importante

A Criptografia Padrão HLS é gratuita, mas a criptografia exige transcodificação de mídia, que incorre em taxas. Consulte o Faturamento de transcodificação de mídia.

Configurar Criptografia Padrão HLS

Para configurar a Criptografia Padrão HLS, siga o Guia de integração.

Limitações

A Criptografia Padrão HLS é compatível com diversos players HLS. Este tópico utiliza o Alibaba Cloud Player como exemplo. O Alibaba Cloud Player suporta passagem de token — o CDN ajusta dinamicamente o URI de descriptografia no arquivo de manifesto HLS, adicionando um token de usuário que sua aplicação pode validar.

Criptografia DRM da Alibaba Cloud

O ApsaraVideo VOD oferece suporte à criptografia Digital Rights Management (DRM) padrão do setor com os esquemas Widevine e FairPlay, fornecendo uma solução completa para o gerenciamento de vídeos protegidos por direitos autorais. Consulte a Criptografia DRM.

Importante

A criptografia DRM é aplicada durante a transcodificação (taxas de transcodificação de mídia se aplicam). Taxas de licença DRM são cobradas quando um cliente solicita uma licença de reprodução. Consulte o Faturamento de DRM.

Configurar criptografia DRM

Ative este recurso nos consoles do ApsaraVideo Live e ApsaraVideo VOD: Configurar criptografia DRM para ApsaraVideo Live e Configurar criptografia DRM para ApsaraVideo VOD.

Limitações

Atualmente, a reprodução de vídeos criptografados com DRM é possível apenas através do Alibaba Cloud Player.

Criptografia DRM de terceiros

O ApsaraVideo VOD suporta criptografia DRM de terceiros, permitindo um fluxo de trabalho ponta a ponta desde a produção de vídeo no ApsaraVideo for Media Processing, passando pela criptografia DRM de terceiros, até a reprodução com o ApsaraVideo Player SDK.

Importante

A criptografia DRM é aplicada durante a transcodificação (taxas de transcodificação de mídia se aplicam). Taxas de licença DRM são cobradas quando um cliente solicita uma licença de reprodução. Consulte o Faturamento de DRM

.

Configurar criptografia DRM

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Ative este recurso no console do ApsaraVideo for Media Processing. Consulte Empacotamento ao Vivo e Empacotamento VOD.

Cliente Web

Nota
  • Antes de utilizar o ApsaraVideo Player SDK for Web, verifique a compatibilidade do navegador para a criptografia proprietária da Alibaba Cloud.

    • O modo H5 oferece suporte tanto a navegadores desktop quanto móveis. Consulte o Suporte a recursos.

  • Por motivos de segurança, a criptografia proprietária da Alibaba Cloud não permite depuração com vídeos criptografados reais.

Procedimento

Incorpore o player web à sua página.

  1. Siga o guia de Início rápido para importar o ApsaraVideo Player SDK for Web em sua página.

  2. Selecione um método de criptografia e inicie a reprodução.

    O código abaixo demonstra como incorporar o player.

Criptografia proprietária da Alibaba Cloud

VOD (VidAuth)

Para reproduzir um vídeo com criptografia proprietária da Alibaba Cloud usando o método VidAuth do ApsaraVideo VOD, é obrigatório passar também o parâmetro encryptType: 1 para habilitar a criptografia proprietária. Isso não é necessário para reproduzir vídeos padrão.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Live (LiveStsSource)

Para reproduzir uma transmissão ao vivo que utiliza criptografia proprietária com o método LiveStsSource, forneça a URL da transmissão e uma credencial temporária STS. Para obter informações sobre como gerar a credencial, consulte Obter um token STS.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)
Nota

A criptografia privada depende do suporte do navegador ao MSE. Para navegadores sem suporte a MSE, ative o parâmetro encryptionFallback: true para realizar downgrade automático para reprodução criptografada padrão. Para utilizar essa função, gere antecipadamente um vídeo transcodificado com criptografia padrão para o conteúdo desejado.

Nota
  • Para reproduzir vídeos sob demanda criptografados em navegadores no iOS anterior à versão 17,1, implante um script adicional de plugin do player. Siga estas etapas:

    Em versões do iOS anteriores a 17,1, a criptografia proprietária requer um plugin baseado na tecnologia Service Worker. As políticas de segurança do navegador restringem service workers a scripts de mesma origem, portanto, implante o plugin no mesmo domínio do seu site.

    1. Baixe o script: https://g.alicdn.com/apsara-media-box/imp-web-player/<version_number>/aliplayer-worker-min.js

    2. Implante o script: Por exemplo, se o site de reprodução de vídeo for https://www.aliyun.com/a/b.html, implante o script em https://www.aliyun.com/a/aliplayer-worker-min.js, que fica no mesmo diretório da página web.

    3. Forneça esta URL ao inicializar o player:

      // The player
      let urlSource: UrlSource = new UrlSource()
      // The playback URL of a live or on-demand stream with HLS standard encryption.
      urlSource.setUri("The playback URL")
      aliPlayer.setUrlDataSource(urlSource)

    Observação: Certifique-se de que a versão do player corresponda exatamente à versão do plugin.

  • Se a página web for executada dentro de um aplicativo iOS personalizado (como uni-app), adicione seu domínio a WKAppBoundDomains no arquivo Info.plist do aplicativo para habilitar o Service Worker no WKWebView. Consulte Domínios Vinculados ao Aplicativo.

Criptografia padrão HLS

VOD (VidAuth)

Ao reproduzir um vídeo com criptografia padrão HLS usando o método VidAuth do ApsaraVideo VOD, caso o vídeo possua outros fluxos não criptografados com HLS padrão ou fluxos transcodificados padrão, defina o parâmetro EncryptType como HLSEncryption para filtrar e reproduzir apenas o fluxo com criptografia padrão HLS.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VOD (VidSts)

Ao reproduzir um vídeo com criptografia padrão HLS usando o método VidSts do ApsaraVideo VOD, se o vídeo também tiver outros fluxos não criptografados com HLS padrão ou fluxos transcodificados padrão, defina o parâmetro EncryptType como HLSEncryption para filtrar e reproduzir apenas o fluxo com criptografia padrão HLS.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

UrlSource

Ao reproduzir um fluxo ao vivo ou sob demanda que utiliza criptografia padrão HLS com o método UrlSource, nenhum parâmetro adicional é necessário. A configuração é idêntica à reprodução de um vídeo padrão.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia DRM

VOD (VidSts)

Para reproduzir um vídeo criptografado com DRM usando o método VidSts do ApsaraVideo VOD, é obrigatório passar também o parâmetro isDrm: true .

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Live (LiveStsSource)

Para reproduzir uma transmissão ao vivo criptografada com DRM usando o método LiveStsSource, forneça a URL da transmissão e uma credencial temporária STS. Para obter informações sobre como gerar uma credencial temporária STS, consulte Obter um token STS.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Android

Procedimento

Integre o Alibaba Cloud Player SDK for Android ao seu aplicativo. As seções a seguir apresentam as etapas e os códigos de exemplo necessários.

  1. Integre o Alibaba Cloud Player SDK for Android.

    Integrar o SDK.

  2. Crie um player para reproduzir um vídeo.

    Siga as instruções em Recursos básicos. Na Etapa 3. Criar uma DataSource, escolha um dos métodos abaixo conforme sua necessidade.

Alibaba Cloud Video Encryption (criptografia privada)

Notas de uso

Vídeos HLS criptografados com o Alibaba Cloud Video Encryption (criptografia privada) podem ser reproduzidos via URL após a transcodificação. Antes de transcodificar, vincule uma licença na mesma conta (Gerenciar Licença) e defina o parâmetro EncryptType ao criar um grupo de modelos de transcodificação. Exemplo:

Importante

Após criar o modelo, não o modifique nem salve no console. Caso contrário, o método de criptografia será sobrescrito.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidAuth

Ao reproduzir um vídeo HLS ou MP4 com criptografia privada usando o VidAuth do ApsaraVideo VOD, caso o vídeo também contenha streams com outros tipos de criptografia ou streams transcodificados sem criptografia, defina o tipo de criptografia do vídeo como AliyunVoDEncryption para reproduzir apenas o stream com criptografia privada.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts

Ao reproduzir um vídeo HLS ou MP4 com criptografia privada usando o VidSts do ApsaraVideo VOD, caso o vídeo também contenha streams com outros tipos de criptografia ou streams transcodificados sem criptografia, defina o tipo de criptografia do vídeo como AliyunVoDEncryption para reproduzir apenas o stream com criptografia privada.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

LiveSts

Para reproduzir um stream ao vivo com criptografia privada nos formatos HLS ou FLV usando o objeto LiveSts do ApsaraVideo Live, é necessário fornecer a URL e uma credencial STS, além de definir o tipo de criptografia do vídeo como AliEncryption. O código abaixo serve de exemplo:

  1. Crie uma fonte de dados.

    É obrigatório passar LiveSts como fonte de reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
  2. Monitore a invalidação do STS.

    Durante a reprodução de conteúdo ao vivo criptografado, a chave de criptografia pode ser rotacionada. Quando isso ocorre, o player utiliza a credencial STS para solicitar a nova chave. Monitore a validade da credencial STS, pois uma credencial inválida interrompe a reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
    Nota

    Após obter uma nova credencial STS com sucesso, chame o método updateLiveStsInfo para atualizá-la. Se não for possível obter uma nova credencial, recomenda-se parar a reprodução. Sem a atualização da credencial STS, o player continuará usando a antiga para solicitar chaves mesmo após a expiração. Caso a credencial STS se torne inválida, isso pode causar falha na reprodução ou corrupção na saída de vídeo.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)

Alibaba Cloud Video Encryption (criptografia privada baseada em licença)

Notas de uso

Vídeos HLS criptografados com o Alibaba Cloud Video Encryption (criptografia privada baseada em licença) podem ser reproduzidos via URL após a transcodificação. Antes de transcodificar, vincule uma licença na mesma conta (Gerenciar Licença) e defina o parâmetro EncryptType ao criar um grupo de modelos de transcodificação. Exemplo:

Importante

Após criar o modelo, não o modifique nem salve no console. Caso contrário, o método de criptografia será sobrescrito.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

UrlSource

Nota

Apenas o Alibaba Cloud Player SDK for Android V6.8.0 e versões posteriores suportam a reprodução de vídeos MP4 com criptografia privada baseada em licença usando UrlSource. A versão V6.17.0 e posteriores suportam vídeos HLS com criptografia privada baseada em licença (taxa de bits única e adaptativa).

Para reproduzir um vídeo com criptografia privada baseada em licença nos formatos HLS ou MP4 usando UrlSource, chame a operação GetPlayInfo para obter a URL de reprodução do vídeo. Para uma URL de MP4, anexe etavirp_nuyila=1 à URL antes de passá-la ao player. Esse parâmetro pode ser colocado em qualquer parte da query string. Para HLS, utilize a URL original do vídeo. Configure o SDK do player como faria para um vídeo padrão; nenhum parâmetro extra é necessário.

Exemplo de URL de reprodução 1: https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

Exemplo de URL de reprodução 2: https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&etavirp_nuyila=1

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia HLS padrão

VidAuth

Ao reproduzir um vídeo que utiliza criptografia HLS padrão por meio do VidAuth do ApsaraVideo VOD, caso o vídeo também contenha outros streams criptografados com HLS não padrão ou streams transcodificados padrão, defina o tipo de criptografia como HLSEncryption para reproduzir apenas o stream com criptografia HLS padrão. O código abaixo serve de exemplo:

Importante

Se você ativou a opção Reescrever arquivos M3U8 de criptografia HLS padrão, chame setMtsHlsUriToken para definir o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts

Ao reproduzir um vídeo que utiliza criptografia HLS padrão por meio do VidSts do ApsaraVideo VOD, caso o vídeo também contenha outros streams criptografados com HLS não padrão ou streams transcodificados padrão, defina o tipo de criptografia como HLSEncryption para reproduzir apenas o stream com criptografia HLS padrão. O código abaixo serve de exemplo:

Importante

Se você ativou a opção Reescrever arquivos M3U8 de criptografia HLS padrão, chame setMtsHlsUriToken para definir o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

UrlSource

Ao reproduzir um stream que utiliza criptografia HLS padrão com UrlSource, configure o SDK do player da mesma forma que faria para um vídeo comum.

Recomendamos o uso do ApsaraVideo VOD. Chame a operação GetPlayInfo para obter a URL de reprodução do vídeo e passe-a para o player.

Importante

Se você ativou a opção Reescrever arquivos M3U8 de criptografia HLS padrão, é obrigatório anexar MtsHlsUriToken=<token> à URL do vídeo antes de passá-la ao player. Esse parâmetro pode ser colocado em qualquer parte da query string.

Exemplo de URL de reprodução original: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8.

Exemplo de URL para passar ao player: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=&lt;token&gt;.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia DRM da Alibaba Cloud

Nota

No Android, recomendamos o uso de SurfaceView para garantir a reprodução adequada de vídeos com alto nível de segurança.

VidSts

Primeiro, configure a criptografia DRM conforme descrito em Configurar criptografia DRM para o ApsaraVideo VOD. Ao reproduzir um vídeo criptografado com DRM usando o VidSts do ApsaraVideo VOD, a configuração é idêntica à de um vídeo não criptografado. Nenhum parâmetro adicional é necessário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

LiveSts

Primeiro, configure a criptografia DRM conforme descrito em Configurar criptografia DRM para o ApsaraVideo Live. Para reproduzir um stream ao vivo criptografado com DRM usando o objeto LiveSts, é necessário fornecer a URL e uma credencial STS, além de definir o tipo de criptografia do vídeo como WideVine_FairPlay. O código abaixo serve de exemplo:

  1. Crie uma fonte de dados.

    É obrigatório passar LiveSts como fonte de reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
  2. Monitore a invalidação do STS.

    Durante a reprodução de conteúdo ao vivo criptografado, a chave de criptografia pode ser rotacionada. Quando isso ocorre, o player utiliza a credencial STS para solicitar a nova chave. Monitore a validade da credencial STS, pois uma credencial inválida interrompe a reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
    Nota

    Após obter uma nova credencial STS com sucesso, chame o método updateLiveStsInfo para atualizá-la. Se não for possível obter uma nova credencial, recomenda-se parar a reprodução. Sem a atualização da credencial STS, o player continuará usando a antiga para solicitar chaves mesmo após a expiração. Caso a credencial STS se torne inválida, isso pode causar falha na reprodução ou corrupção na saída de vídeo.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)

Criptografia DRM de terceiros

Nota

Este recurso requer o SDK do player V7.8.0 ou superior.

UrlSource

Nota
  • Este recurso suporta apenas o esquema DRM Widevine para os protocolos HLS e DASH.

  • // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)

Primeiramente, consulte Empacotamento VOD para configurar a criptografia DRM. Ao reproduzir um vídeo criptografado com DRM usando o método UrlSource, além das configurações para um vídeo normal, implemente a interface DrmCallback para obter as informações de chave do vídeo.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

iOS

Procedimento

Integre o Player SDK for iOS ao seu aplicativo. Os passos e exemplos de código são apresentados a seguir:

  1. Integre o Player SDK for iOS.

    Integrate SDK.

  2. Crie um player para carregar e reproduzir vídeos.

    Siga as instruções em Basic Features. Na Step 3. Create a data source, utilize um dos métodos abaixo conforme sua necessidade.

Criptografia privada da Alibaba Cloud

VidAuth for VOD

Ao reproduzir um vídeo HLS ou MP4 com criptografia privada usando o método VidAuth do ApsaraVideo VOD, caso o vídeo também possua streams não criptografados ou transcodificados padrão, defina o tipo de criptografia como AliyunVoDEncryption para reproduzir apenas o stream com criptografia privada.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts for VOD

Ao reproduzir um vídeo HLS ou MP4 com criptografia privada usando o método VidSts do ApsaraVideo VOD, caso o vídeo também possua streams não criptografados ou transcodificados padrão, defina o tipo de criptografia como AliyunVoDEncryption para reproduzir apenas o stream com criptografia privada.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

LiveStsSource for live

Para reproduzir um stream ao vivo com criptografia privada nos formatos HLS ou FLV usando o método LiveStsSource, forneça a URL do stream e uma credencial STS, e defina o tipo de criptografia de vídeo como ENCRYPTION_TYPE_ALIVODENCRYPTION. O código abaixo serve como exemplo:

  1. Crie uma fonte de dados.

    É necessário passar AVPLiveStsSource como fonte de reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
  2. Monitore a invalidação da credencial STS.

    Durante a reprodução ao vivo criptografada, a chave de criptografia pode ser rotacionada. Quando isso ocorre, o player utiliza a credencial STS para solicitar a nova chave. Monitore a validade da credencial, pois uma credencial inválida interrompe a reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
    Nota

    Após obter uma nova credencial STS, chame o método updateLiveStsInfo para atualizá-la. Se a tentativa de obter uma nova credencial falhar, recomenda-se parar a reprodução. Caso a credencial STS não seja atualizada, o player tentará usar a credencial expirada para solicitar a chave, o que pode causar artefatos na tela ou falha na reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)

Criptografia privada baseada em licença da Alibaba Cloud

UrlSource for VOD

Nota

Apenas o Player SDK for iOS V6.8.0 e versões posteriores suportam a reprodução de vídeos MP4 com criptografia privada baseada em licença via UrlSource. A versão V6.17.0 e posteriores suporta vídeos HLS com criptografia privada baseada em licença, tanto com bitrate único quanto adaptativo.

Para reproduzir um vídeo HLS ou MP4 com criptografia privada baseada em licença usando o método UrlSource, chame a operação GetPlayInfo para obter a URL de reprodução do vídeo. Após obter a URL do vídeo, anexe o parâmetro etavirp_nuyila=1 à URL antes de passá-la ao player. Esse parâmetro pode ser colocado em qualquer parte da query string. Ele é obrigatório apenas para vídeos MP4. Para vídeos HLS, utilize a URL original do vídeo. A configuração do player é idêntica à de um vídeo padrão, sem necessidade de parâmetros adicionais.

Exemplo de URL de reprodução 1: https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

Exemplo de URL de reprodução 2: https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&amp;etavirp_nuyila=1

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia padrão HLS

VidAuth for VOD

Ao reproduzir um vídeo criptografado com a criptografia padrão HLS usando o método VidAuth do ApsaraVideo VOD, caso o vídeo também possua streams não criptografados ou transcodificados padrão, defina o tipo de criptografia como HLSEncryption para reproduzir apenas o stream com criptografia padrão HLS. O código abaixo serve como exemplo:

Importante

Se você ativou a M3U8 standard encryption rewriting, chame setHlsUriToken para definir o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts for VOD

Ao reproduzir um vídeo criptografado com a criptografia padrão HLS usando o método VidSts do ApsaraVideo VOD, caso o vídeo também possua streams não criptografados ou transcodificados padrão, defina o tipo de criptografia como HLSEncryption para reproduzir apenas o stream com criptografia padrão HLS. O código abaixo serve como exemplo:

Importante

Se você ativou a M3U8 standard encryption rewriting, chame setHlsUriToken para definir o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

UrlSource

Ao utilizar o método UrlSource para reproduzir um stream com criptografia padrão HLS, a configuração do player é idêntica à de um vídeo padrão, sem necessidade de parâmetros adicionais.

Recomenda-se o uso do ApsaraVideo VOD. Chame a operação GetPlayInfo para obter a URL de reprodução do vídeo e passe-a ao player.

Importante

Se você ativou a M3U8 standard encryption rewriting, anexe MtsHlsUriToken=<token> à URL do vídeo antes de passá-la ao player. Esse parâmetro pode ser colocado em qualquer parte da query string.

Exemplo de URL de reprodução original: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8.

Exemplo de URL a ser inserida no player: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=&lt;token&gt;.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia DRM da Alibaba Cloud

Nota

Na plataforma iOS, faça uma chamada global única ao método setFairPlayCertID em AliPlayerGlobalSettings antes de executar [self.player prepare] para definir o ID do certificado. Obtenha o ID do certificado em ApsaraVideo VOD console > Configuration Management > Media Processing Configuration > DRM Certificate Management.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts for VOD

Primeiro, consulte Configure DRM Encryption for VOD para configurar a criptografia DRM. Ao reproduzir um vídeo criptografado com DRM usando o método VidSts do ApsaraVideo VOD, a configuração é idêntica à de um vídeo padrão. Nenhum parâmetro adicional é necessário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

LiveStsSource for live

Primeiro, consulte Configure DRM Encryption for Live Streaming para configurar a criptografia DRM. Para reproduzir um stream ao vivo criptografado com DRM usando o método LiveStsSource, forneça a URL do stream e uma credencial STS, e defina o tipo de criptografia de vídeo como ENCRYPTION_TYPE_FAIRPLAY。 O código abaixo serve como exemplo:

  1. Crie uma fonte de dados.

    É necessário passar AVPLiveStsSource como fonte de reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
  2. Monitore a invalidação da credencial STS.

    Durante a reprodução ao vivo criptografada, a chave de criptografia pode ser rotacionada. Quando isso ocorre, o player utiliza a credencial STS para solicitar a nova chave. Monitore a validade da credencial, pois uma credencial inválida interrompe a reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)
    Nota

    Após obter uma nova credencial STS, chame o método updateLiveStsInfo para atualizá-la. Se a tentativa de obter uma nova credencial falhar, recomenda-se parar a reprodução. Caso a credencial STS não seja atualizada, o player tentará usar a credencial expirada para solicitar a chave, o que pode causar artefatos na tela ou falha na reprodução.

    // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)

Criptografia DRM de terceiros

Nota
  • Este recurso requer o Player SDK V7.8.0 ou posterior.

  • Utilize o AppleAVPlayer para reproduzir vídeos criptografados com FairPlay. Antes de iniciar a reprodução, chame [self.player setPreferPlayerName:@"AppleAVPlayer"] para alternar o núcleo do player. Ao reproduzir vídeos sem criptografia DRM, chame [self.player setPreferPlayerName:@""] para restaurar o núcleo padrão.

UrlSource for FairPlay

Nota
  • Apenas o esquema FairPlay sobre o protocolo HLS é suportado.

  • // The player
    let urlSource: UrlSource = new UrlSource()
    // The playback URL of a live or on-demand stream with HLS standard encryption.
    urlSource.setUri("The playback URL")
    aliPlayer.setUrlDataSource(urlSource)

Primeiro, consulte Live Packaging para configurar a criptografia DRM. Ao reproduzir um vídeo criptografado com DRM usando o método UrlSource, além de utilizar a mesma configuração de um vídeo comum, implemente a interface AVPDrmDelegate para obter o certificado FairPlay e a chave do vídeo.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Cliente Flutter

Nota

O cliente Flutter não suporta criptografia DRM.

Procedimento

Integre o player Flutter ao seu aplicativo. Os passos e exemplos de código são apresentados a seguir:

  1. Integre o Alibaba Cloud Player SDK for Flutter.

    Integrate SDK.

  2. Crie um player para reproduzir vídeos.

    Siga as instruções em Basic Features. Na Step 3. Create a play source, selecione um dos métodos abaixo.

Criptografia de Vídeo da Alibaba Cloud (criptografia privada)

VidAuth

Ao reproduzir um vídeo HLS ou MP4 com criptografia privada usando o método VidAuth do ApsaraVideo for VOD, caso o vídeo também contenha streams não criptografados ou transcodificados padrão, defina o tipo de criptografia como AliyunVoDEncryption para reproduzir apenas o stream com criptografia privada.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts

Ao reproduzir um vídeo HLS ou MP4 com criptografia privada usando o método VidSts do ApsaraVideo for VOD, caso o vídeo também contenha streams não criptografados ou transcodificados padrão, defina o tipo de criptografia como AliyunVoDEncryption para reproduzir apenas o stream com criptografia privada.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia privada baseada em licença

UrlSource

Nota

O Player SDK para Flutter suporta criptografia privada baseada em licença com UrlSource para vídeos MP4 a partir da versão v6.8.0, e para vídeos HLS (bitrate único e adaptativo) a partir da versão v6.17.0.

Ao reproduzir um vídeo nos formatos HLS ou MP4 criptografado com criptografia privada baseada em licença usando reprodução via UrlSource, chame a operação Obtain audio or video playback URL para obter a URL de reprodução. Anexe etavirp_nuyila=1 à URL obtida antes de passá-la ao player. (Esse parâmetro é obrigatório apenas para arquivos MP4. Para arquivos HLS, utilize diretamente a URL original do vídeo.) A configuração do Player SDK é idêntica à de um vídeo padrão, sem necessidade de parâmetros adicionais.

Exemplo de URL de reprodução 1: https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

Exemplo de URL de reprodução 2: https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&amp;etavirp_nuyila=1

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia padrão HLS

VidAuth

Ao reproduzir um vídeo com criptografia padrão HLS usando o método VidAuth do ApsaraVideo for VOD, caso o vídeo também contenha streams com outros tipos de criptografia ou streams transcodificados não criptografados, defina o tipo de criptografia como HLSEncryption para reproduzir apenas o stream com criptografia padrão HLS. O código abaixo serve como exemplo:

Importante

Se a M3U8 Standard Encryption Rewrite estiver ativada, chame setHlsUriToken para passar o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts

Ao reproduzir um vídeo com criptografia padrão HLS usando o método VidSts do ApsaraVideo for VOD, caso o vídeo também contenha streams com outros tipos de criptografia ou streams transcodificados não criptografados, defina o tipo de criptografia como HLSEncryption para reproduzir apenas o stream com criptografia padrão HLS. O código abaixo serve como exemplo:

Importante

Se a M3U8 Standard Encryption Rewrite estiver ativada, chame setHlsUriToken para passar o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

UrlSource

Ao utilizar o método UrlSource para reproduzir um stream ao vivo ou sob demanda com criptografia padrão HLS, a configuração do Player SDK é idêntica à de um vídeo padrão.

Para obter a URL de reprodução, recomenda-se chamar a operação GetPlayInfo no ApsaraVideo for VOD.

Importante

Após ativar a M3U8 Standard Encryption Rewrite, anexe o parâmetro MtsHlsUriToken=<token> à URL de reprodução antes de passá-la ao player. Esse parâmetro pode ser colocado em qualquer parte da query string da URL.

Exemplo de URL de reprodução original: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8.

Exemplo de URL a ser passada ao player: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=&lt;token&gt;

.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)
// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts (HLS/MP4)

Na reprodução de vídeos HLS ou MP4 com criptografia proprietária do ApsaraVideo VOD via método VidSts, se houver outros tipos de streams criptografados ou streams transcodificados padrão no mesmo vídeo, configure o tipo de criptografia como AliyunVoDEncryption para filtrar e reproduzir exclusivamente o stream com criptografia proprietária.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

LiveStsSource (HLS/FLV)

Para reproduzir um stream ao vivo HLS ou FLV com criptografia proprietária usando o método LiveStsSource, forneça a URL de reprodução e as credenciais STS, definindo o tipo de criptografia de vídeo como LiveEncryptionType.AliEncryption.

É necessário passar LiveSts como source de dados.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia proprietária baseada em licença

UrlSource (HLS/MP4)

Ao utilizar a reprodução baseada em UrlSource para um vídeo HLS ou MP4 protegido por criptografia privada baseada em licença, chame a API Obtain audio/video playback URL para obter a URL de reprodução. Adicione obrigatoriamente etavirp_nuyila=1 à URL antes de passá-la ao player. Esse parâmetro é necessário apenas para vídeos MP4; para vídeos HLS, utilize diretamente a URL original do vídeo. A configuração do ApsaraVideo Player SDK segue o mesmo padrão da reprodução de vídeos comuns, sem necessidade de parâmetros adicionais.

Exemplo de URL de reprodução 1: https://example.aliyundoc.com/test.mp4?etavirp_nuyila=1

Exemplo de URL de reprodução 2: https://example.aliyundoc.com/test.mp4?auth_key=xxxxx&amp;etavirp_nuyila=1

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Criptografia padrão HLS

VidAuth

Ao reproduzir um vídeo com criptografia padrão HLS do ApsaraVideo VOD utilizando o método VidAuth, caso o vídeo possua outros tipos de streams criptografados ou streams transcodificados padrão, defina o tipo de criptografia como HLSEncryption para filtrar e reproduzir somente o stream com criptografia padrão HLS. O exemplo de código abaixo demonstra essa configuração:

Importante

Após ativar a M3U8 Standard Encryption Rewrite, chame setMtsHlsUriToken para definir o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

VidSts

Para reproduzir um vídeo com criptografia padrão HLS do ApsaraVideo VOD através do método VidSts, se o vídeo incluir outros tipos de streams criptografados ou streams transcodificados padrão, configure o tipo de criptografia como HLSEncryption para garantir a reprodução exclusiva do stream com criptografia padrão HLS. Veja o exemplo de código a seguir:

Importante

Se você ativar a M3U8 Standard Encryption Rewrite, será necessário chamar setMtsHlsUriToken para configurar o token de usuário.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

UrlSource

Na reprodução de streams ao vivo ou sob demanda com criptografia padrão HLS usando UrlSource, a configuração do player SDK permanece idêntica à de vídeos comuns, sem exigir parâmetros extras.

Para vídeos hospedados no ApsaraVideo VOD, utilize a operação GetPlayInfo para recuperar a URL de reprodução.

Importante

Caso tenha ativado o recurso M3U8 Standard Encryption Rewrite, adicione obrigatoriamente MtsHlsUriToken=<token> à URL de reprodução antes de fornecê-la ao player. A posição desse parâmetro na query string é irrelevante.

Exemplo de URL de reprodução original: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8.

Exemplo de URL do player: https://demo.aliyundoc.com/encrypt-stream****-hd.m3u8?MtsHlsUriToken=&lt;token&gt;.

// The player
let urlSource: UrlSource = new UrlSource()
// The playback URL of a live or on-demand stream with HLS standard encryption.
urlSource.setUri("The playback URL")
aliPlayer.setUrlDataSource(urlSource)

Perguntas frequentes

Confira problemas comuns e respectivas soluções em: Video Encryption FAQ.

Documentos relacionados