Cómo retransmitimos 24/7 en Twitch y YouTube

Guía por:
Topic
7 of 7

Si aún no lo has visto, transmitimos nuestras clases de Biblia 24/7 en YouTube y Twitch. Y en esta guía te mostraré cómo logramos esto técnicamente.

La respuesta básica

Usamos listas de reproducción FFmpeg en un droplet de Digital Ocean. Si esto no es lo que quieres usar, puedes salir ahora.


Esta guía será muy técnica y específica sobre cómo logré esto con nuestro material. Algunos elementos no serán aplicables a tu configuración, pero con suerte te darán alguna orientación.

1. Configurar el droplet

Usamos Digital Ocean para crear nuestro servidor remoto, pero podrías hacer la misma configuración en cualquier otra plataforma que ofrezca capacidades de línea de comandos para ejecutar scripts e instalar aplicaciones e incluya suficiente transferencia de datos mensual para transmitir 24/7.

Aquí están las especificaciones:

Pude usar el Droplet de nivel más bajo con 512MB de RAM y 10GB de disco y le he montado un disco de almacenamiento de volumen para los videos.

2. Cargue sus vídeos

En su unidad montada, o si está utilizando una plataforma de alojamiento genérica, cree una carpeta videos y organice los videos según cómo desee trabajar con ellos. Así es como los organizamos:

Todo se basa en slugs y secuencia. Nuestras Series tienen un slug (christianity-for-beginners) y luego cada lección tiene un slug con la Secuencia del Ítem antes de él.

Así es como se almacenan nuestros datos en nuestra base de datos y se utilizarán al generar listas de reproducción y al llevar un registro de dónde estamos en el orden de los videos.

3. Añadir FFmpeg

Abre tu línea de comandos y verifica si ya tienes ffmpeg instalado:

 ffmpeg -version

Si no lo hace, ejecute el siguiente código para configuraciones de Ubuntu:

 sudo apt update
 sudo apt install ffmpeg

Puede ejecutar la verificación de versión nuevamente para asegurarse de que esté allí.

4. Hacer la lista de reproducción

FFmpeg puede ejecutar una lista de videos basada en una lista de reproducción. Vamos a crear una. Llamo al archivo en nuestro sistema assets.txt y está ubicado en la carpeta raíz. Es muy básico y se ve algo así:

¡Nuestra lista completa de reproducción tiene más de 370 videos! Échale un vistazo.

En nuestra función FFmpeg más adelante le diremos a FFmpeg que haga un bucle, así que una vez que llegue al último video volverá al principio. Así que si tu script se bloquea por cualquier motivo, siempre volverá al principio de tu lista.

Esto es un extra, pero para evitar que siempre vuelva al inicio, genero dinámicamente esta lista de reproducción desde nuestro sitio web, así que si se bloquea sé en qué lugar estamos en la lista y luego restablezco el orden de la lista de reproducción de forma dinámica. Aquí hay una breve descripción de ese proceso.

Cargo una base de datos con el ID del ítem y su hora de inicio y fin basada en la duración del video. Precargo esto durante un par de meses y luego vuelvo para mantenerlo actualizado. Podrías tener otro script haciendo esto por ti.

Antes de reiniciar la transmisión, hago ping a nuestro sitio web y creo el assets.txt en el nuevo orden actualizado y lo descargo al Droplet remoto que verás en el siguiente paso.

5. Creación del guión

Ahora haremos un script bash para ejecutar desde un Cronjob. Aquí hay un gráfico de nuestro script.

Ver el guion como un archivo de texto: rerun.txt

Asegúrate de actualizar la {YOUR_STREAM_KEY} con tu clave real. También puedes actualizar el punto final de Twitch para que esté más cerca de la ubicación de tus servidores. Ver puntos finales de Twitch.

Revise los archivos de script arriba en formato de texto para ver la configuración que elegí. Hay muchas opciones y la documentación de FFmpeg es bastante buena. Puede registrar errores como al final del script de Twitch arriba para ver qué ha salido mal.

6. Ejecución del script

Para ejecutar el script configuraremos un trabajo cron para manejar esto. Aquí hay una guía útil sobre Cronjobs si no estás familiarizado.

He elegido ejecutar el script cada minuto con el siguiente Cronjob porque la función de finalización automática de YouTube parece terminar la transmisión después de un minuto sin que se les envíen datos, por lo que he descubierto que es mejor ejecutarlo con frecuencia.

 * * * * * ./rerun.sh

Cerrar

No he cubierto todos los aspectos del proceso, solo algunas de las partes técnicas clave. Aún necesitarías tener conocimiento para crear tus configuraciones de transmisión en vivo en cualquiera de las plataformas, pero esto debería ser un buen punto de partida.

Contáctame en X con tus preguntas o problemas y actualizaré esta guía a medida que se compartan escenarios.

Nota: La traducción de esta lección se ha realizado electrónicamente y aún no ha sido revisada.
Topic
7 of 7