Comment nous diffusons 24/7 sur Twitch et YouTube

Guide par :
Topic
7 of 7

Si vous ne l'avez pas encore vu, nous diffusons nos cours bibliques 24h/24 et 7j/7 sur YouTube et Twitch. Et dans ce guide, je vais vous montrer comment nous réalisons cela techniquement.

La réponse de base

Nous utilisons des listes de lecture FFmpeg sur un droplet Digital Ocean. Si ce n'est pas ce que vous souhaitez utiliser, vous pouvez abandonner maintenant.


Ce guide sera très technique et spécifique à la manière dont j'ai réalisé cela avec notre matériel. Certains éléments ne seront pas applicables à votre configuration, mais j'espère qu'ils vous donneront une certaine orientation.

1. Configurer le Droplet

Nous utilisons Digital Ocean pour créer notre serveur distant, mais vous pouvez faire la même configuration sur toute autre plateforme qui offre des capacités en ligne de commande pour exécuter des scripts et installer des applications et qui inclut un transfert de données mensuel suffisant pour diffuser en continu 24h/24.

Voici les spécifications :

J'ai pu utiliser le Droplet de niveau le plus bas avec 512 Mo de RAM et un disque de 10 Go, et j'y ai monté un disque de stockage Volume pour les vidéos.

2. Téléchargez vos vidéos

Sur votre disque monté, ou si vous utilisez une plateforme d'hébergement générique, créez un dossier videos et organisez les vidéos comme vous souhaitez travailler avec elles. Voici comment nous les organisons :

Tout est basé sur des slugs et la séquence. Nos séries ont un slug (christianity-for-beginners) puis chaque leçon a un slug avec la séquence de l'élément avant.

C'est ainsi que nos données sont stockées dans notre base de données et seront utilisées lors de la génération des listes de lecture et pour suivre notre position dans l'ordre des vidéos.

3. Ajouter FFmpeg

Ouvrez votre ligne de commande et vérifiez si vous avez déjà ffmpeg installé :

 ffmpeg -version

Si vous ne l'avez pas fait, exécutez le code suivant pour les configurations Ubuntu :

 sudo apt update
 sudo apt install ffmpeg

Vous pouvez relancer la vérification de la version pour vous assurer qu'elle est bien là.

4. Élaborer la liste de lecture

FFmpeg peut lire une liste de vidéos basée sur une playlist. Créons-en une. J'appelle le fichier sur notre système assets.txt et il se trouve dans le dossier racine. Il est très basique et ressemble à ceci :

Notre playlist complète compte plus de 370 vidéos ! Découvrez-la.

Dans notre fonction FFmpeg plus tard, nous dirons à FFmpeg de boucler, donc une fois qu'il atteint la dernière vidéo, il reviendra au début. Ainsi, si votre script plante pour une raison quelconque, il reviendra toujours au début de votre liste.

Ceci est un bonus, mais pour éviter de toujours revenir au début, je génère dynamiquement cette liste de lecture depuis notre site web, donc si elle plante, je sais à quel endroit nous en sommes dans la liste de lecture, puis je réinitialise l'ordre de la liste de lecture de manière dynamique. Voici un bref aperçu de ce processus.

Je charge une base de données avec l'ID de l'article ainsi que son heure de début et de fin en fonction de la durée de la vidéo. Je précharge cela pendant quelques mois, puis je reviens pour la mettre à jour. Vous pourriez avoir un autre script qui fait cela pour vous.

Avant de redémarrer le flux, je ping notre site web et crée le assets.txt dans le nouvel ordre mis à jour et le télécharge sur le Droplet distant que vous verrez à l'étape suivante.

5. Création du script

Nous allons maintenant créer un script bash à exécuter depuis un Cronjob. Voici un graphique de notre script.

Voir le script en tant que fichier texte : rerun.txt

Assurez-vous de mettre à jour la clé {YOUR_STREAM_KEY} avec votre clé réelle. Vous pouvez également mettre à jour le point de terminaison Twitch pour qu'il soit plus proche de l'emplacement de vos serveurs. Voir les points de terminaison Twitch.

Vérifiez les fichiers de script ci-dessus au format Texte pour voir les paramètres que j'ai choisis. Il y a tellement d'options et la documentation FFmpeg est assez bonne. Vous pouvez enregistrer les erreurs comme à la fin du script Twitch ci-dessus pour voir ce qui a mal tourné.

6. Exécution du script

Pour exécuter le script, nous allons configurer un travail cron pour gérer cela. Voici un guide utile sur les Cronjobs si vous n'êtes pas familier.

J'ai choisi d'exécuter le script chaque minute avec le Cronjob suivant car la fonction de fin automatique de YouTube semble mettre fin au flux après une minute sans données envoyées, il est donc préférable de l'exécuter fréquemment, comme je l'ai constaté.

 * * * * * ./rerun.sh

Fermeture

Je n'ai pas couvert tous les aspects du processus, seulement quelques parties techniques clés. Vous devrez toujours avoir des connaissances pour créer vos paramètres de diffusion en direct sur l'une ou l'autre des plateformes, mais cela devrait être un bon point de départ.

Contactez-moi sur X avec vos questions ou problèmes et je mettrai à jour ce guide au fur et à mesure que des scénarios seront partagés.

Note : La traduction de cette leçon a été réalisée électroniquement et n'a pas encore été révisée.
Topic
7 of 7