Sistema de perfiles
¿Qué es un perfil?
Sección titulada «¿Qué es un perfil?»Un Perfil es una entidad en senta que representa un comando para ejecutar el programa ffmpeg, donde los parámetros como las transmisiones de entrada y salida, así como otros parámetros definidos por el usuario, se reemplazan por variables.
Ejemplo:
ffmpeg -re -stream_loop -1 -i input.ts -vcodec mpeg4 -aspect 16:9 -f mpegts udp://bla-bla:1234Este ejemplo inicia una transmisión UDP con la emisión estática del archivo input.ts a la dirección udp://bla-bla:1234.
Supongamos que queremos usar senta para transmitir un archivo estático. Podemos simplemente añadir una línea a los perfiles, o podemos reemplazar las transmisiones de entrada y salida por variables (${i} y ${o} respectivamente), obteniendo así un perfil de transcodificación universal que se puede adaptar a otras transmisiones. Como resultado, obtenemos:
ffmpeg -re -stream_loop -1 -i ${i} -vcodec mpeg4 -aspect 16:9 -f mpegts ${o}Estructura del perfil
Sección titulada «Estructura del perfil»Además del perfil habitual con variables estándar como ${i} y ${o}, puedes añadir algunas extensiones a tu perfil.
Puedes establecer el NAME del perfil. Este nombre se usará, por ejemplo, cuando cargues el perfil en github. Es un campo opcional.
Ejemplo:
ffmpeg -y -hide_banner -i ${i} -map 0:0 -map 0:1 -c:v h264_nvenc -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"Luego, puedes añadir variables personalizadas después de la palabra clave WHERE.
Ejemplo
// Perfil simple de inicio para codificación HD h264// Puedes modificarlo, 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á la transmisión, deja vacío si no usas GPU", "command": "-gpu $value", "default": "" } }]Nota: puedes añadir líneas de comentarios a tu perfil que comiencen con //
Repositorio de perfiles
Sección titulada «Repositorio de perfiles»Puedes encontrar perfiles listos para usar en el repositorio: https://github.com/cesbo/senta-streamer-profiles
Cómo añadir o modificar un perfil
Sección titulada «Cómo añadir o modificar un perfil»Para añadir tu perfil o realizar cambios en uno existente:
-
Haz un fork del repositorio : Ve a https://github.com/cesbo/senta-streamer-profiles y haz clic en el botón “Fork” en la esquina superior derecha de la página. Esto creará una copia del repositorio en tu cuenta de GitHub.
-
Clona tu fork : Abre tu terminal (o Git Bash en Windows) y ejecuta el comando
git clone https://github.com/your_username/senta-streamer-profiles, reemplazando “your_username” por tu nombre de usuario de GitHub. -
Crea una nueva rama : Entra en el repositorio clonado usando el comando
cd senta-streamer-profiles, luego crea una nueva rama congit checkout -b add_profile, donde “add_profile” es el nombre de tu rama. -
Agrega tu archivo : Coloca tu archivo de perfil en el directorio /profiles dentro del repositorio clonado.
-
Agrega el archivo al staging y haz commit : Ejecuta los siguientes comandos en tu terminal:
Ventana de terminal git add profiles/your_file_namegit commit -m "Added profile: %your_file_name%"Reemplaza “your_file_name” por el nombre de tu archivo.
-
Sube tus cambios a tu repositorio de GitHub : Ejecuta el comando
git push origin add_profile, donde “add_profile” es el nombre de tu rama. -
Abre un Pull Request (PR) : Después de subir tus cambios, ve a la página de tu repositorio forkeado en GitHub. Allí deberías ver un botón “Compare & pull request” para tu nueva rama. Haz clic en él.
-
Crea un Pull Request : Revisa los cambios que quieres hacer, asegúrate de que todo esté correcto y luego haz clic en el botón “Create pull request”.
-
Espera la revisión y el merge : Otros colaboradores del proyecto pueden revisar tu Pull Request, dejar comentarios o pedir cambios. Una vez que tu PR sea revisado y aprobado, uno de los mantenedores del proyecto hará el merge de tu rama a la rama principal.
¡Listo! Tu archivo de perfil ahora debería estar agregado al repositorio público.