Faire du streaming à la maison

QuickTime BroadcasterComme disait Andy Warhol, tout le monde sera célèbre pendant 15 minutes. Pour vous préparer convenablement à cet éphémère moment il faut vous entraîner à diffuser votre image, ou au moins, tout mettre en œuvre pour vous rendre visible en deux clicks sur la terre entière. Rien n'est plus facile avec un Mac, une caméra, et le Darwin Streaming Server.

Pour monter un serveur de streaming, il faut trois choses :

  1. un logiciel de broadcast
  2. un serveur de streaming
  3. une caméra compatible avec votre broadcaster

J'ai opté lâchement pour ce que j'ai déjà, c'est à dire une webcam firewire (iSight), QuickTime Broadcaster 1.5.1, et j'ai installé Darwin Streaming Server 5.5.4. Dans ce qui suit, je présente une installation avec deux machines, une faisant broadcaster, l'autre faisant serveur de streaming. Il est possible (et même plus simple) de tout faire sur la même machine.

Installation de Darwin Streaming Server

La machine utilisée comme serveur de streaming est un PC x86 sous FreeBSD 6.2. La puissance nécessaire au streaming est tout à fait négligeable, un celeron 500MHz peut convenir. L'installation du DSS est rapide et indolore. Il faut néanmoins s'inscrire sur le site Developer d'Apple (mais vous êtes bien sûr déjà inscrit). C'est gratuit et cela se fait par ici : https://connect.apple.com. Une fois cette formalité accomplie, on peut télécharger le code source du Darwin Streaming Server (DarwinStreamingSrvr5.5.4-Source.tar). ll faut copier cette archive dans /usr/ports/distfiles/ sur la machine FreeBSD.
Sur cette dernière, on enchaîne finalement :

$ su
# cd /usr/ports/net/DarwinStreamingServer/
# make install clean

On doit ensuite configurer quelques paramètres pour que DSS fonctionne. On peut se référer au fichier /var/db/pkg/DarwinStreamingServer-5.5.4_1/+DISPLAY si on a fermé trop vite le terminal après l'installation de DSS. Il convient donc de créer un administrateur pour le serveur de streaming. Appelons le "admin", on lui donnera le mot de passe de son choix.

# qtpasswd -c admin
(on fourni deux fois le mot de passe voulu)
# echo admin: admin > /usr/local/etc/streaming/qtgroups

Ensuite, on configure le fichier /etc/rc.conf pour permettre le lancement de DSS au démarrage. Les scripts de lancement/arrêt de l'application ne fonctionnent pas comme attendu. En effet, le lancement se fait pour le streamingadminserver et pour le DSS, mais seul le premier quitte proprement quand l'argument stop est invoqué. Il faut tuer manuellement les processus DarwinStreamingServer pour quitter complètement l'application.

# echo 'streamingadminserver_enable="YES"' >> /etc/rc.conf
# echo 'streamingadminserver_flags=""' >> /etc/rc.conf
# cd /; env - /usr/local/etc/rc.d/streamingadminserver start

À partir de là, le paramétrage du serveur de streaming peut se faire via un navigateur. Il suffit de pointer vers l'adresse http://ip-de-la-machine-dss:1220/ dans un navigateur récent (Safari fait très bien l'affaire).
Il faut vous authentifier dans l'interface web pour accéder à la configuration. Les identifiants et mot de passe sont ceux créés à l'aide de la commande qtpasswd plus haut.
La première connexion déclenche la configuration initiale du DSS. En général il suffit de laisser les valeurs par défaut, chaque réglage pouvant de toute manière être modifié par la suite. Néanmoins, on veillera à bien décocher la case proposant le streaming sur le port 80, à moins de savoir très exactement ce que l'on fait.

Si le DSS ne réside pas sur la même machine que le QuickTime Broadcaster (c'est le cas ici) il faut créer un compte utilisateur de broadcast pour permettre au QTB d'envoyer la description de son flux vidéo au DSS. Dans le menu "General Settings", le lien "Change Movie Broadcast Password..." permet de créer un tel compte. La case "Allow unrestricted broadcasting" doit être cochée, et on saisit un login et un mot de passe de son choix. On valide.

Pour être certain de ne pas compliquer la configuration du DSS, il est bon de savoir que ni les "Relay" ni les "Playlists" ne vont nous servir pour un broadcast de flux en direct. Je recommande de neutraliser tous les relais en éditant les relais définis dans "Relay Settings". Il suffit de décocher "Enabled" et d'enregistrer. Il est aussi possible de supprimer les playlists. Si la flemme est plus forte, ne touchez ni aux uns ni aux autres.

Installation de QuickTime Broadcaster

Je n'ai pas la moindre idée de la manière dont QuickTime Broadcaster a atterri sur mon G5. Si contrairement à moi vous ne trouvez pas ce logiciel dans votre dossier Applications, il suffit de vous rendre sur le site Apple pour le télécharger gratuitement.

Branchez et allumez votre iSight, si elle est externe, puis lancez l'application QuickTime Broadcaster. Si le bouton en bas à droite de la fenêtre de QTB indique "Show details", cliquez dessus d'un mouvement fluide.
La partie la plus importante du réglage se trouve sous l'onglet "Network". Les réglages que j'utilise sont les suivants :

  • Transmission: "Automatic Unicast (Announce)"
  • Host Name: l'adresse IP de la machine qui héberge le DSS
  • File: mystream.mov
  • Username: le login du compte de broadcast créé plus haut, Password: le mot de passe correspondant. Si votre DSS est sur la même machine que le QTB, le login et le mot de passe sont inutiles.
  • Buffer Delay: vide
  • Broadcast over TCP: décoché

Une fois ces paramètres saisis, vous pouvez jouer avec les réglages audio et vidéo comme bon vous semble. Voilà à tout hasard un exemple de réglage testé avec succès sur une connexion ADSL avec 95 Ko/s de débit montant :

  • Audio: pas d'audio
  • Video:
  • - Source: iSight
  • - Width: 240 Height: 180
  • - Compressor: MPEG-4 Video
  • - Quality: Medium
  • - Frames per second: 24
  • - Key frame every: (vide) (décoché)
  • - Limit data rate to 1000 kbits/sec (coché)

Une fois les réglages effectués, la diffusion est lancée en cliquant sur "Broadcast" dans la partie gauche de la fenêtre ("record to disk" doit être décoché). Les données de cette fenêtre sont alors mises à jour, et l'URL du flux vidéo est donnée. Elle suit normalement ce schéma : rtsp://adresse-dss/mystream.mov.sdp. C'est cette URL que vous devez distribuer à vos admirateurs pour qu'ils la collent dans leur QuickTime (ou dans leur navigateur, si ce dernier sait que les URL rtsp sont à renvoyer à QuickTime). Bien sûr, si la machine qui héberge le DSS a plusieurs adresses IP, elles sont toutes utilisables. Il faut cependant penser à ouvrir le firewall de celle-ci pour autoriser les connexions entrantes sur le port 554.
Les chanceux qui ont une connexion très rapide en montée pourront aisément ajouter le son tout en gardant une qualité de vidéo tout à fait correcte. Par ailleurs, avec les réglages ci-dessus, un client qui subirait entre 20 et 40% de perte aurait tout de même une image correcte. Il est donc probable qu'on puisse baisser le débit de la vidéo au profit d'un son de bonne qualité.

2 comments

  1. Pour le QuickTime Broadcaster, n'aurais-tu pas installé les outils d'admin Mac OS X Server sur ton poste un jour ? il est livré avec par défaut.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.