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.

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.
NotaTambé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.
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.URIeTarget.Container.Recomendamos definir o nome do arquivo URI em
Targetsno formatosnapshot-{index}.{autoext}por meio de variáveis. Após o salvamento dos snapshots, nomes de arquivo comosnapshot-1.pngesnapshot-2.pngsã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.

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.

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.

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.
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:
dhashLimiar: 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:
dhashNú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:
keyframeCaminho 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:
averageNú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.
ImportanteA 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. |
|
|
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. |
|
|
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. |
|
|
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. |
|



