Todos os produtos
Search
Central de documentação

Intelligent Media Management:GenerateVideoPlaylist

Última atualização: Jul 10, 2026

Cria uma playlist de transcodificação just-in-time que gera um arquivo M3U8 a partir de um arquivo de vídeo. A playlist pode ser reproduzida imediatamente após a geração, e a transcodificação é realizada sob demanda com base no progresso da reprodução. Em comparação com a transcodificação offline, isso reduz significativamente o tempo de espera da transcodificação e diminui substancialmente os custos de transcodificação e armazenamento.

Descrição da operação

  • Antes de usar esta operação, certifique-se de entender a cobrança do Intelligent Media Management (IMM) e seus preços.

  • Antes de invocar esta operação, certifique-se de que existe um projeto ativo na região atual. Para mais informações, consulte Gerenciamento de projetos.

  • Por padrão, esta operação processa apenas um fluxo de vídeo, áudio ou legenda. Você pode configurar o número de fluxos de vídeo, áudio e legenda a serem processados.
    Importante Os parâmetros Video, Audio e Subtitle em Targets não podem estar todos vazios. Um valor vazio indica que o processamento correspondente está desativado. Por exemplo, se Video estiver vazio, o processamento de vídeo será desativado e os arquivos TS de saída não conterão fluxos de vídeo.
  • A duração mínima do vídeo de origem é de aproximadamente 0,x segundos, variando dependendo da taxa de quadros de saída.

  • Esta operação suporta a geração de Media Playlists e Master Playlists. Preste atenção às descrições das métricas neste documento.

  • Esta é uma operação síncrona. A transcodificação síncrona ou assíncrona é acionada apenas durante a reprodução ou pré-transcodificação. Você pode definir o parâmetro Notification para receber os resultados das tarefas de transcodificação por meio de notificações de mensagens.

  • Para mais informações sobre este recurso, consulte Transcodificação just-in-time.

  • O processamento de dados do OSS também fornece um recurso de geração de playlist, mas suporta apenas a geração de Media Playlists com parâmetros simplificados. Para detalhes, consulte Gerar uma playlist no processamento de dados do OSS.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

A tabela abaixo descreve a autorização necessária para chamar esta API. Você pode defini-la em uma política do Resource Access Management (RAM). As colunas da tabela estão detalhadas abaixo:

  • Ação: As ações que podem ser usadas no elemento Action das instruções de política de permissão do RAM para conceder permissões para executar a operação.

  • API: A API que você pode chamar para executar a ação.

  • Nível de acesso: O nível de acesso predefinido concedido para cada API. Valores válidos: create, list, get, update e delete.

  • Tipo de recurso: O tipo de recurso que suporta autorização para executar a ação. Indica se a ação suporta permissão em nível de recurso. O recurso especificado deve ser compatível com a ação. Caso contrário, a política será ineficaz.

    • Para APIs com permissões em nível de recurso, os tipos de recursos obrigatórios são marcados com um asterisco (*). Especifique o Nome de Recurso Alibaba Cloud (ARN) correspondente no elemento Resource da política.

    • Para APIs sem permissões em nível de recurso, é exibido como Todos os Recursos. Use um asterisco (*) no elemento Resource da política.

  • Chave de condição: As chaves de condição definidas pelo serviço. A chave permite controle granular, aplicando-se somente a ações ou a ações associadas a recursos específicos. Além das chaves de condição específicas do serviço, o Alibaba Cloud fornece um conjunto de chaves de condição comuns aplicáveis a todos os serviços compatíveis com RAM.

  • Ação dependente: As ações dependentes necessárias para executar a ação. Para concluir a ação, o usuário RAM ou a função RAM deve ter permissões para executar todas as ações dependentes.

Ação

Nível de acesso

Tipo de recurso

Chave de condição

Ação dependente

imm:GenerateVideoPlaylist

none

*Project

acs:imm:{#regionId}:{#accountId}:project/{#ProjectName}

Nenhuma Nenhuma

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

ProjectName

string

Sim

O nome do projeto. Para obter informações sobre como obter o nome do projeto, consulte Criar um projeto.

immtest

UserData

string

Não

As informações personalizadas, que são retornadas nas notificações de mensagens assíncronas. Isso ajuda você a associar notificações de mensagens dentro do seu sistema. Comprimento máximo: 2.048 bytes.

{"ID": "user1","Name": "test-user1","Avatar": "http://example.com?id=user1"}

SourceURI

string

Sim

O URI do OSS do vídeo.

O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o caminho completo do arquivo, incluindo a extensão do nome do arquivo.

Nota

Apenas buckets do OSS com armazenamento Standard são suportados. Buckets com listas de permissões de proteção contra hotlink configuradas não são suportados.

oss://test-bucket/test-source-object/video.mp4

SourceStartTime

number

Não

O horário inicial para gerar a playlist. Unidade: segundos. Valores válidos:

  • 0 (padrão) ou vazio: inicia a partir do começo do vídeo de origem.

  • Um valor maior que 0: inicia a partir do ponto de tempo especificado no vídeo de origem.

Nota

Você pode definir este parâmetro juntamente com SourceDuration para gerar uma playlist para uma parte específica do vídeo de origem.

0

SourceDuration

number

Não

A duração para gerar a playlist. Unidade: segundos. Valores válidos:

  • 0 (padrão) ou vazio: continua até o final do vídeo de origem.

  • Um valor maior que 0: continua pela duração especificada a partir do horário inicial da playlist.

Nota

Se o ponto de tempo correspondente ao parâmetro especificado exceder o final do vídeo de origem, o valor padrão será usado.

0

SourceSubtitles

array<object>

Não

A lista de legendas a serem adicionadas. Valor padrão: vazio. São suportadas no máximo duas legendas.

object

Não

As informações da legenda.

URI

string

Sim

O URI do OSS da legenda a ser incorporada.

O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o caminho completo do arquivo.

Nota

O parâmetro MasterURI não deve estar vazio, e o URI do OSS oss://${Bucket}/${Object} da legenda deve estar no mesmo diretório ou em um subdiretório do parâmetro MasterURI.

oss://test-bucket/test-object/subtitle/eng.vtt

Language

string

Não

O idioma da legenda. O valor segue o padrão ISO 639-2. Valor padrão: vazio.

eng

MasterURI

string

Não

O URI do OSS da Master Playlist.

O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o caminho completo do arquivo com a extensão ".m3u8".

Nota

Se a playlist tiver entrada de legenda ou múltiplas saídas Target, MasterURI é obrigatório. O URI da legenda ou o URI do Target deve estar no mesmo diretório ou em um subdiretório de MasterURI.

oss://test-bucket/test-object/master.m3u8

Targets

array<object>

Sim

O array de playlists de transcodificação just-in-time. O comprimento máximo do array é 6. Cada Target corresponde a no máximo uma Media Playlist de vídeo e uma ou mais Media Playlists de legenda.

Nota

Se mais de um Target for configurado, o parâmetro MasterURI não deve estar vazio.

array<object>

Não

Os detalhes da tarefa de transcodificação just-in-time.

URI

string

Não

O prefixo do URI do OSS para os arquivos de saída da transcodificação just-in-time, incluindo arquivos M3U8 e TS.

O URI do OSS segue o formato oss://${Bucket}/${Object}, onde ${Bucket} é o nome do bucket do OSS na mesma região do projeto atual, e ${Object} é o prefixo do caminho completo do arquivo sem a extensão do nome do arquivo.

  • Exemplo: Se URI for oss://test-bucket/test-object/output-video, um arquivo oss://test-bucket/test-object/output-video.m3u8 e múltiplos arquivos oss://test-bucket/test-object/output-video-${token}-${index}.ts serão gerados. ${token} é uma string única gerada com base nos parâmetros de transcodificação e está incluída na resposta da API. ${index} é o número de sequência do arquivo TS começando em 0.

Nota

Se o parâmetro MasterURI não estiver vazio, o URI deve estar no mesmo diretório ou em um subdiretório do parâmetro MasterURI.

oss://test-bucket/test-object/output-video

Video TargetVideo

Não

As configurações de parâmetros de processamento de vídeo. Um valor vazio (padrão) indica que o processamento de vídeo está desativado e os arquivos TS de saída não contêm fluxos de vídeo.

Nota

Os campos Video e Subtitle dentro do mesmo Target são mutuamente exclusivos. Se o campo Video for definido, o campo Subtitle será ignorado.

Audio TargetAudio

Não

As configurações de parâmetros de processamento de áudio. Um valor vazio (padrão) indica que o processamento de áudio está desativado e os arquivos TS de saída não contêm fluxos de áudio.

Nota

Os campos Audio e Subtitle dentro do mesmo Target são mutuamente exclusivos. Se o campo Audio for definido, o campo Subtitle será ignorado. Audio e Video podem ser definidos ao mesmo tempo. Audio especifica as informações de áudio no vídeo de saída. Você também pode definir apenas Audio para gerar saída somente de áudio.

Subtitle TargetSubtitle

Não

As configurações de parâmetros de processamento de legenda.

Nota

O campo Subtitle é mutuamente exclusivo com os campos Video e Audio dentro do mesmo Target. As legendas são geradas apenas quando Subtitle é definido independentemente.

TranscodeAhead

integer

Não

O número de arquivos TS a serem transcodificados antecipadamente quando a transcodificação just-in-time é acionada. Por padrão, 2 minutos de vídeo são transcodificados antecipadamente.

  • Exemplo: Se Duration for 10, o valor padrão de TranscodeAhead é 12. Você pode especificar este parâmetro para controlar o número de arquivos de transcodificação antecipada assíncrona. Valores válidos: [10, 30].

12

Duration

number

Não

A duração de reprodução de um único arquivo TS. Unidade: segundos. Valor padrão: 10. Valores válidos: [5, 15].

10

InitialTranscode

number

Não

A duração inicial da transcodificação. Unidade: segundos. Valor padrão: 30.

  • Se o valor for definido como 0, nenhuma pré-transcodificação será realizada.

  • Se o valor for menor que 0 ou exceder o comprimento do vídeo de origem, o vídeo inteiro será transcodificado inicialmente.

  • Se a duração especificada cair no meio de um arquivo TS, a transcodificação continuará até o final desse arquivo TS.

Nota

Este parâmetro é usado principalmente para reduzir o tempo de espera para a primeira reprodução e melhorar a experiência de reprodução. Se você deseja substituir um cenário tradicional de VOD, tente transcodificar inicialmente o vídeo inteiro.

30

InitialSegments

array

Não

O array de durações dos arquivos TS de transcodificação inicial. O comprimento máximo do array é 6. Valor padrão: vazio. Este parâmetro é independente do parâmetro Duration.

number

Não

A duração de um arquivo TS de transcodificação inicial. Valores válidos: [1, Duration].

  • Exemplo: Se o array de duração dos TS de transcodificação inicial for [2, 2, 4, 4, 8, 8], o arquivo TS no índice 0 terá duração de 2, o arquivo TS no índice 1 terá duração de 2, o arquivo TS no índice 2 terá duração de 4, o arquivo TS no índice 3 terá duração de 4, o arquivo TS no índice 4 terá duração de 8 e o arquivo TS no índice 5 terá duração de 8.

Nota

Personalizar durações menores para os arquivos TS de transcodificação inicial torna o carregamento do vídeo mais suave.

2

Tags

object

Não

As tags de objeto do OSS a serem adicionadas aos arquivos TS gerados. Você pode usar tags do OSS para controlar o ciclo de vida dos arquivos do OSS.

Nota

Os valores de tag neste nível são mesclados com as Tags definidas no nível pai para formar os valores de tag do Target atual. Se existir uma tag com o mesmo nome, o valor neste nível terá precedência.

string

Não

O valor da tag.

{\"key1\":\"value1\"}

Tags

object

Não

As tags de objeto do OSS a serem adicionadas aos arquivos TS gerados. Você pode usar tags para controlar o ciclo de vida dos arquivos do OSS.

{"key1": "value1", "key2": "value2"}

string

Não

O valor da tag.

{"key1": "value1", "key2": "value2"}

CredentialConfig CredentialConfig

Não

Deixe este parâmetro vazio, a menos que tenha requisitos especiais.

A configuração de autorização da China. Este parâmetro é opcional. Para mais informações, consulte Usar autorização encadeada para acessar recursos de outras entidades.

Notification Notification

Não

A configuração de notificação de mensagens. Clique em Notification para obter detalhes. Para o formato das mensagens de notificação assíncrona, consulte Formato de mensagem de notificação assíncrona.

OverwritePolicy

string

Não

A política de substituição quando uma Media Playlist já existe. Valores válidos:

  • overwrite (padrão): substitui a Media Playlist existente.

  • skip-existing: ignora a geração e mantém a Media Playlist existente.

overwrite

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

Esquema da resposta.

RequestId

string

O ID da solicitação.

CA995EFD-083D-4F40-BE8A-BDF75FFF*****

Duration

number

A duração total do vídeo de saída.

1082

Token

string

O token da Master Playlist.

92376fbb-171f-4259-913f-705f7ee0****

MasterURI

string

O URI do OSS da Master Playlist.

oss://test-bucket/test-object/master.m3u8

VideoPlaylist

array<object>

A lista de arquivos de Media Playlist de vídeo.

object

As informações do arquivo de Media Playlist de vídeo.

Token

string

O token gerado para a Media Playlist de vídeo. Você pode usar este parâmetro para construir os endereços dos arquivos TS gerados.

Nota

Com base no valor de Token retornado, você pode construir os endereços dos arquivos TS transcodificados. O formato é: oss://${Bucket}/${Object}-${Token}-${Index}.ts, onde oss://${Bucket}/${Object} é o URI do Target especificado nos parâmetros de entrada, ${Token} é o parâmetro retornado e ${Index} é o número de sequência do arquivo TS.

affe0c6042f09722fec95a21b8b******

URI

string

O URI do OSS da Media Playlist de vídeo.

oss://test-bucket/test-object/output-video.m3u8

Resolution

string

A resolução do vídeo.

640x480

FrameRate

string

A taxa de quadros do vídeo.

25/1

AudioPlaylist

array<object>

A lista de arquivos de Media Playlist de áudio.

object

As informações do arquivo de Media Playlist de áudio.

Token

string

O token gerado para a Media Playlist de áudio. Você pode usar este parâmetro para construir os endereços dos arquivos TS gerados.

affe0c6042f09722fec95a21b8b******

URI

string

O URI do OSS da Media Playlist de áudio.

oss://test-bucket/test-object/output-audio.m3u8

Channels

integer

O número de canais de áudio.

1

SubtitlePlaylist

array<object>

A lista de arquivos de Media Playlist de legenda.

object

As informações do arquivo de Media Playlist de legenda.

Token

string

O token gerado para a Media Playlist de legenda. Você pode usar este parâmetro para construir os endereços dos arquivos de legenda gerados.

Nota

Com base no valor de Token retornado, você pode construir os endereços dos arquivos de legenda transcodificados. O formato é: oss://${Bucket}/${Object}-${Token}_${Index}.ts, onde oss://${Bucket}/${Object} é o URI da Legenda especificado nos parâmetros de entrada, ${Token} é o parâmetro retornado e ${Index} é o número de sequência do arquivo de legenda.

affe0c6042f09722fec95a21b8b******

URI

string

O URI do OSS da Media Playlist de legenda.

oss://test-bucket/test-object/output-subtitle.m3u8

Language

string

O idioma do fluxo de legenda.

Nota

O idioma é obtido das informações do fluxo de legenda do vídeo de origem especificado por SourceURI. Se o vídeo de origem não contiver informações de idioma, um valor vazio será retornado.

eng

Index

integer

O número de sequência do fluxo de legenda, começando em 0.

1

Exemplos

Resposta de sucesso

JSON formato

{
  "RequestId": "CA995EFD-083D-4F40-BE8A-BDF75FFF*****",
  "Duration": 1082,
  "Token": "92376fbb-171f-4259-913f-705f7ee0****",
  "MasterURI": "oss://test-bucket/test-object/master.m3u8",
  "VideoPlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-video.m3u8",
      "Resolution": "640x480",
      "FrameRate": "25/1"
    }
  ],
  "AudioPlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-audio.m3u8",
      "Channels": 1
    }
  ],
  "SubtitlePlaylist": [
    {
      "Token": "affe0c6042f09722fec95a21b8b******",
      "URI": "oss://test-bucket/test-object/output-subtitle.m3u8",
      "Language": "eng",
      "Index": 1
    }
  ]
}

Códigos de erro

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.