Todos os produtos
Search
Central de documentação

ApsaraVideo Media Processing:Snapshot de vídeo

Última atualização: Jun 27, 2026

Um snapshot de vídeo é uma imagem capturada de um vídeo em um momento específico e com dimensões definidas. Os snapshots servem para criar ativos como capas de vídeo, sprites e miniaturas para barras de progresso do player. Este tópico descreve como enviar um job de snapshot no ApsaraVideo Media Processing (MPS).

Visão geral

Casos de uso

  • Capas de vídeo: selecione o primeiro quadro de um vídeo curto em um feed como capa ou capture um quadro em um ponto específico do tempo para usar como capa.

  • Pré-visualizações de vídeo: crie miniaturas a partir do conteúdo de vídeo. Ao passar o mouse sobre a linha do tempo do player, o usuário visualiza uma miniatura estática daquele ponto. Isso facilita a navegação rápida pelo conteúdo e o salto para seções de interesse.

  • Moderação de vídeo: faça amostragem do conteúdo de vídeo capturando snapshots para revisão manual ou automatizada.

Recursos

Recurso

Descrição

Parâmetros de API relacionados

Operação no console

Snapshot estático

Captura snapshots JPG de tamanho especificado em pontos de tempo definidos no vídeo. Estão disponíveis os seguintes métodos de amostragem:

  • Snapshot único: captura um snapshot em um ponto de tempo especificado. Este método aceita chamadas síncronas e assíncronas.

  • Snapshot por intervalo: captura snapshots em um intervalo especificado a partir de um horário inicial. A captura para quando a contagem é atingida ou o vídeo termina. O intervalo é em segundos. Aceita apenas chamadas assíncronas.

  • Snapshot médio: captura um número especificado de snapshots em intervalos regulares, de um ponto de tempo definido até o final do vídeo. Este método aceita apenas chamadas assíncronas.

  • Snapshot por ponto de tempo: captura snapshots em um conjunto especificado de pontos de tempo. Este método aceita apenas chamadas assíncronas.

SnapshotConfig

Compatível

Snapshot sprite

Une snapshots estáticos em uma única imagem grande (sprite) com base em regras de layout. A saída é no formato JPG. Aceita apenas chamadas assíncronas. Uma única solicitação de sprite recupera várias imagens, o que reduz o número de requisições e melhora o desempenho do cliente.

TileOut, TileOutputFile

Não compatível

Snapshot WebVTT

Gera um arquivo VTT para snapshots estáticos ou um sprite, contendo carimbos de data/hora, URLs de arquivos e informações de coordenadas. Para exibir uma imagem, recupere e analise o arquivo VTT primeiro. Útil para miniaturas na barra de progresso do player.

SubOut

Compatível

Snapshot de keyframe

Este recurso captura snapshots apenas em keyframes. Se um ponto de tempo especificado não for um keyframe, o serviço usa o keyframe mais próximo.

FrameType

Compatível

Detecção de tela preta no primeiro quadro

Ative a detecção de tela preta para o primeiro quadro (tempo=0). Uma tela preta é definida pela porcentagem de pixels pretos e um limiar de valor de cor. O serviço verifica os primeiros 5 segundos: se encontrar um quadro que não seja preto, ele será capturado. Caso contrário, um job de snapshot único falha; já um job com múltiplos snapshots captura o primeiro quadro preto.

BlackLevel, PixelBlackThreshold

Compatível

Faturamento

A cobrança pelas chamadas de API baseia-se no número de snapshots gerados. Para mais informações, consulte Preços para chamadas de API.

Enviar jobs de snapshot no console

Nota

No console do MPS, envie jobs de snapshot apenas usando um workflow.

  1. Faça login no console do MPS.

  2. Na barra de navegação superior, selecione uma região na lista suspensa.Region

  3. No painel de navegação à esquerda, escolha Workflow > Workflow Orchestration.

  4. Clique em Create Workflow.

  5. Configure o nó Input conforme necessário.

  6. Adicione um nó Snapshot. Clique no ícone + à direita do nó Input e selecione Snapshot no menu suspenso.

  7. Clique no ícone de caneta à direita do nó Snapshot para configurar seus parâmetros.

    Parâmetro

    Obrigatório

    Descrição

    Snapshot Mode

    Sim

    • Single: captura um único quadro em um momento específico.

    • Multiple: captura quadros em um intervalo definido.

    • Average: captura um número especificado de quadros, distribuídos uniformemente ao longo do vídeo.

    Snapshot interval (seconds)

    Obrigatório para o modo 'Multiple'

    Insira o intervalo entre snapshots em segundos.

    Snapshots

    Obrigatório para o modo 'Average'

    Insira o número de snapshots.

    Nota
    • Se este parâmetro não for definido, os snapshots serão capturados no intervalo especificado até o final do vídeo.

    • Se o número de snapshots for maior que 1, eles serão capturados no intervalo especificado até que a quantidade definida de imagens seja atingida.

    • Se apenas o número de snapshots for definido, a captura ocorrerá em um intervalo igual a Duração Total / Número de Snapshots.

    Name

    Sim

    Insira um nome para este nó.

    Output Path

    Sim

    Clique em Select. Na lista suspensa Bucket, selecione um bucket. A seção Path mostra as pastas criadas no bucket. Selecione uma pasta como caminho de saída.

    Nota
    • Formato de caminho para snapshot único: http://bucket.oss-cn-hangzhou.aliyuncs.com/path/{RunId}/{SnapshotTime}.jpg.

    • Formato de caminho para snapshot Múltiplo ou Médio: requer o placeholder {Count}. O caminho deve terminar com /{RunId}/{SnapshotTime}/{Count}.jpg.

    Start Time

    Não

    Selecione o horário nas listas suspensas de hora, minuto e segundo.

    Width x Height

    Não

    Insira os valores de largura e altura nas respectivas caixas de entrada.

    Nota
    • Se os campos de largura e altura permanecerem em branco, a resolução do snapshot corresponderá à do vídeo original.

    • Se você definir apenas a largura ou a altura, a outra dimensão será dimensionada automaticamente para manter a proporção original.

    Generate WebVTT Index File

    Opcional para os modos Multiple e Average

    Ative esta opção para gerar um arquivo de índice WebVTT.

    Set as Thumbnail

    Não

    Ative esta opção para definir a imagem capturada como capa do ativo de mídia na biblioteca. Se houver múltiplos snapshots, o primeiro será definido como capa por padrão.

    Keyframe

    Não

    Ative esta opção para garantir que os snapshots sejam capturados apenas em keyframes. Se um ponto de tempo especificado não for um keyframe, o mais próximo será usado.

    Black Screen Detection

    Opcional para os modos Multiple e Average

    Ative esta opção para detectar e ignorar quadros pretos no início do vídeo. Se um quadro não preto for detectado nos primeiros cinco segundos, o MPS capturará o primeiro quadro não preto.

  8. Clique em OK para concluir a configuração do nó de snapshot.

  9. Clique em Save para finalizar a configuração do workflow.

    Nota

    Após a criação do workflow, ele é acionado automaticamente quando um novo arquivo que atende aos critérios de entrada é carregado no caminho especificado. Para mais informações sobre como acionar um workflow, consulte Acionar um workflow.

Enviar jobs de snapshot por APIimage.png

  1. Carregue um vídeo no OSS.

  2. Envie um job de snapshot. Chame a API SubmitSnapshotJob e configure o parâmetro SnapshotConfig para enviar jobs de snapshot único síncrono, snapshot único assíncrono, sprites ou snapshots WebVTT. As seções a seguir mostram exemplos da estrutura do parâmetro SnapshotConfig. Para mais informações, consulte Detalhes dos parâmetros.

    Snapshot único síncrono

    // Capture one keyframe at 100 ms into the video. The output image width is 1280 px, and the height is adaptive. The image is saved in JPG format.
    // Synchronous mode does not support the Num or Interval parameters, nor does it support sprite or WebVTT output.
    {
      "Time":"100",
      "FrameType":"intra",
      "Width":"1280",
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.jpg"
    	}
    }

    Snapshot único assíncrono

    // Capture one keyframe at the beginning of the video, with first-frame black screen detection enabled. The output image has the same dimensions as the source video and is saved in JPG format.
    {
      "Num":"1",
      "Time":"0",
      "FrameType":"intra",
      "BlackLevel":"100",
      "PixelBlackThreshold":"30",
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.jpg"
    	}
    }

    Snapshot amostrado

    // Starting from the beginning of the video, capture one normal frame every 10 seconds for a maximum of 200 frames or until the video ends.
    // First-frame black screen detection is enabled. The output images have the same dimensions as the source video and are saved as example{Count}.jpg.
    {
      "Num":"200",
      "Time":"0",
      "Interval":"10",
      "FrameType":"normal",
      "BlackLevel":"100",
      "PixelBlackThreshold":"30",
      // To prevent files from being overwritten, you must use the {Count} placeholder in the OutputFile object for multiple snapshots.
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{Count}.jpg"
    	}
    }

    Snapshot uniformemente espaçado

    // Capture 200 normal frames, spaced evenly, from 100 ms to the end of the video. The output images are 1280 px wide and 720 px high. The images are saved as example{Count}.jpg.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // To prevent files from being overwritten, you must use the {Count} placeholder in the OutputFile object for multiple snapshots.
      "OutputFile":{
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{Count}.jpg"
    	}
    }

    Sprite

    // Capture 200 normal frames, spaced evenly, from 100 ms to the end of the video. The output images are 1280 px wide and 720 px high.
    // The small images are stitched into a sprite with a 10x10 layout. The sprite is saved in example-bucket002, and the individual small images are saved in example-bucket001.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // To prevent files from being overwritten, you must use the {Count} placeholder in the OutputFile object for multiple snapshots.
      "OutputFile":{
     		"Bucket":"example-bucket001",
    	  "Location":"oss-cn-hangzhou",
    	  "Object":"example{Count}.jpg"
    	},
      "TileOut":{
        "Lines":10,
        "Columns":10,
        "Padding":"2",
        "Margin":"4",
        "Color":"black",
        "IsKeepCellPic":"true"
      },
      // To prevent files from being overwritten, set OutputFile and TileOutputFile to different buckets or object paths. You must also use the {TileCount} placeholder in the TileOutputFile object for the sprite.
      "TileOutputFile":{ 
      	"Bucket":"example-bucket002",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example{TileCount}.jpg"
    	}
    }

    Snapshot WebVTT

    // Capture 200 normal frames, spaced evenly, from 100 ms to the end of the video. The output images are 1280 px wide and 720 px high. A VTT file is generated.
    {
      "Num":"200",
      "Time":"100",
      "Interval":"0",
      "FrameType":"normal",
      "Width":"1280",
      "Height":"720",
      // To output a VTT file, the Object must have a .vtt extension. The corresponding image path is example/snapshot-tile-{Count}.jpg.
      "OutputFile": {
      	"Bucket":"example-bucket",
      	"Location":"oss-cn-hangzhou",
      	"Object":"example.vtt"
    	},
      "Format":"vtt",
      "SubOut":{
        "IsSptFrag":"true"
      }
    }
  3. Para um job de snapshot único síncrono, a API retorna o resultado diretamente na resposta. Para jobs assíncronos, configure notificações de mensagem ou consulte proativamente os resultados.

    Nota

    Se o arquivo de entrada for muito grande, o job poderá atingir o tempo limite e falhar. Recomendamos implementar um mecanismo de nova tentativa.

  4. (Recomendado) Receba notificações de callback.

    Após a conclusão de um job assíncrono, se as notificações de mensagem estiverem configuradas, o sistema envia uma mensagem para a fila ou tópico especificado no Simple Message Queue (anteriormente MNS). Para mais informações, consulte Receber notificações de mensagem.

  5. Consulte os resultados do job.

    Chame a API QuerySnapshotJobList para consultar os resultados de um ou mais jobs de snapshot especificando seus IDs. Alternativamente, realize uma consulta paginada filtrando jobs com base no status, horário de criação ou fila do MPS, sem especificar IDs de job.

Enviar jobs de snapshot por SDK

SDK

Guias

Java SDK

Snapshot

Python SDK

Snapshot

PHP SDK

Snapshot

PHP SDK (nova versão)

Snapshot

Node.js SDK

Snapshot

Go SDK

Snapshot

Perguntas frequentes

Para perguntas frequentes sobre snapshots, consulte FAQ sobre Snapshot.