Extrair miniaturas de vídeos
🤖/video/thumbs extrai qualquer quantidade de imagens de vídeos para uso como prévias.

Defina smart: true para selecionar imagens de prévia de destaque com IA em vez de extrair quadros apenas em intervalos regulares. O Robot pontua os quadros candidatos com base em nitidez, brilho, composição, rostos, expressões, ação e interesse visual, e retorna os melhores count quadros em ordem cronológica. Os resultados da seleção inteligente incluem file.meta.smart_score e file.meta.smart_reasons. Se a pontuação por IA estiver indisponível, a Assembly continua com os quadros candidatos na ordem alternativa. Não são necessárias credenciais de IA.
Preços de IA
As cobranças normais de processamento de /video/thumbs continuam sendo aplicadas. A análise de quadros por IA é cobrada separadamente pelo custo do provedor utilizado mais um acréscimo de 50% da Transloadit. A cobrança exata de IA varia conforme o número de quadros candidatos, o modelo selecionado internamente, os preços do provedor e o tamanho do payload das imagens.
smart_max_candidates é o principal controle de custo e latência. O Robot analisa até três candidatos por miniatura solicitada, limitado por smart_max_candidates, mas nunca menos que count. Com os valores padrão de count: 8 e smart_max_candidates: 20, ele analisa 20 quadros e retorna os melhores 8. Reduza o limite de candidatos para diminuir o custo e a latência da IA; aumente-o para dar à IA mais quadros para escolher.
Use count com a seleção inteligente. Para extrair consistentemente os instantes exatos com offsets, defina smart: false.
Embora as miniaturas sejam extraídas dos vídeos em paralelo, nós as ordenamos antes de adicioná-las aos resultados da Assembly. Assim, a ordem em que aparecem nos resultados reflete a ordem em que aparecem no vídeo. Você também pode confirmar isso verificando a chave de metadados thumb_index.
Para ver um Template que vai do upload à imagem de pôster, o uso de SDKs e as verificações de publicação, consulte o guia de fluxo de trabalho de vídeo HTML (English). A demonstração de vídeo e S3 (English) inclui uma entrada gravada e quadros extraídos.
Exemplo de uso
Selecione três miniaturas visualmente atraentes de cada vídeo carregado com IA:
{
"steps": {
"thumbnailed": {
"count": 3,
"ffmpeg_stack": "v7",
"robot": "/video/thumbs",
"smart": true,
"smart_max_candidates": 12,
"use": ":original"
}
}
}Parâmetros
interpolateboolean | Record<string, boolean>Controla se as Assembly Variables são interpoladas em campos individuais de instruções.
Por padrão, a maioria dos campos de instruções dos Robots interpola Assembly Variables. Defina isso como
falsepara tratar todos os campos de instruções como texto literal, ou defina o caminho de um campo individual comofalsepara tratar apenas esse campo como texto literal. Para campos específicos de um Robot que são literais por padrão, defina isso comotrueou defina o caminho desse campo comotruepara voltar a usar a interpolação.Use nomes de campos como
pathou caminhos com pontos comoffmpeg.vfpara objetos aninhados.output_metaRecord<string, boolean> | boolean | Array<string>Permite especificar um conjunto de metadados cujo cálculo exige mais CPU e que, por isso, vem desativado por padrão para manter o processamento das suas Assemblies rápido.
Para imagens, você pode adicionar
"has_transparency": trueneste objeto para extrair se a imagem contém partes transparentes e"dominant_colors": truepara extrair um array de códigos de cores hexadecimais da imagem.Para imagens, você também pode adicionar
"blurhash": truepara extrair uma string BlurHash — uma representação compacta de um placeholder da imagem, útil para exibir uma prévia desfocada enquanto a imagem completa carrega.Para vídeos, você pode adicionar o parâmetro
"colorspace": truepara extrair o espaço de cores do vídeo de saída.Para vídeos, você também pode adicionar
"interlaced": truepara detectar se o vídeo é entrelaçado. Isso combina a flag computacionalmente baratafield_orderdo ffprobe com uma passagem de amostragemidetlimitada sobre os primeiros quadros da origem, expondointerlaced,field_ordere um objeto de diagnósticointerlace_detectionemfile.meta. Isso é computacionalmente caro e cobrado de acordo.Para áudio, você pode adicionar
"mean_volume": truepara obter um único valor que representa o volume médio do arquivo de áudio.Você também pode definir isso como
falsepara pular a extração de metadados e acelerar a transcodificação.user_metaRecord<string, any>(padrão:{})Adiciona metadados JSON personalizados a cada arquivo emitido sem modificar seu conteúdo. Objetos e arrays aninhados são suportados.
A herança depende do Robot. Os valores são mesclados com o
user_metaexistente no arquivo de saída; o Step atual substitui as chaves de nível superior com o mesmo nome. Atribua explicitamente as chaves necessárias quando um Robot criar novas saídas.Nos Steps de processamento,
${file.*}se refere à primeira entrada e${result.*}ao arquivo emitido. Os valores são avaliados para cada saída após a execução do Robot, antes da extração subsequente de metadados e do armazenamento temporário. Em:original, os valores são avaliados para cada upload antes da extração de metadados.Os Steps subsequentes leem
${file.user_meta.key}. Consulte Metadados personalizados para ver um exemplo completo e as regras de herança.resultboolean(padrão:false)Se os resultados deste Step devem estar presentes no Assembly Status JSON
queuebatchDefinir a fila como “batch” rebaixa manualmente a prioridade dos Jobs deste Step, para evitar o consumo de vagas prioritárias de Jobs em Jobs que não precisam de tempo zero de espera na fila
force_acceptboolean(padrão:false)Forçar um Robot a aceitar um tipo de arquivo que ele teria ignorado.
Por padrão, os Robots ignoram arquivos que não conhecem. O 🤖/video/encode, por exemplo, ignora tranquilamente imagens de entrada.
Com o parâmetro
force_acceptdefinido comotrue, você pode forçar os Robots a aceitar todos os arquivos enviados a eles. Isso normalmente leva a erros e só deve ser usado para depuração ou para lidar com casos extremos.ignore_errorsboolean | Array<meta | execute>(padrão:[])Ignorar erros durante fases específicas do processamento.
Definir isso como
["meta"]fará com que o Robot ignore erros durante a extração de metadados.Definir isso como
["execute"]fará com que o Robot ignore erros durante a fase principal de execução.Definir isso como
trueequivale a["meta", "execute"]e fará com que erros sejam ignorados nas duas fases.usestring | Array<string> | Array<object> | objectEspecifica quais Steps usar como entrada.
- Você pode escolher qualquer nome para os Steps, exceto
":original"(reservado para uploads de usuários tratados pela Transloadit) - Você pode fornecer vários Steps como entrada usando arrays:
{ "use": [ ":original", "encoded", "resized" ] } - Você também pode marcar os Steps de entrada com
aspara transmitir intenção semântica aos Robots:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
DicaProvavelmente é tudo o que você precisa saber sobre
use, mas você pode ver os casos de uso avançados.- Você pode escolher qualquer nome para os Steps, exceto
ffmpegobjectUm objeto de parâmetros a ser passado para o FFmpeg. Se uma predefinição for usada, as opções especificadas são mescladas sobre as da predefinição. Para ver as opções disponíveis, consulte a documentação do FFmpeg. As opções especificadas aqui têm precedência sobre as opções da predefinição.
ffmpeg_stackv6 | v7 | v8 | string(padrão:"v6.0.0")Seleciona a versão do stack do FFmpeg a ser usada na codificação. Atualmente, recomendamos usar “v7”. As versões exatas “v6.0.0”, “v7.0.0” e “v8.0.0” são valores legados que continuam sendo aceitos por compatibilidade retroativa. Valores “v5.x” descontinuados também são aceitos.
countstring | number(padrão:8)O número de miniaturas a extrair. Como alguns vídeos têm durações incorretas, o número real de miniaturas geradas pode ser menor em casos raros. O número máximo de miniaturas que permitimos atualmente é 999.
As miniaturas são extraídas em intervalos regulares, determinados pela divisão da duração do vídeo pela quantidade. Por exemplo, uma quantidade de 3 produzirá miniaturas em 25%, 50% e 75% ao longo do vídeo.
Para extrair miniaturas em instantes específicos, use o parâmetro
offsets.offsetsArray<string | number> | Array<string>(padrão:[])Um array de deslocamentos que representam segundos da duração do arquivo, como
[ 2, 45, 120 ]. Também é possível usar durações em milissegundos com valores decimais. Por exemplo, um deslocamento de 1250 milissegundos seria representado por1.25. Os deslocamentos também podem ser valores percentuais, como[ "2%", "50%", "75%" ].Esta opção não pode ser usada com o parâmetro
counte tem precedência se ambos forem especificados. Deslocamentos fora do intervalo são ignorados silenciosamente.Quando
smartétrue, a seleção inteligente ignoraoffsetse usacountpara selecionar entre seus próprios instantes candidatos. Se nenhum candidato da seleção inteligente puder ser extraído, o Robot recorre à extração padrão, na qualoffsetstem precedência. Usesmart: falsepara extrair consistentemente os instantes especificados.formatjpeg | jpg | png(padrão:"jpeg")O formato da miniatura extraída. Os valores aceitos são
"jpg","jpeg"e"png". Mesmo que você especifique o formato como"jpeg", as miniaturas resultantes terão a extensão de arquivo"jpg".widthstring | numberA largura da miniatura, em pixels. O padrão é a largura original do vídeo.
heightstring | numberA altura da miniatura, em pixels. Por padrão, usa a altura original do vídeo.
resize_strategycrop | fit | fillcrop | min_fit | pad | stretch(padrão:"pad")backgroundstring(padrão:"#00000000")A cor de fundo das miniaturas resultantes no formato
"rrggbbaa"(vermelho, verde, azul, alfa) quando usada com a estratégia de redimensionamento"pad". A cor padrão é preta.rotate0 | 90 | 180 | 270 | 360(padrão:0)Força a rotação do vídeo pelo número inteiro de graus especificado. Atualmente, apenas múltiplos de 90 são aceitos. Corrigimos automaticamente a orientação de muitos vídeos quando ela é fornecida pela câmera. Esta opção só é útil para vídeos que precisam de rotação porque a orientação não foi detectada pela câmera.
input_codecstringEspecifica o codec de entrada a usar ao decodificar o vídeo. Isso é útil para vídeos com codecs especiais que exigem decodificadores específicos.
smartboolean(padrão:false)Quando definido como
true, habilita a seleção inteligente de miniaturas com IA. Em vez de retornar miniaturas em intervalos regulares, o Robot analisará quadros candidatos e selecionará os mais atraentes visualmente.A IA avalia os quadros com base em:
- Nitidez visual (evitando quadros desfocados ou escuros)
- Qualidade da composição
- Presença de rostos e expressões
- Ação e movimento (evitando quadros de transição)
- Interesse visual geral
As cobranças normais de processamento de
/video/thumbscontinuam sendo aplicadas. A análise de quadros por IA é cobrada separadamente pelo custo do provedor utilizado mais um acréscimo de 50% da Transloadit. Você não precisa fornecer credenciais de IA.O modo inteligente gera seus próprios instantes candidatos em intervalos regulares; use
smart: falsecomoffsetsquando precisar de instantes especificados. As miniaturas escolhidas pela seleção inteligente são retornadas em ordem cronológica, não por pontuação. Inspecionemeta.thumb_offset,meta.smart_scoreemeta.smart_reasonsao avaliar a seleção.Se a pontuação por IA falhar, o Robot seleciona entre os candidatos extraídos em ordem cronológica e registra o motivo de ter recorrido à alternativa. Se nenhum candidato puder ser extraído, ele tenta a extração padrão de miniaturas. Uma Assembly concluída não garante uma imagem de pôster representativa ou segura para publicação; verifique se existem arquivos de saída e aplique a política de revisão da sua aplicação.
smart_max_candidatesstring | number(padrão:20)O tamanho máximo do conjunto de candidatos quando
smartétrue. O Robot analisa até três candidatos por miniatura solicitada, limitado por este valor, mas nunca analisa menos candidatos do que o valor solicitado decount.Um número maior pode gerar resultados melhores, mas aumenta o tempo de processamento e o custo de IA. Com os valores padrão de
count: 8esmart_max_candidates: 20, o Robot analisa 20 quadros e retorna os melhores 8 em ordem cronológica.Este parâmetro só é usado quando
smartétrue.