Sistema de perfiles
¿Qué es un perfil?
Sección titulada «¿Qué es un perfil?»Un Perfil es una entidad en senta-streamer 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-streamer 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.