OSP, l’alternative a Twitch

June 15, 2020 2 minutes

Il y a quelque temps, j’ai découvert le projet Open Streaming Platform (ou OSP) qui propose une alternative Open-Source a Twitch ou Youtube avec une solution qui peut être auto-hébergée.

Après un peut de recherche et une discussion avec l’équipe de Tedomum, nous avons ouvert une instance pour le tester nous-mêmes.
Tout comme Peertube, OSP permet a l’utilsat·eur·rice de créer plusieurs chaînes sans avoir a créer de nouveau compte afin de pouvoir trier les centres d’intérêt plus facilement (gaming, dessin, talk shows…).
OSP permet aussi d’enregister automatiquement les diffusions mais aussi de créer des clips et des vidéos.

OSP est très simple a déployer vu que nous utilisons Docker & docker-compose. Le plus gros problème que nous avons rencontré est celui de la migration de la base de données qui se fait toujours avec les scripts par défaut (ce qui fait en sorte que la dite migration échoue). Si vous avez ce genre de problèmes, il faut remettre une version antérieure, exporter la base de données avec le panneau administrateur et la ré-importer sur une nouvelle installation.
Voici a quoi ressemble le docker-compose.yml (Note: la dernière révision n’est pas supportée par Docker):

version: '2.1'

services:
  redis:
    image: redis:latest

  osp:
    image: deamos/openstreamingplatform:latest
    volumes:
      - ./data:/var/www
    labels:
      - traefik.enable=true
      - traefik.frontend.rule=Host:${hostname}
      - traefik.port=80
      - traefik.frontend.headers.STSSeconds=315360000
      - traefik.frontend.headers.browserXSSFilter=true
      - traefik.frontend.customResponseHeaders=Server:www||X-Powered-By:www
    environment:
      - REDIS_HOST=redis
      - FLASK_SECRET
      - FLASK_SALT
      - OSP_ALLOWREGISTRATION
      - OSP_REQUIREVERIFICATION
      - DB_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db/${POSTGRES_USER}
    depends_on:
      - "db"
      - "redis"
    ports:
      - "${ipv4}:1935:1935"
      - "${ipv6}:1935:1935"

  db:
    image: postgres:11
    volumes:
      - ./db:/var/lib/postgresql/data
      - ./wal:/wal
      - ./postgresql.conf:/var/lib/postgresql/data/postgresql.conf
    environment:
      - POSTGRES_USER
      - POSTGRES_PASSWORD

networks:
  default:
    enable_ipv6: true
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: "${prefix}/80"
          gateway: "${prefix}1"

Attention, Postgresql n’est pas dans les bases de données supportées officiellement, voir le wiki d’OSP pour la liste officielle.
Le port 1935 doit être ouvert pour permettre a OBS (ou tout autre logiciel) d’envoyer le flux vers rmtp://<votre domaine.tld>/stream

Pour conclure, OSP est un bon projet, pour moi qui diffuse généralement en 1080p 60FPS avec un bitrate de 5000Kbps, OSP le gère bien.
La version 0.6 a ajouté l’option pour transcoder les diffusions en temps réel mais cela consomme trop de processeur.

La dernière version actuelle (0.7) ajoute une fonctionnalité intéressante : le chat est servi par XMPP donc n’importe quelle personne ayant un serveur et compte XMPP peuvent participer dans le chat sans nécessairement avoir un compte sur l’instance. Malheureusement, cette version n’est pas encore ‘Docker-ready’.

Pour moi, OSP est un projet a suivre de prés si vous voulez pouvoir diffuser votre contenu en direct sur une plateforme libre..

C’est tout pour aujourd’hui,
A la prochaine!