Todos os produtos
Search
Central de documentação

ApsaraVideo VOD:ApsaraVideo Player SDK FAQ

Última atualização: Jun 27, 2026

Este tópico responde às perguntas mais comuns sobre o uso do ApsaraVideo Player SDK em diferentes plataformas.

RTMP ou HTTP-FLV para transmissão ao vivo padrão

Recomenda-se o uso de HTTP-FLV:

  1. O console do ApsaraVideo Live gera URLs RTMP e HTTP-FLV com dados de fluxo idênticos. Apenas o protocolo de transporte difere.

  2. CDNs, operadoras e dispositivos de rede otimizam amplamente o protocolo HTTP, e as portas 80/443 costumam constar na lista de permissões. Firewalls podem bloquear a porta 1935 do RTMP e causar falhas na reprodução. O HTTP-FLV oferece maior estabilidade, menos buffering e menor latência em redes complexas.

Falhas na reprodução

Solução de problemas de falhas na reprodução de VOD

Verifique as mensagens de erro do player e as requisições de rede para diagnosticar falhas. Os problemas podem decorrer de codificação do fluxo, endpoint de rede ou CDN, incompatibilidade de formatos ou configurações do bucket. Causas comuns incluem:

  • Pagamentos em atraso: Verifique o saldo da sua conta. Contas com saldo pendente têm a reprodução de vídeo desativada.

  • Problema de rede: O player retorna o código de erro 4400. Esse código indica impossibilidade de carregar o recurso devido a problemas no servidor ou na rede. Verifique se o certificado SSL está configurado e válido.

  • Problemas de formato: O formato do vídeo é incompatível com o player. Consulte os formatos suportados em Recursos do Player SDK.

    Nota

    A reprodução de arquivos M3U8 com autenticação exige um nome de domínio personalizado. Adicionar um nome de domínio acelerado.

  • Problemas no bucket: O bucket é inválido ou a autenticação do bucket privado expirou. Desative a autenticação do bucket e defina a permissão como public-read.

  • Problemas de cross-domain: A reprodução falha se a região do nome de domínio acelerado for diferente da região de reprodução do vídeo. Crie um novo nome de domínio acelerado ou altere a região do domínio existente.

Erros ao reproduzir vídeos M3U8 locais

Um arquivo M3U8 referencia segmentos de fluxo de transporte (TS). Para reprodução local, todos os segmentos devem existir na máquina local nos caminhos especificados no arquivo M3U8. Não há suporte para URLs remotas dentro de um arquivo M3U8 local.

O arquivo de índice M3U8 e seus arquivos de segmento .ts correspondentes, como 000000.ts e 000001.ts, devem estar no mesmo diretório.

Os arquivos M3U8 locais devem seguir essa estrutura de diretórios.

A reprodução falha quando compartilhada externamente

Siga estas etapas para solucionar o problema:

  1. Verifique se o vídeo ainda existe no ApsaraVideo VOD.

  2. Confira se há um nome de domínio acelerado adicionado.

    • Se nenhum nome de domínio acelerado tiver sido adicionado: Verifique as permissões do bucket de armazenamento. Se o bucket for privado, a reprodução exigirá autenticação. É possível desativar a autenticação e definir o bucket como public-read, mas isso representa um risco de segurança.

    • Se um nome de domínio acelerado tiver sido adicionado: Verifique se a autenticação está ativada. Em caso afirmativo, estenda o período de validade ou desative-a. Desativar a autenticação representa um risco de segurança.

Exceções de reprodução

Sem som durante a reprodução

O ApsaraVideo Player SDK é otimizado para serviços da Alibaba Cloud. URLs de reprodução de outras fontes podem causar problemas, como ausência de áudio. Verifique a fonte de reprodução.

Início lento do vídeo

  • Se um vídeo MP4 demorar para iniciar, o átomo moov (índice de áudio/vídeo) pode estar localizado após o átomo mdat (dados de áudio/vídeo). Transcodifique o vídeo para mover o moov antes do mdat e acelerar o início.

    • Modelos de transcodificação recomendados.

    • Para verificar a posição do átomo moov, execute o seguinte comando:

      # The source video URL can be a local file path or an online URL, for example, http://pla****.alicdn.com/video/aliyunmedia.mp4
      ffmpeg -v trace -i "source_video_url" 2>&1 | grep -e type:\'mdat\' -e type:\'moov\'

      Em cenários normais, o átomo moov aparece antes do átomo mdat, indicando otimização faststart. O exemplo de saída é mostrado abaixo.

      Em cenários anormais, o átomo moov aparece após o átomo mdat.

  • No Android e iOS, o ApsaraVideo VOD oferece uma solução de inicialização em nível de milissegundos. Usar o ApsaraVideo Player para obter reprodução em tela cheia com carregamento rápido.

Reprodução de vídeo criptografado

Problemas de reprodução DRM em navegadores

O suporte de navegadores para reprodução criptografada com DRM usando o ApsaraVideo Player for Web é limitado. Consulte os navegadores compatíveis em Compatibilidade de recursos.

O parâmetro MtsHlsUriToken

O MtsHlsUriToken é um token de usuário para criptografia HLS. O manifesto M3U8 contém uma URL que aponta para um servidor de chave de descriptografia. Para restringir o acesso, adicione uma camada de autenticação ao servidor de chaves e anexe o MtsHlsUriToken, gerado pela lógica de autenticação, à URL da chave de descriptografia para verificação.

Ao configurar a criptografia, crie um serviço de emissão de tokens para gerar o MtsHlsUriToken. Criptografia HLS - Etapa 4.

Reprodução cross-domain

Reprodução lenta entre regiões a partir do OSS

O acesso à região Reino Unido (Londres) a partir da China continental resulta em alta latência. Adicione um nome de domínio acelerado e use o Global Accelerator para melhorar o desempenho.

Acesso lento e buffering na reprodução internacional

O buffering geralmente ocorre devido a redes instáveis. Buffering prolongado que leva a erros no player sugere instabilidade na CDN. Buffering frequente pode indicar largura de banda insuficiente para a taxa de bits do vídeo — aumente a velocidade da rede ou reduza a taxa de bits.

Reprodução de vídeo no Object Storage Service (OSS)

Requisições excessivas durante a reprodução no OSS

Verifique o vídeo de origem — o player pode enviar requisições duplicadas durante a decodificação. Transcodifique o vídeo com um modelo do ApsaraVideo VOD antes da reprodução. Transcodificação de vídeo e áudio.

Visualização de imagens em vez de download

As imagens no ApsaraVideo VOD só podem ser visualizadas no navegador por meio de um nome de domínio personalizado. O domínio padrão força o download. Adicionar um nome de domínio acelerado.

Problemas com certificado SSL

O vídeo não é reproduzido em alguns computadores com o código de erro 4400

O código de erro 4400 indica impossibilidade de carregar o recurso devido a problemas no servidor ou na rede, ou a um formato não suportado. Verifique se há um certificado SSL configurado.

URLs de reprodução

Geração de URLs curtas de reprodução

Um bucket privado gera URLs longas de reprodução com strings de autenticação. Definir o bucket como public-read ou public-read-write remove a string de autenticação e produz URLs mais curtas. Gerenciar buckets de armazenamento.

Nota

Definir as permissões do bucket como public-read ou public-read-write traz riscos de hotlinking e downloads não autorizados. Não recomendado para produção.

Problemas de reprodução com vídeos não transcodificados

O ApsaraVideo Player SDK com videoID e playauth reproduz apenas vídeos transcodificados. Vídeos não transcodificados exigem uma URL direta, obtida chamando a operação GetMezzanineInfo ou visualizando-a no console do ApsaraVideo VOD.

As URLs de reprodução do VOD são fixas?

Quando o armazenamento de um vídeo é privado, sua URL de reprodução tem validade temporal — o parâmetro auth_key varia conforme o tempo de expiração.

Para obter uma URL permanente, defina o bucket de armazenamento como public-read ou public-read/write. A parte da URL anterior ao caractere ? é um endereço permanente. Gerenciar Buckets de Armazenamento.

Nota

Definir as permissões do bucket como public-read ou public-read-write traz riscos de hotlinking e downloads não autorizados. Não recomendado para produção.

A reprodução redireciona para um navegador

A reprodução depende das capacidades de decodificação do navegador e do dispositivo. Aplicativos de terceiros frequentemente redirecionam para um navegador visando compatibilidade.

Vídeo atualizado não exibido durante a reprodução

Após atualizar um vídeo, atualize o cache da CDN para garantir que os espectadores recebam a versão mais recente. No console, utilize Atualizar e pré-carregar. Via API ou SDK, use PreloadVodObjectCaches ou SubmitMediaRefreshJob.

Obtenção de dados de pixels para cada quadro

  • Player Android: Obtenha os dados ouvindo o callback OnRenderFrameCallback.

  • Player iOS: Obtenha os dados ouvindo o callback onRenderingFrame.

    player.renderingDelegate = self;
    
    #pragma mark CicadaRenderingDelegate
    - (BOOL)onRenderingFrame:(CicadaFrameInfo*) frameInfo{
        if(frameInfo.frameType==Cicada_FrameType_Video){
            // Video
            NSLog(@"receive HW frame:%p pts:%ld foramt %d", frameInfo.video_pixelBuffer, frameInfo.pts, CVPixelBufferGetPixelFormatType(frameInfo.video_pixelBuffer));
    
        } else if (frameInfo.frameType==Cicada_FrameType_Audio){
            // Audio
        }
        return NO;
    }
  • ApsaraVideo Player for Web: Este recurso não é suportado.

Impossibilidade de obter URL de reprodução para vídeos AVI

A operação de API GetPlayInfo não suporta a recuperação de fluxos para vídeos no formato AVI. Portanto, métodos do SDK que dependem dessa operação não conseguem obter URLs de reprodução para vídeos AVI.

Visualize a URL de reprodução de um vídeo AVI no console do ApsaraVideo VOD. Visualizar informações de ativos de mídia.

Erro da API GetPlayInfo ao obter um endereço de reprodução: The video has no stream to play for the request parameter

Siga estas etapas para solucionar o problema:

  1. Confirme a classe de armazenamento do ativo de mídia.

    Por padrão, a operação GetPlayInfo retorna fluxos de reprodução apenas para ativos de mídia no armazenamento Standard. Para obter fluxos de reprodução de áudio e vídeo em armazenamento não Standard, defina o parâmetro PlayConfig com StorageClass igual a All.

    Outros valores válidos para StorageClass incluem Standard, IA (para mídia de Acesso Pouco Frequente), Archive (para mídia Arquivo), Cold Archive (para mídia Arquivo Frio), Source IA (para arquivos de origem IA), Source Archive (para arquivos de origem Arquivo), Source Cold Archive (para arquivos de origem Arquivo Frio), Changing (para mídia cuja classe de armazenamento está sendo alterada) e SourceChanging (para arquivos de origem cuja classe de armazenamento está sendo alterada). Se você deixar o parâmetro vazio, nenhum filtro será aplicado.

  2. Confirme se o ativo de mídia possui um fluxo transcodificado.

    Para obter um fluxo transcodificado, primeiro realize a transcodificação de vídeo e áudio e depois chame a operação de API GetPlayInfo. Para obter a URL do arquivo de origem, consulte GetMezzanineInfo.

Problemas de buffering

Redução de buffering e melhoria na taxa de acerto de cache

Melhore a taxa de acerto de cache configurando assinatura de URL, utilizando atualização e pré-carregamento, otimizando configurações de cache e filtrando parâmetros de URL.

Buffering ao buscar trechos

Com poucos quadros-chave, a busca exige que o player baixe um segmento grande para encontrar o quadro-chave mais próximo, causando buffering. Transcodifique o vídeo para adicionar mais quadros-chave. Transcodificação de vídeo e áudio.

Plugin decodificador H.266

Erro 0x200600001 MEDIA_PLAYER_ERROR_CODEC_VIDEO_NOT_SUPPORT reportado

Quando a message for vvc plugin not enabled, o plugin não está habilitado na camada de aplicação. Chame AliPlayerGlobalSettings.enableCodecPlugin para habilitá-lo.

Quando a mensagem for vvc plugin not loaded, o plugin não foi integrado com sucesso. Verifique se a biblioteca do plugin foi importada ou chame loadlibrary explicitamente.

**Erro 0x50020002 MEDIA_PLAYER_ERROR_CODEC_PREMIUM_INVALID

Este erro indica que a licença da Edição Profissional está ausente. O plugin decodificador H.266 requer uma licença da Edição Profissional. Gerenciar licenças.

Miniaturas de vídeo

Impossibilidade de obter miniaturas de vídeo

O console do ApsaraVideo VOD usa HTTPS por padrão. As URLs das miniaturas devem suportar HTTPS para visualização no console. Verifique as ferramentas de desenvolvedor do navegador para erros específicos.

Revisão de vídeo

Impossibilidade de reproduzir vídeo durante revisão manual

O ApsaraVideo VOD oferece dois modos de revisão:

  • Publicar antes da revisão: Após a transcodificação, o vídeo é marcado como Normal e pode ser reproduzido imediatamente. Você deve então revisar o vídeo manualmente. Se for bloqueado durante a revisão, a reprodução será interrompida.

  • Revisar antes da publicação: Após a transcodificação, o vídeo entra em revisão e é marcado como Em Revisão. A reprodução só começa após aprovação manual.

Definições de parâmetros

O parâmetro videoID

Por questões de segurança, o ApsaraVideo VOD retorna um videoID em vez de uma URL direta quando você faz upload de um arquivo de mídia. Também é possível obter o videoID chamando a API GetPlayInfo.

Após fazer upload de um vídeo para o ApsaraVideo VOD, um videoID é retornado.

Também é possível obter o videoID no console do ApsaraVideo VOD. Siga estas etapas:

  1. Faça login no console do ApsaraVideo VOD.

  2. No painel de navegação à esquerda, em Media Files, clique em Audio/Video.

  3. Localize o videoID (Video ID) na lista de vídeos.

Use o videoID do console para testar o download e a reprodução. Para fazer upload de arquivos, utilize os SDKs de Upload.

AccessKey ID e AccessKey Secret

Seu AccessKey ID e AccessKey Secret são credenciais para acessar as APIs da Alibaba Cloud. O AccessKey ID é um identificador, e o AccessKey Secret assina os parâmetros de requisição da API para evitar adulterações. Mantenha o AccessKey Secret confidencial.

Para obter seu par de AccessKey:

  1. Faça login no console do ApsaraVideo VOD.

  2. No canto superior direito, passe o ponteiro sobre sua foto de perfil e clique em AccessKey Management.

  3. Na página AccessKey Management, crie um par de AccessKey ou visualize o AccessKey Secret de um AccessKey ID existente.

O parâmetro playKey

Uma playKey (ou chave de API) autentica requisições quando o ApsaraVideo Player SDK recupera uma URL de reprodução de vídeo. Ela serve como uma autenticação secundária além da segurança baseada em AccessKey, prevenindo hotlinking. PlayKeys estão disponíveis para Flash, H5, iOS e Android.

Nota

Para garantir a segurança da chave, você deve verificar sua identidade usando um código de verificação por celular ao visualizar uma playKey.

Para obter uma playKey:

  1. Faça login no console do ApsaraVideo VOD.

  2. No painel de navegação à esquerda, escolha Configuration Management > CDN Configuration > Download Settings. Ative o Secure Download Mode.

  3. Na seção Get Key, insira o Unique App Identifier e a Private Key.

  4. Clique em Generate and Download Key.

O parâmetro playauth

O ApsaraVideo Player SDK suporta três modos de reprodução para diferentes casos de uso. O método que utiliza playauth é o mais seguro e recomendado.

Um playauth é um token criptografado contendo o videoID e informações de autenticação. Seu servidor solicita esse token ao ApsaraVideo VOD e o repassa ao cliente, que o utiliza para recuperar a URL de reprodução com segurança.

Modo de reprodução

Caso de uso

Prós e contras

Recomendação

Baseado em AK (setDataSource)

Para fins de teste.

Alto risco de vazamento de credenciais. Este método exige incorporar seu AccessKey ID e AccessKey Secret diretamente no código do lado do cliente, onde podem ser expostos se o cliente for descompilado ou comprometido.

Não recomendado para uso comercial.

Baseado em PlayAuth (setAuthInfo)

Para uso em produção comercial.

Seguro. URLs de vídeo e outras informações sensíveis não ficam expostas no lado do cliente.

Recomendado para uso comercial.

Baseado em URL (local e rede)

Para reproduzir arquivos de vídeo locais ou URLs de vídeo públicas.

Simples. Pode reproduzir vídeos de qualquer fonte.

Use quando precisar reproduzir vídeos locais ou conteúdo de URLs de rede externas.

Fluxo de trabalho: Servidor obtém playauth > Servidor envia playauth ao cliente > Cliente reproduz vídeo.

  1. Obter um playauth: Seu servidor de aplicação chama o SDK do lado do servidor para solicitar um playauth ao serviço ApsaraVideo VOD.

  2. Reproduzir o vídeo: O ApsaraVideo Player SDK usa o videoID e o playauth para solicitar a URL de reprodução do vídeo ao serviço ApsaraVideo VOD, carregando e decodificando o fluxo de vídeo para reprodução.

Importante

Um playauth tem validade de 100 segundos e pode ser usado apenas uma vez para obter a URL de reprodução de um vídeo específico. Se o playauth expirar, você deve solicitar um novo.

Se a URL de reprodução expirar, obtenha um novo playauth e passe-o para o SDK do player para atualizar a URL.

Para proteger sua conta principal, recomendamos usar o par de AccessKey de um usuário RAM, especialmente em cenários de reprodução web.

Documentos relacionados