Variables
Variables
Sección titulada «Variables»En senta-streamer hay varios tipos de variables que puedes usar en los perfiles:
- Variables estándar:
${i}- flujo de entrada,${o}- flujo de salida - Variables personalizadas (texto, booleano y selección)
Especificación de variables personalizadas
Sección titulada «Especificación de variables personalizadas»Después de la palabra clave WHERE en el perfil, comienza un Array JSON con la especificación de las variables.
Para cada variable se crea un objeto con los siguientes campos:
desc- descripción de la variable, que usamos en el comandoname- nombre, que se usará en el formulario para agregar flujodescription- descripción de la variable, que se usará en el formulario para agregar flujo (opcional)command- parte del comando, donde$valueserá reemplazado por el valor del formulario para agregar flujo (ejemplo-gpu $value).default- valor por defecto, puede estar vacío
Por ejemplo:
// Perfil simple de inicio para codificación HD h264// Puedes cambiarlo, bifurcarlo y compartirlo con otrosffmpeg -y -hide_banner -i ${i} -map 0:0 -map 0:1 -c:v h264_nvenc ${gpu} -preset fast -profile:v main -filter:v yadif -forced-idr 1 -b:v 4M -c:a aac -b:a 128k -r 25 -g 8 -keyint_min 13 -f mpegts ${o}NAME "HD h264"WHERE[ { "desc": "gpu", "data": { "name": "GPU", "description": "Selecciona la GPU que usará el flujo, deja vacío si no usas GPU", "command": "-gpu $value", "default": "" } }]En este ejemplo:
Variables estándar:
Variables estándar (no necesitas escribir información sobre ellas):
${i} - flujo de entrada, puedes usar más de una entrada, en el menú para agregar flujo se numerarán desde 0 (entrada #0, entrada #1 …)
${o} - flujo de salida, puedes usar más de una salida, en el menú para agregar flujo se numerarán desde 0
Variables personalizadas:
(en este ejemplo, puedes agregar lo que necesites):
${gpu} - número del adaptador gpu
Nota: el valor por defecto en este ejemplo está vacío (en el comando NO se añade -gpu), pero puedes establecer un valor por defecto
Variables de texto
Sección titulada «Variables de texto»Al formar la línea de comando, las variables de texto reemplazan la variable por el texto personalizado.
Ejemplo de una variable de texto:
{"desc": "logo","data": { "name": "Logo path", "description": "Indica la ruta al archivo de imagen con el logo", "command": "-i $value", "default": ""}}En el perfil, la variable ${logo} será reemplazada por -i $value.
En el editor de flujos, se añade un campo con la etiqueta Logo path, con la descripción Indica la ruta al archivo de imagen con el logo, y su valor reemplazará $value.
Al final, tenemos un perfil:
ffmpeg -i ${i} ${logo} bla-bla ${o}NAME "TEST"WHERE[ { "desc": "logo", "data": { "name": "Logo path", "description": "Indica la ruta al archivo de imagen con el logo", "command": "-i $value", "default": "" } }]En la configuración del flujo, especificamos:
input#0: 'inp.ts'output#0: 'udp://out:1234'logo: 'logo.ts'Como resultado, el comando de inicio será:
ffmpeg -i inp.ts -i logo.ts bla-bla udp://out:1234Variables booleanas
Sección titulada «Variables booleanas»Las variables booleanas insertan texto al formar el comando de inicio si el valor es true y no lo insertan si el valor es false.
Para establecer este tipo necesitas añadir "extendtion": {"type": "checkbox",} en la estructura de la variable
Ejemplo:
// Ejemplo de variable booleana// Esta variable se usa para establecer la opción -y, que es necesaria para sobrescribir el archivo de salida"desc": "rev","data": { "name": "Rewrite file", "description": "Esta opción es necesaria si como salida usas un archivo local", "command": "-y", "default": "", "extendtion": { "type": "checkbox", }}Esta variable añade la bandera -y si la casilla está marcada.
Variables de selección
Sección titulada «Variables de selección»Son similares a las variables de texto, solo que el usuario puede elegir entre valores predefinidos. Es útil, por ejemplo, para establecer la resolución de imagen o el códec.
Debes añadir "extendtion": {"type": "select"} en la estructura de la variable y agregar las opciones predefinidas en "options": [...]
Ejemplo.
// Ejemplo de variable de selección// Esta variable se usa para seleccionar el códec de video"desc": "cv","data": { "name": "Video codec", "description": "Para copiar el códec original selecciona copy", "command": "-c:v $value", "default": "", "extendtion": { "type": "select", "options": [ "h264_nvenc", "libx264", "libx265", "hevc_nvenc", "libaom-av1", "libvpx", "libvpx-vp9", "copy" ] }}Variable de generación automática
Sección titulada «Variable de generación automática»Esta funcionalidad se está desarrollando para la integración con otros sistemas, como Astra Cesbo. Pero puedes usarla manualmente. Por el momento, se ha implementado la generación automática de entradas.
Por ejemplo, un sistema externo puede enviar flujos con direcciones udp://192.168.0.1:9000 - udp://192.168.0.1:9999 a Senta para su posterior transcodificación. Sin embargo, para crear un proceso, necesitamos saber un puerto disponible (ya que el puerto puede estar ocupado por otro flujo). Para permitir que Senta asigne un puerto, necesitamos:
Ir a Configuración, donde hay una sección llamada Configuración de generación automática de entradas. Allí, establecemos el puerto inicial: 9000, puerto final: 9999, e IP de la interfaz: 192.168.0.1. Luego, aplicamos la configuración.

Al crear un proceso, asignamos la dirección de entrada como udp://${host}:${port} (
o asignamos la dirección al crear el flujo presionando el botón Set auto generation). Así, se crea un proceso con la entrada udp://192.168.0.1:9000, suponiendo que el puerto 9000 esté libre en el servidor.
Senta monitorea los puertos libres/ocupados. Cuando se elimina un flujo, el puerto que ocupaba queda libre.