Ghostream est une plateforme de streaming développée par le Crans. Elle permet la diffusion en direct d'un contenu avec une latence extrêmement faible en n'utilisant que des technologies libres, en utilisant le protocole très récent et très puissant SRT et non RTMP.
La VM est hérbergée sur l'hyperviseur odin
. Elle a pour adresse IP 10.128.0.65
et est accessible via stream.adm.auro.re
.
Le service est lui accessible sur https://stream.auro.re/.
Plus d'infos sur https://wiki.crans.org/CransTechnique/ServicesMineurs/LiveStream.
Le code source est disponible sur le Gitlab du Crans : https://gitlab.crans.org/nounous/ghostream.
Le service Ghostream tourne sur la VM ghostream.adm.auro.re
.
Ghostream utilise les ports 80 et 443 pour le lecteur web, le port 8023 pour voir le stream en qualité textuelle, le port 9710 en UDP pour recevoir le flux vidéo entrant et les ports 10000 à 10050 pour les connexions WebRTC.
Une copie locale des recettes Docker est accessibles dans /var/local/ansible-docker/ghostream-docker
.
Elle est copiée depuis le fichier docker-compose.yml
d'exemple du dépôt Gitlab.
D'ici peu, la couche Docker sera enlevée et Ghostream sera directement installé sur Debian (Bullseye) avec OvenMediaEngine. La documentation sera alors mise à jour.
La configuration de OvenMediaEngine se trouve dans /var/local/ansible-docker/ghostream-docker/Server-docker
. L'unique différence est dans la définition des candidats ICE, on spécifie explicitement l'IPv4 du serveur :
<IceCandidates>
<IceCandidate>*:10000-10050/udp</IceCandidate>
<IceCandidate>45.66.111.65:10000-10050/udp</IceCandidate>
</IceCandidates>
La configuration de Ghostream est quant à elle située dans /etc/ghostream/ghostream.yml
. En plus de changer le nom de domaine et le nom du serveur dans les paramètres web et d'activer le support de la sortie Telnet, l'authentification est faite par LDAP :
## Authentification package ##
auth:
# If you disable authentification no more check will be done on incoming
# streams.
#
#enabled: true
# Authentification backend,
# can be "basic" to use a list of user:password
# can be "ldap" to use a LDAP server
#
backend: ldap
# LDAP backend configuration
#
ldap:
uri: ldap://10.128.0.21:389
userdn: cn=Utilisateurs,dc=auro,dc=re
Pour mettre à jour Ghostream, l'image Docker officielle de Ghostream étant peu suffisamment mise à jour étant donné l'état de développement, on reconstruit à chaque fois l'image (assez légère) depuis le Gitlab du Crans, et on exécute alors :
Puis on relance docker :
$ sudo docker-compose up -d --build ghostream
Toutes les informations sont disponibles sur https://stream.auro.re/.