Este tópico descreve como usar a operação de transcodificação de mídia do Intelligent Media Management (IMM) para salve quadros capturados como imagens estáticas.
Introdução ao recurso
A captura de quadros é o processo de extrair imagens específicas de um vídeo para salve momentos pontuais como arquivos estáticos.

Cenários
Snapshot: Salva um momento específico do vídeo como imagem estática para crie pôsteres.
Análise: Extrai keyframes para processamento posterior, como reconhecimento facial e detecção de objetos.
Criação de miniaturas: Gera thumbnails ou imagens de capa para vídeos.
Resumo de reprodução: Selecione diversos momentos-chave do vídeo para gerar um resumo conciso ou uma prévia.
Compartilhamento e registro de capturas de tela: Permite que usuários capturem o quadro exato durante a reprodução quando desejam salve ou compartilhar uma cena específica.
Formatos de áudio e vídeo compatíveis
|
Categoria |
Formato |
|
Áudio |
Formatos de áudio comuns, como AAC, MP3, WAV, FLAC, WMA, AC3 e Opus. |
|
Vídeo |
Formatos de vídeo comuns, como MP4, MPEG-TS, MKV, MOV, AVI, FLV, M3U8, WebM, WMV, RM e VOB. |
Como usar
Pré-requisitos
Você criou e obteve um par de AccessKey. Para mais informações, consulte Criar um par de AccessKey.
O Object Storage Service (OSS) está ativado e você criou um bucket. Para mais informações, consulte Criar um bucket.
O IMM está ativado. Para mais informações, consulte Ativar o IMM.
-
Você criou um projeto no console do IMM. Para mais informações, consulte Criar um projeto.
NotaChame a operação CreateProject para crie um projeto. Para mais informações, consulte CreateProject.
Chame a operação ListProjects para listar as informações de todos os projetos em uma região.
Etapa 1: Fazer upload dos arquivos
Use o console do OSS para enviar arquivos de mídia a um bucket na mesma região do projeto do IMM.

Etapa 2: Usar o recurso de captura de quadros do IMM
Chame a operação CreateMediaConvertTask para crie uma tarefa de captura de quadros.
Descrição dos parâmetros
O exemplo a seguir usa o projeto do IMM test-project para capturar quadros do arquivo de vídeo oss://test-bucket/video-demo/Winemaking.mov. Para mais detalhes sobre os recursos de processamento de mídia, consulte Transcodificação de mídia.
Use a operação de transcodificação de mídia para processar arquivos de vídeo no OpenAPI Explorer. Consulte o código de exemplo do sdk para mais informações.
Não configure os parâmetros
Target.URIeTarget.Containerao usar o recurso de captura de quadros.Recomendamos usar variáveis para especifique o nome do arquivo URI em Targets no formato
snapshot-{index}.{autoext}. Após salve os quadros, o sistema gera arquivos comosnapshot-1.pngesnapshot-2.png. Para mais informações sobre as variáveis relacionadas, consulte Modelo TargetURI.
Capturar um único quadro como thumbnail de vídeo
Capture um único quadro para servir como thumbnail do vídeo. Isso garante que a resolução da imagem seja idêntica à resolução do vídeo original.

Formato do quadro capturado: jpg
Tempo inicial da captura: 5º segundo
Quantidade de quadros capturados: 1
Caminho dos quadros capturados: oss://test-bucket/video-demo/cover.jpg
Notificação de conclusão da captura: Envio de mensagem do Message Service (MNS) para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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 um quadro a cada 10 segundos para treinamento ou inferência de modelos de IA
Capture um quadro a cada 10 segundos para treinar ou realizar inferências com modelos de IA, limitando a resolução da imagem de saída a 512x512.

Formato do quadro capturado: jpg
Intervalo de captura: 10 segundos
Método de redimensionamento: crop. Para mais detalhes sobre os métodos disponíveis, consulte Métodos de redimensionamento.
Largura da imagem de saída: 512px
Altura da imagem de saída: 512px
Caminho dos quadros capturados: oss://test-bucket/video-demo/snapshot-%d.png
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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 cinco quadros com intervalo de 4 segundos para analisar segmentos de vídeo
A partir do 11º segundo, capture um total de 5 quadros com intervalos de 4 segundos para analisar segmentos do vídeo. A largura e a altura da imagem de saída correspondem à metade da resolução do vídeo original, e as imagens são salvas no formato PNG.

Formato do quadro capturado: png
Tempo inicial da captura: 11º segundo
Intervalo de captura: 4 segundos
Quantidade de quadros capturados: 5
Método de redimensionamento: crop. Para mais detalhes sobre os métodos disponíveis, consulte Métodos de redimensionamento
Largura da imagem de saída: 1/2 da largura da resolução do vídeo de entrada
Altura da imagem de saída: 1/2 da altura da resolução do vídeo de entrada
Caminho dos quadros capturados: oss://test-bucket/video-demo/snapshot-%d.png
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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 keyframes de eventos do vídeo
Analise a similaridade de conteúdo entre os quadros do vídeo usando dhash e extraia quadros com alterações significativas de conteúdo visual como keyframes de evento, com base no limiar definido.
Ajuste o limiar de acordo com os cenários específicos de negócio.
Formato da imagem de saída: jpg
Intervalo de captura: 1 segundo
Modo de captura: dhash
Limiar: 15
Caminho dos quadros capturados: oss://test-bucket/video-demo/snapshot-%d.png
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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 cinco keyframes de evento mais representativos do vídeo para inferência
Analise a similaridade de conteúdo dos quadros de vídeo usando dhash para capturar cinco quadros que apresentem as maiores variações de conteúdo visual.
Formato da imagem de saída: jpg
Intervalo de captura: 1 segundo
Modo de captura: dhash
Quantidade de quadros capturados: 5
Caminho dos quadros capturados: oss://test-bucket/video-demo/snapshot-%d.png
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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 do vídeo
Formato da imagem de saída: jpg
Modo de captura: keyframe
Caminho dos quadros capturados: oss://test-bucket/video-demo/snapshot-%d.png
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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 de tempo iguais
Formato da imagem de saída: jpg
Modo de captura: average
Quantidade de quadros capturados: 10
Caminho dos quadros capturados: oss://test-bucket/video-demo/snapshot-%d.png
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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}"
}
]
}
}
]
}
Criar uma capa para arquivo de áudio usando um quadro capturado do próprio arquivo
Formato da imagem de saída: jpg
Quantidade de quadros capturados: 1
Caminho de salvamento da imagem de saída: oss://test-bucket/video-demo/cover.jpg
Notificação de conclusão da captura: Envio de mensagem MNS para o tópico MNS "test-mns-topic"
Para obter o código de exemplo do sdk, acesse o OpenAPI Explorer. Os parâmetros no código de exemplo são configurados automaticamente para referência. Modifique-os conforme suas necessidades de negócio antes de executar a depuração.
Parâmetros de solicitação de exemplo:
{
"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
Durante o processo de captura de quadros, os seguintes itens faturáveis são gerados tanto no OSS quanto no IMM:
-
No lado do OSS: Para preços detalhados, consulte Preços do OSS.
API
Item faturável
Descrição
GetObject
Solicitações GET
Taxas de solicitação são cobradas com base no número de solicitações bem-sucedidas.
Recuperação de objetos IA
Se objetos IA forem recuperados, taxas de recuperação de dados IA serão cobradas com base no tamanho dos dados recuperados.
Recuperação de objetos Archive em bucket com acesso em tempo real ativado
Se objetos Archive em um bucket com acesso em tempo real ativado forem recuperados, taxas de recuperação de dados Archive serão cobradas com base no tamanho dos objetos recuperados.
Aceleração de transferência
Se você ative a aceleração de transferência e usar um endpoint de aceleração para acessar seu bucket, taxas de aceleração de transferência serão cobradas com base no tamanho dos dados.
PutObject
Solicitações PUT
Taxas de solicitação são cobradas com base no número de solicitações bem-sucedidas.
Taxas de armazenamento
Taxas de armazenamento são cobradas com base na classe de armazenamento, tamanho e duração de armazenamento do objeto.
HeadObject
Solicitações GET
Taxas de solicitação são cobradas com base no número de solicitações bem-sucedidas.
-
No lado do IMM: Para preços detalhados, consulte Itens faturáveis do IMM.
ImportanteA partir das 11:00 UTC+8 de 28 de julho de 2025, o preço do serviço de captura de quadros do IMM será ajustado. Para mais informações, consulte Anúncio de ajuste de faturamento do IMM.
API
Item faturável
Descrição
CreateMediaConvertTask
VideoFraming
A cobrança pela captura de quadros de vídeo é baseada 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 todo o espaço. Quando a imagem é forçadamente redimensionada com base na largura e altura especificadas, se a proporção largura-altura for inconsistente com a da imagem de entrada, a imagem de saída ficará distorcida. |
|
|
crop Redimensiona e recorta a imagem. A imagem é redimensionada proporcionalmente ao menor tamanho possível fora de um retângulo baseado na largura e altura especificadas e, em seguida, recortada conforme essas dimensões. |
|
|
fill Redimensiona a imagem mantendo a borda preta. A imagem é redimensionada proporcionalmente ao maior tamanho possível dentro de um retângulo baseado na largura e altura especificadas. O espaço vazio no retângulo é preenchido com a cor preta. |
|
|
fit Redimensiona a imagem sem manter a borda preta. A imagem é redimensionada proporcionalmente ao maior tamanho possível dentro de um retângulo baseado na largura e altura especificadas. Se a proporção largura-altura da imagem de saída for diferente da proporção da imagem de entrada, a largura e a altura da imagem redimensionada serão diferentes das dimensões especificadas. |
|



