Extraer miniaturas de videos
🤖/video/thumbs extrae cualquier cantidad de imágenes de videos para usarlas como miniaturas.

Configura smart: true para seleccionar mediante IA imágenes de vista previa destacadas en lugar de extraer fotogramas solo a intervalos regulares. El Robot puntúa los fotogramas candidatos según claridad, brillo, composición, rostros, expresiones, acción e interés visual y devuelve los mejores count fotogramas en orden cronológico. Los resultados inteligentes incluyen file.meta.smart_score y file.meta.smart_reasons. Si la puntuación mediante IA no está disponible, la Assembly continúa con los fotogramas candidatos en el orden alternativo. No necesitas proporcionar credenciales de IA.
Precio de la IA
Se siguen aplicando los cargos habituales de procesamiento de /video/thumbs. El análisis de fotogramas mediante IA se factura por separado al costo del proveedor subyacente más un recargo de Transloadit del 50 %. El cargo exacto de IA varía según el número de fotogramas candidatos, el modelo seleccionado internamente y el precio del proveedor, así como el tamaño de los datos de imagen.
smart_max_candidates es el principal control de costo y latencia. El Robot analiza hasta tres candidatos por cada miniatura solicitada, con el límite de smart_max_candidates, pero nunca menos de count. Con los valores predeterminados count: 8 y smart_max_candidates: 20, analiza 20 fotogramas y devuelve los 8 mejores. Reduce el límite de candidatos para disminuir el costo y la latencia de la IA; auméntalo para ofrecer más fotogramas a la IA.
Usa count con la selección inteligente. El parámetro offsets sirve para extraer marcas de tiempo exactas y no debe combinarse con smart.
Ejemplo de uso
Selecciona con IA tres miniaturas visualmente atractivas de cada video subido:
{
"steps": {
"thumbnailed": {
"robot": "/video/thumbs",
"use": ":original",
"count": 3,
"ffmpeg_stack": "v7",
"smart": true,
"smart_max_candidates": 12
}
}
}Parámetros
interpolateboolean | Record<string, boolean>Controla si las Assembly Variables se interpolan en campos de instrucciones individuales.
De forma predeterminada, la mayoría de los campos de instrucciones de los Robots interpolan Assembly Variables. Establece esta opción en
falsepara tratar todos los campos de instrucciones como texto literal, o establece la ruta de un campo individual enfalsepara tratar únicamente ese campo como texto literal. En el caso de los campos específicos de un Robot que son literales de forma predeterminada, establece esta opción entrueo la ruta de ese campo entruepara volver a habilitar la interpolación.Usa nombres de campos como
patho rutas con puntos comoffmpeg.vfpara los objetos anidados.output_metaRecord<string, boolean> | boolean | Array<string>Te permite especificar un conjunto de metadatos cuyo cálculo requiere más recursos de CPU y que, por lo tanto, está desactivado de forma predeterminada para que tus Assemblies se procesen rápidamente.
Para imágenes, puedes añadir
"has_transparency": truea este objeto para determinar si la imagen contiene partes transparentes y"dominant_colors": truepara extraer un array de códigos de color hexadecimales de la imagen.Para imágenes, también puedes añadir
"blurhash": truepara extraer una cadena BlurHash, una representación compacta de un marcador de posición para la imagen que resulta útil para mostrar una vista previa desenfocada mientras se carga la imagen completa.Para videos, puedes añadir el parámetro
"colorspace": truepara extraer el espacio de color del video de salida.Para videos, también puedes añadir
"interlaced": truepara detectar si el video está entrelazado. Esto combina el indicadorfield_orderde ffprobe, cuyo costo en recursos de procesamiento es bajo, con una pasada de muestreo limitada medianteidetsobre los primeros fotogramas de la fuente, y exponeinterlaced,field_ordery un objeto de diagnósticointerlace_detectionenfile.meta. Esto requiere muchos recursos computacionales y se factura en consecuencia.Para audio, puedes añadir
"mean_volume": truepara obtener un único valor que represente el volumen promedio del archivo de audio.También puedes establecerlo en
falsepara omitir la extracción de metadatos y acelerar la transcodificación.user_metaRecord<string, any>(valor predeterminado:{})Añade metadatos personalizados a cada archivo emitido por este Robot sin modificar el contenido del archivo.
Los valores se combinan con los
user_metaexistentes en el archivo de entrada. Si ambos objetos contienen la misma clave, el valor de este Robot tiene prioridad. Se admiten Assembly Variables, por ejemplo{ "internal_file_id": "${file.id}" }.resultboolean(valor predeterminado:false)Indica si los resultados de este Step deben aparecer en el Assembly Status JSON
queuebatchEstablecer la cola en «batch» reduce manualmente la prioridad de los Jobs de este Step para evitar consumir cupos prioritarios con Jobs que no necesitan un tiempo de espera cero en la cola
force_acceptboolean(valor predeterminado:false)Forzar a un Robot a aceptar un tipo de archivo que habría ignorado.
De forma predeterminada, los Robots ignoran los archivos que no reconocen. 🤖/video/encode, por ejemplo, ignorará sin problemas las imágenes de entrada.
Si configuras el parámetro
force_acceptcomotrue, puedes forzar a los Robots a aceptar todos los archivos que reciban. Esto normalmente provocará errores y solo debe usarse para depuración o para abordar casos extremos.ignore_errorsboolean | Array<meta | execute>(valor predeterminado:[])Ignorar errores durante fases específicas del procesamiento.
Establecer este parámetro en
["meta"]hará que el Robot ignore los errores durante la extracción de metadatos.Establecer este parámetro en
["execute"]hará que el Robot ignore los errores durante la fase principal de ejecución.Configurar este parámetro como
trueequivale a["meta", "execute"]y hará que se ignoren los errores en ambas fases.usestring | Array<string> | Array<object> | objectEspecifica qué Step o Steps se usarán como entrada.
- Puedes elegir cualquier nombre para los Steps, excepto
":original"(reservado para las subidas de usuarios gestionadas por Transloadit) - Puedes proporcionar varios Steps como entrada mediante arrays:
{ "use": [ ":original", "encoded", "resized" ] } - También puedes etiquetar los Steps de entrada con
aspara comunicar la intención semántica a los Robots:{ "use": [ { "name": ":original", "as": "image" }, { "name": ":original", "as": "mask" } ] }
ConsejoProbablemente eso sea todo lo que necesitas saber sobre
use, pero puedes consultar los casos de uso avanzados.- Puedes elegir cualquier nombre para los Steps, excepto
ffmpegobjectUn objeto de parámetros que se pasará a FFmpeg. Si se utiliza un ajuste preestablecido, las opciones especificadas se combinan con las de ese ajuste. Para consultar las opciones disponibles, revisa la documentación de FFmpeg. Las opciones especificadas aquí tienen prioridad sobre las del ajuste preestablecido.
ffmpeg_stackv6 | v7 | v8 | string(valor predeterminado:"v7")Selecciona la versión del stack de FFmpeg que se usará para el encoding. Actualmente recomendamos usar «v7». Las versiones exactas «v6.0.0», «v7.0.0» y «v8.0.0» son valores heredados que siguen aceptándose por compatibilidad con versiones anteriores. También se aceptan los valores obsoletos «v5.x».
countstring | number(valor predeterminado:8)La cantidad de miniaturas que se extraerán. Como algunos videos tienen duraciones incorrectas, en casos excepcionales la cantidad real de miniaturas generadas puede ser menor. La cantidad máxima de miniaturas que permitimos actualmente es 999.
Las miniaturas se toman a intervalos regulares, determinados al dividir la duración del video entre la cantidad. Por ejemplo, una cantidad de 3 generará miniaturas en el 25 %, el 50 % y el 75 % del video.
Para extraer miniaturas de marcas de tiempo específicas, utiliza el parámetro
offsets.offsetsArray<string | number> | Array<string>(valor predeterminado:[])Un array de posiciones temporales expresadas en segundos dentro del archivo, como
[ 2, 45, 120 ]. También se pueden indicar posiciones en milisegundos mediante valores decimales. Por ejemplo, una posición de 1250 milisegundos se representaría con1.25. Las posiciones también pueden expresarse como porcentajes, por ejemplo,[ "2%", "50%", "75%" ].Esta opción no se puede usar con el parámetro
county tiene prioridad si se especifican ambos. Las posiciones fuera de rango se ignoran sin mostrar ningún aviso.formatjpeg | jpg | png(valor predeterminado:"jpeg")El formato de la miniatura extraída. Los valores compatibles son
"jpg","jpeg"y"png". Aunque especifiques"jpeg"como formato, las miniaturas resultantes tendrán la extensión de archivo"jpg".widthstring | numberEl ancho de la miniatura, en píxeles. El valor predeterminado es el ancho original del video.
heightstring | numberLa altura de la miniatura, en píxeles. El valor predeterminado es la altura original del video.
resize_strategycrop | fit | fillcrop | min_fit | pad | stretch(valor predeterminado:"pad")Una de las estrategias de redimensionamiento disponibles.
backgroundstring(valor predeterminado:"#00000000")El color de fondo de las miniaturas resultantes en el formato
"rrggbbaa"(rojo, verde, azul, alfa) cuando se usa con la estrategia de redimensionamiento"pad". El color predeterminado es negro.rotate0 | 90 | 180 | 270 | 360(valor predeterminado:0)Fuerza la rotación del video según el número entero de grados especificado. Actualmente, solo se admiten múltiplos de 90. Corregimos automáticamente la orientación de muchos videos cuando la cámara proporciona esta información. Esta opción solo es útil para videos que requieren rotación porque la cámara no la detectó.
input_codecstringEspecifica el códec de entrada que se usará al decodificar el video. Esto es útil para videos con códecs especiales que requieren decodificadores específicos.
smartboolean(valor predeterminado:false)Cuando se establece en
true, habilita la selección inteligente de miniaturas mediante IA. En lugar de devolver miniaturas a intervalos regulares, el Robot analiza los fotogramas candidatos y selecciona los más atractivos visualmente.La IA evalúa los fotogramas según:
- La claridad visual (evita fotogramas borrosos u oscuros)
- La calidad de la composición
- La presencia de rostros y las expresiones
- La acción y el movimiento (evita fotogramas de transición)
- El interés visual general
Se siguen aplicando los cargos habituales de procesamiento de
/video/thumbs. El análisis de fotogramas mediante IA se factura por separado al costo del proveedor subyacente más un recargo de Transloadit del 50 %. No necesitas proporcionar credenciales de IA.smart_max_candidatesstring | number(valor predeterminado:20)El tamaño máximo del conjunto adicional de candidatos cuando
smartestrue. El Robot analiza hasta tres candidatos por cada miniatura solicitada, con el límite de este valor, pero nunca menos candidatos que elcountsolicitado.Un número mayor puede producir mejores resultados, pero aumenta el tiempo de procesamiento y el costo de IA. Con los valores predeterminados
count: 8ysmart_max_candidates: 20, el Robot analiza 20 fotogramas y devuelve los 8 mejores en orden cronológico.Este parámetro solo se usa cuando
smartestrue.