Desde la versión 4.1.0, nuestro Middleware permite procesar cada mutimedia descargada mediante un comando definido por el usuario. Esto permite transformar los archivos descargados para hacerlos compatibles con su sistema.
Por ejemplo, al usar esta función, podrás usar una herramienta como ffmpeg o ImageMagick para transcodificar imágenes, audios y videos.
¿Cómo configurarlo?
Necesitas editar el archivo env.xml desde tu Middleware. Para hacerlo, busca la sección de transcodificadores que se ve así:
<Nueva clase = "org.eclipse.jetty.plus.jndi.Resource"> <Arg> </Arg> <Arg> transcodificadores </Arg> <Arg> <! [CDATA [ ]]> </Arg> </Nuevo>
<source_extension>, <destino_extension>, <comando>
- source_extension define la extensión del archivo descargado que debe procesarse usando command . Este parámetro no distingue entre mayúsculas y minúsculas.
- target_extension define la extensión del archivo generado.
-
comando es la ruta completa del comando que se llama para cada archivo descargado que tenga source_extensioncomo extensión de archivo.
- Este comando
- recibirá dos argumentos: el archivo entrante y el archivo donde debe escribir la salida ( comando input_file destination_file) .
- debe devolver un código de estado 0 en caso de éxito o un código diferente de 0 en caso contrario
- Este comando
<Nueva clase = "org.eclipse.jetty.plus.jndi.Resource"> <Arg> </Arg> <Arg> transcodificadores </Arg> <Arg> <! [CDATA [ png, jpg, / usr / bin / convert gif, jpg, / usr / bin / convert ]]> </Arg> </Nuevo>
como puedes ver en el ejemplo, debes declarar cada formato de entrada en una línea separada.
Siguiendo el ejemplo de un archivo multimedia descargado, el middleware llamará algo como
/ usr / bin / convert /tmp/media/https/foo/4645d1dc5f523182d5d1a6812071f3c17f974953.png /tmp/media/https/foo/4645d1dc5f523182d5d1a6812071f3c17g_974953.png
¿Cómo funciona?
La conversión ocurre durante el proceso de sincronización del Middleware Source. Cuando se descargan los datos de un Middleware Source específico, el middleware busca los medios descargados que tengan una de las extensiones declaradas y llama al comando configurado (si no se ha procesado previamente).
Si el comando tiene éxito, el archivo de destino que se pasa como segundo argumento al comando se utilizará como la ruta del archivo multimedia que se escribirá en el campo correspondiente (localMainMediaPath o similar) del archivo o tabla (según su modo de integración).
Troubleshooting
En caso de que la conversión no sea exitosa (por ejemplo: la ejecución falló), el middleware tratará el contenido como si no se hubiera descargado (el campo estará vacío).
Puedes verificar el mensaje de error para comprender mejor lo que está sucediendo:
- No se pudo encontrar el software configurado:
código 072: No se pudo descargar https://s3-assets0.flowics.com/web/uploads/production/generic-resources/asset/53115/versioned_efb3e1d0211f8dff706ba53ca066e383.png debido a: No se puede ejecutar el programa "usr / bin / onvert" (en el directorio "/run/user/1000/middleware/media/https/s3-assets0.flowics.com"): error = 2, no existe tal archivo o directorio
- La conversión falló:
código 072: No se pudo descargar https://s3-assets0.flowics.com/web/uploads/production/generic-resources/asset/53115/versioned_efb3e1d0211f8dff706ba53ca066e383.png debido a: error de transcodificación
- Problema de formato en env.xml:
Error al cargar la configuración del transcodificador: - en la línea 1: el campo está incompleto: 'x' Moribundo. Revise su 'env.xml' .