O ApsaraVideo VOD permite gerar snapshots de vídeo a partir dos seus arquivos de mídia. Crie modelos de snapshot com configurações predefinidas e gerencie-os pelo console ou por meio de APIs.
Introdução
Um snapshot de vídeo é uma imagem capturada em um ponto específico do vídeo e salva como arquivo de imagem. O ApsaraVideo VOD oferece modelos de snapshot para que você configure os parâmetros uma única vez e os reutilize especificando o ID do modelo ao enviar um job de snapshot.
A geração de snapshots pode falhar em arquivos de mídia apenas com áudio, arquivos source corrompidos ou arquivos com informações de container anormais.
O processo de snapshot é totalmente assíncrono. Ao enviar uma solicitação de snapshot, o job pode permanecer na fila mesmo após a API retornar uma resposta. Recupere os resultados do snapshot por meio de uma notificação de evento de conclusão de snapshot de vídeo.
O tempo necessário para gerar um snapshot depende do tamanho do arquivo, da duração e do tipo de quadro.
Não é possível personalizar o diretório de saída dos snapshots gerados.
Tipos de snapshot
-
Snapshot de capa (CoverSnapshot)
O ApsaraVideo VOD gera automaticamente snapshots para cada vídeo source. Esses são os chamados snapshots de capa. Por padrão, até oito imagens são capturadas em keyframes uniformemente espaçados, começando na marca de 5 ms do vídeo. Visualize esses snapshots de capa na página de detalhes do vídeo no console do ApsaraVideo VOD e selecione qualquer um deles como capa do vídeo.
Se um vídeo tiver menos de oito keyframes, serão gerados menos de oito snapshots.
Caso nenhuma capa de vídeo seja definida, a imagem do meio entre os snapshots de capa gerados será usada como capa padrão.
Ao fazer upload de um vídeo para o ApsaraVideo VOD, o service gera snapshots de capa e snapshots sprite.
-
Snapshot normal (NormalSnapshot)
Use uma API para capturar um número específico de imagens de um vídeo. Esse método permite configurar parâmetros como hora de início, quantidade total de snapshots, intervalo entre snapshots, largura e altura. Se você enviar vários jobs de snapshot para o mesmo vídeo, o ApsaraVideo VOD manterá apenas os dados do job mais recente. Para obter mais informações, consulte enviar job de snapshot de mídia.
-
Snapshot sprite (SpriteSnapshot)
Um sprite é criado gerando primeiro uma série de snapshots normais e depois unindo-os em uma única imagem maior, com base em um layout definido. Essa imagem maior é o sprite, e as imagens individuais usadas para criá-lo são chamadas de imagens originais de um sprite. O uso de sprites reduz o número de solicitações de imagem, permitindo que um cliente obtenha informações de múltiplos snapshots em uma única requisição, o que melhora o desempenho.
Por exemplo, se você organizar os snapshots normais em uma grade 10x10, um único sprite poderá conter teoricamente 10 × 10 = 100 imagens pequenas. Se o número real de snapshots normais for menor que 100, o sprite conterá menos imagens. Caso ultrapasse 100, um segundo sprite será gerado, e assim por diante. A figura a seguir ilustra esse processo.
NotaNo diagrama de exemplo, há 50 snapshots normais no total, organizados em uma grade 10×3. O primeiro sprite contém 30 imagens pequenas e o segundo sprite contém as 20 restantes.
-
Imagem original de um sprite (SpriteOriginSnapshot)
As imagens originais de um sprite são os snapshots normais usados para criar o sprite. Escolha manter ou excluir essas imagens originais. Se optar por mantê-las, recupere seus dados usando a API de consulta de dados de snapshot. Para obter mais informações, consulte consultar dados de snapshot.
-
Snapshot WebVTT
A geração de snapshots WebVTT cria um arquivo VTT contendo informações sobre todos os snapshots. O arquivo VTT registra dados básicos, como timestamp e URL de cada snapshot. Para exibir miniaturas, sua aplicação deve primeiro analisar o arquivo VTT para recuperar essas informações. Esse recurso é comumente usado para exibir miniaturas de pré-visualização na barra de busca de um player.
Opções de armazenamento de snapshot WebVTT
-
Armazenamento de imagens individuais
Cada snapshot é armazenado como um arquivo de imagem separado. O arquivo VTT registra a posição relativa e o timestamp de cada snapshot individual, conforme mostrado na figura a seguir:

-
Armazenamento de imagem combinada
Todos os snapshots são primeiramente unidos em uma única imagem grande (um sprite). Para acessar um snapshot específico, analise suas coordenadas no arquivo VTT, conforme ilustrado na figura a seguir:

Uso
-
Snapshot de capa
Após o upload de um vídeo, o ApsaraVideo VOD gera automaticamente snapshots de capa. Esse processo é gratuito.
-
Snapshots iniciados por API
Inicie uma tarefa de snapshot para um vídeo específico chamando a API de envio de job de snapshot de mídia. Para obter mais informações, consulte enviar job de snapshot de mídia. Este método serve para gerar tanto snapshots normais quanto snapshots sprite.
-
Como recuperar snapshots
Recupere as informações de snapshot das seguintes formas:
Receba uma notificação de callback de conclusão de snapshot de vídeo.
Chame a API GetVideoInfo para obter informações padrão do snapshot.
Chame a API de consulta de dados de snapshot para consultar dados de snapshot.
-
Como excluir snapshots
Atualmente, o ApsaraVideo VOD não suporta o gerenciamento de snapshots independentemente de seus vídeos source. Ao excluir um vídeo, todas as informações de snapshot e arquivos de imagem associados também são excluídos permanentemente. Essa ação não pode ser desfeita.
Gerenciar modelos de snapshot
Jobs de snapshot envolvem muitos parâmetros, e especificá-los individualmente para cada job é complexo e propenso a erros. Os modelos de snapshot permitem configurar esses parâmetros uma única vez e reutilizá-los especificando um ID de modelo ao enviar um job.
Gerencie os modelos de snapshot pelo console ou por meio de APIs.
-
Gerenciar pelo console
Adicione, modifique e exclua modelos de snapshot no console do ApsaraVideo VOD.

-
Gerenciar usando APIs
Também é possível gerenciar modelos chamando as APIs relevantes. Para obter mais informações, consulte Modelos de snapshot.
Parâmetros de snapshot
-
Configurações de snapshot normal
NotaEsta seção descreve os principais parâmetros para snapshots normais. Para obter a lista completa de parâmetros, consulte SnapshotConfig.
Parâmetro da API
Parâmetro do console
Descrição
FrameType
Tipo de quadro
O tipo de quadro a ser capturado. Os valores válidos são
intra(keyframe) enormal(não keyframe).A captura de keyframes geralmente é mais rápida do que a de quadros comuns.
SpecifiedOffsetTime
Hora de início
A hora inicial para capturar snapshots, em milissegundos (ms). Deve ser um número inteiro positivo.
Para uma captura de quadro único,
SpecifiedOffsetTimerepresenta o momento exato em que a captura é feita.Count
Número de snapshots
A quantidade total de snapshots a serem gerados.
Interval
Intervalo de snapshot
O intervalo de tempo entre os snapshots.
-
Count> 1: Captura um total deCountsnapshots no intervalo especificado. -
Count> 1 eInterval= 0: CapturaCountsnapshots uniformemente espaçados ao longo da duração do vídeo. SeFrameTypeforintrae o número de keyframes for menor queCount, a quantidade real de snapshots gerados será inferior aCount. -
Count= 1: Captura um único snapshot.
Width
Largura
A largura do snapshot em pixels. O valor deve estar entre 8 e 4096, inclusive.
NotaObservações sobre
WidtheHeight:-
Se você não especificar largura e altura, os snapshots terão as mesmas dimensões do vídeo de entrada.
-
Se especificar apenas a largura ou a altura, a outra dimensão será dimensionada para preservar a proporção original do vídeo de entrada.
Height
Altura
A altura do snapshot em pixels. O valor deve estar entre 8 e 4096, inclusive.
-
-
Configurações de snapshot WebVTT
Além dos parâmetros de snapshot normal, configure também
FormateSubOut.Parâmetro da API
Parâmetro do console
Descrição
Format
Formato de arquivo
Especifica que um arquivo VTT indexando os snapshots será gerado.
NotaEste parâmetro é obrigatório apenas para snapshots WebVTT e seu valor deve ser
VTT.SubOut
Este parâmetro é obrigatório apenas para snapshots WebVTT.
Exemplo:
{ "IsSptFrag":"true" }IsSptFrag: Controla como as imagens de snapshot são geradas para o arquivo VTT. Defina comofalsepara armazenar imagens individualmente. Defina comotruepara unir as imagens em uma única imagem grande (sprite). -
Configurações de snapshot sprite
NotaEsta seção descreve os principais parâmetros para snapshots sprite. Para obter a lista completa de parâmetros, consulte SpriteSnapshotConfig.
Parâmetro da API
Parâmetro do console
Descrição
CellWidth
Largura da imagem pequena
A largura e a altura das imagens pequenas dentro do sprite. Se você não definir esses parâmetros, as imagens pequenas terão as mesmas dimensões dos snapshots normais. Caso especifique apenas uma dimensão, a outra será dimensionada automaticamente para manter a proporção.
CellHeight
Altura da imagem pequena
KeepCellPic
Excluir imagens originais
Especifica se as imagens originais de um sprite (os snapshots normais usados para criar o sprite) devem ser mantidas. Os valores válidos são
delete(não manter) ekeep.NotaRecomendamos excluir as imagens originais, a menos que você precise delas.
Color
Cor de fundo
A cor de fundo do sprite. Para obter mais informações, consulte Configurações de cor.
NotaValores RGB não são suportados.
A figura a seguir ilustra esses parâmetros.
