Todos os produtos
Search
Central de documentação

Intelligent Media Management:Frame capture

Última atualização: Sep 21, 2026

Este documento explica como usar a API de transcodificação de mídia do Intelligent Media Management (IMM) para capturar quadros de vídeo e salvá-los como imagens estáticas.

Visão geral

A captura de quadros extrai quadros específicos de um vídeo e os salva como imagens estáticas.

image

Casos de uso

  • Snapshot: Salve um momento específico de um vídeo como imagem estática para criar um pôster.

  • Análise: Extraia quadros-chave para análise, como reconhecimento facial e detecção de objetos.

  • Criação de miniaturas: Gere miniaturas ou imagens de capa para vídeos.

  • Resumo de reprodução: Selecione vários momentos-chave de um vídeo para gerar um resumo ou pré-visualização concisa.

  • Compartilhamento e registro de capturas de tela: Capture e salve ou compartilhe um quadro específico durante a reprodução de um vídeo.

Formatos de áudio e vídeo compatíveis

Categoria

Formato

Áudio

Todos os formatos populares, como AAC, MP3, WAV, FLAC, WMA, AC3 e OPUS.

Vídeo

Todos os formatos populares, como MP4, MPEG-TS, MKV, MOV, AVI, FLV, M3U8, WebM, WMV, RM e VOB.

Como usar

Pré-requisitos

  • Crie uma AccessKey. Para obter mais informações, consulte Create an AccessKey.

  • Ative o Object Storage Service (OSS) e crie um bucket. Para obter mais informações, consulte Create a bucket.

  • Ative o Intelligent Media Management (IMM). Saiba mais em Activate IMM.

  • Crie um projeto no console do IMM. Para mais detalhes, consulte Create a project.

    Nota
    • Também é possível chamar uma operação de API para criar um projeto. Para obter mais informações, consulte Create a project.

    • Chame a operação ListProjects para listar todos os projetos criados em uma região específica.

Etapa 1: Faça upload de um arquivo

No console do OSS, faça upload de um arquivo de mídia para um bucket localizado na mesma região do seu projeto IMM.

Na página File Management do bucket, clique em Upload File. Em seguida, clique em Scan File para selecionar o arquivo de mídia desejado. Certifique-se de que o ACL do arquivo esteja definido como Inherit from Bucket e clique em Upload File. O tamanho máximo de um único arquivo é 5 GB.

Etapa 2: Execute a captura de quadros

Chame a operação CreateMediaConvertTask para criar uma tarefa de captura de quadros.

Parâmetros

O exemplo a seguir utiliza o projeto IMM test-project para capturar quadros do arquivo de vídeo oss://test-bucket/video-demo/brewing.mov. Para obter mais informações sobre recursos de processamento de mídia, consulte Media transcoding.

Nota
  • Use a API de transcodificação de mídia no OpenAPI Explorer para processar arquivos de vídeo. Para mais detalhes, consulte o código de exemplo do SDK.

  • Para captura de quadros, não defina os parâmetros Target.URI e Target.Container.

  • Recomendamos definir o nome do arquivo URI em Targets no formato snapshot-{index}.{autoext} por meio de variáveis. Após o salvamento dos snapshots, nomes de arquivo como snapshot-1.png e snapshot-2.png são gerados. Para obter mais informações sobre as variáveis relevantes, consulte TargetURI template.

Capturar um quadro para miniatura de vídeo

Capture um único quadro para usar como miniatura do vídeo. Isso garante que a resolução da imagem seja a mesma do vídeo.

image

  • Formato de saída: jpg

  • Tempo inicial: 5 segundos

  • Número de quadros: 1

  • Caminho de saída: oss://test-bucket/video-demo/cover.jpg

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {  
    "MNS": {    
      "TopicName": "test-mns-topic" 
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "StartTime": 5,
            "Number": 1,
            "URI": "oss://test-bucket/video-demo/cover.jpg"
          }
        ]
      }
    }
  ]
}

Capturar quadros para treinamento e inferência de IA

Um quadro de imagem é capturado a cada 10 segundos para treinamento ou inferência de modelo de IA. A resolução da imagem de saída é limitada a 512x512.

image

  • Formato de saída: jpg

  • Intervalo: 10 segundos

  • Método de redimensionamento: crop. Para obter mais informações, consulte Métodos de redimensionamento.

  • Largura de saída: 512 px

  • Altura de saída: 512 px

  • Caminho de saída: oss://test-bucket/video-demo/snapshot-{index}.{autoext}

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {  
    "MNS": {    
      "TopicName": "test-mns-topic"  
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "Interval": 10,
            "ScaleType": "crop",
            "URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}",
            "Width": 512,
            "Height": 512
          }
        ]
      }
    }
  ]
}

Capturar quadros para analisar um segmento de vídeo

A partir da marca de 11 segundos, capture cinco quadros em intervalos de 4 segundos para analisar um segmento de vídeo. A largura e a altura das imagens de saída correspondem à metade da resolução do vídeo. As imagens são salvas no formato PNG.

image

  • Formato de saída: png

  • Tempo inicial: 11 segundos

  • Intervalo: 4 segundos

  • Número de quadros: 5

  • Método de redimensionamento: crop. Para mais detalhes, consulte Métodos de redimensionamento.

  • Largura de saída: metade da largura original do vídeo.

  • Altura de saída: metade da altura original do vídeo.

  • Caminho de saída: oss://test-bucket/video-demo/snapshot-{index}.{autoext}

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {  
    "MNS": {    
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "png",
            "StartTime": 11,
            "Interval": 4,
            "Number": 5,
            "ScaleType": "crop",
            "URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}",
            "Width": 0.5,
            "Height": 0.5
          }
        ]
      }
    }
  ]
}

Capturar quadros-chave de eventos de um vídeo

Este método utiliza o algoritmo dhash para analisar a similaridade de conteúdo entre quadros de vídeo. Com base em um limiar, ele extrai quadros com mudanças significativas para servir como quadros-chave de eventos.

Importante

Pode ser necessário ajustar o limiar de acordo com os requisitos do seu negócio.

  • Formato de saída: jpg

  • Intervalo: 1 segundo

  • Modo de captura: dhash

  • Limiar: 15

  • Caminho de saída: oss://test-bucket/video-demo/snapshot-{index}.{autoext}

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "Interval": 1,
            "Mode": "dhash",
            "Threshold": 15,
            "URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
          }
        ]
      }
    }
  ]
}

Capturar quadros-chave representativos para inferência

Use o algoritmo dhash para analisar a similaridade de conteúdo dos quadros de vídeo e capturar os cinco quadros com as mudanças mais significativas.

  • Formato de saída: jpg

  • Intervalo de quadros-chave: 1 segundo

  • Modo de captura: dhash

  • Número de quadros: 5

  • Caminho de saída: oss://test-bucket/video-demo/snapshot-{index}.{autoext}

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "Interval": 1,
            "Mode": "dhash",
            "Number": 5,
            "URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
          }
        ]
      }
    }
  ]
}

Capturar todos os quadros IDR

  • Formato de saída: jpg

  • Modo de captura: keyframe

  • Caminho de saída: oss://test-bucket/video-demo/snapshot-{index}.{autoext}

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "Mode": "keyframe",
            "URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
          }
        ]
      }
    }
  ]
}

Capturar 10 quadros em intervalos uniformes

  • Formato de saída: jpg

  • Modo de captura: average

  • Número de quadros: 10

  • Caminho de saída: oss://test-bucket/video-demo/snapshot-{index}.{autoext}

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {
    "MNS": {
      "TopicName": "test-mns-topic"
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/Winemaking.mov"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "Mode": "average",
            "Number": 10,
            "URI": "oss://test-bucket/video-demo/snapshot-{index}.{autoext}"
          }
        ]
      }
    }
  ]
}

Capturar a capa de um áudio

  • Formato de saída: jpg

  • Número de quadros: 1

  • Caminho de saída: oss://test-bucket/video-demo/cover.jpg

  • Notificação de conclusão: enviar uma mensagem para o tópico MNS chamado "test-mns-topic".

Acesse o OpenAPI Explorer para obter um exemplo de SDK pré-preenchido. Modifique os parâmetros conforme necessário para depuração.

Exemplo de parâmetros de requisição:

{
  "ProjectName": "test-project",
  "Notification": {  
    "MNS": {    
      "TopicName": "test-mns-topic"  
    }
  },
  "Sources": [
    {
      "URI": "oss://test-bucket/video-demo/test.mp3"
    }
  ],
  "Targets": [
    {
      "Image": {
        "Snapshots": [
          {
            "Format": "jpg",
            "Number": 1,
            "URI": "oss://test-bucket/video-demo/cover.jpg"
          }
        ]
      }
    }
  ]
}

Faturamento

A captura de quadros gera os seguintes itens faturáveis para o OSS e o IMM:

  • OSS: para obter mais informações sobre preços, consulte Preços do OSS.

    API

    Item faturável

    Descrição

    GetObject

    Requisições GET

    A cobrança é calculada com base no número de requisições bem-sucedidas.

    Recuperação de dados Infrequent Access

    A recuperação de dados Infrequent Access gera uma taxa de recuperação de dados.

    Recuperação de dados Archive-direct

    Ao ler um objeto arquivado de um bucket com archive-direct ativado, uma taxa de recuperação de dados é cobrada.

    Aceleração de transferência

    Ao ativar a aceleração de transferência e usar um endpoint de aceleração para acessar o bucket, uma taxa de aceleração de transferência é cobrada com base no volume de dados.

    PutObject

    Requisições PUT

    A cobrança é calculada com base no número de requisições bem-sucedidas.

    Taxas de armazenamento

    O armazenamento é cobrado com base na classe de armazenamento, no tamanho e na duração do armazenamento do objeto.

    HeadObject

    Requisições GET

    A cobrança é calculada com base no número de requisições bem-sucedidas.

  • IMM: para obter mais informações sobre preços, consulte IMM billable items.

    Importante

    A partir das 11:00 (UTC+8) de 28 de julho de 2025, os preços do serviço de captura de quadros do IMM serão ajustados. Para mais detalhes, consulte o aviso de ajuste de faturamento do IMM.

    API

    Item faturável

    Descrição

    CreateMediaConvertTask

    VideoFraming

    A cobrança pela captura de quadros de vídeo é calculada com base no número de quadros capturados com sucesso.

Métodos de redimensionamento

Método de redimensionamento

Efeito do redimensionamento

stretch

Estica a imagem para preencher as dimensões de destino. Uma proporção diferente distorcerá a imagem de saída.

image

crop

Redimensiona e recorta a imagem. A imagem é redimensionada proporcionalmente para cobrir as dimensões de destino e, em seguida, recortada na largura e altura especificadas.

image

fill

Redimensiona a imagem e adiciona bordas pretas. A imagem é redimensionada proporcionalmente para caber nas dimensões de destino, preenchendo o espaço restante com bordas pretas.

image

fit

Redimensiona a imagem sem adicionar bordas pretas. A imagem é redimensionada proporcionalmente para caber nas dimensões de destino. Se a proporção da imagem de saída for diferente da original, a largura e a altura da imagem de saída não corresponderão às dimensões especificadas.

image