FAQ

SRT et authentification par login/mot de passe dans des logiciels tiers

L’authentification par login et mot de passe en SRT entre instances de Perfect Streamer est prise en charge nativement et configurée via les champs correspondants dans output et input, mais le fonctionnement avec d’autres logiciels n’est pas garanti. Cette fonctionnalité n’est pas standardisée et est implémentée différemment selon les logiciels.

Pour une interopérabilité entre Perfect Streamer et d’autres logiciels, l’autorisation s’effectue en créant un pair dont le nom correspond à la valeur du stream ID. Par exemple :

srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890

Nom du pair :

!#::u=1234567890,password=1234567890

La syntaxe du stream ID n’a pas d’importance pour Perfect Streamer ; toute valeur jusqu’à 511 caractères est prise en charge.

Différents logiciels recevant le SRT peuvent transmettre le stream ID dans leur propre format ; aussi, si la réception via un certain type de lien avec stream ID ne fonctionne pas, vous pouvez activer l’option de traçage sur la sortie SRT de Perfect Streamer et consulter, dans le journal de réception du flux, l’erreur ainsi que le stream ID réellement émis par le logiciel tiers. Vous pourrez ainsi corriger le stream ID — par exemple en supprimant des caractères superflus au début de la chaîne du stream ID qui gênent la transmission de la valeur du stream ID par le logiciel tiers.

Utilisation de RTSP et RTMP dans Perfect Streamer avec FFmpeg

Pour RTMP et les autres protocoles de transport pour lesquels Perfect Streamer ne dispose pas d’input intégré, on peut utiliser le type d’input STD du flux (stdin). Cette même méthode convient comme solution de contournement pour les sources RTSP non standard — pour les RTSP standard, Perfect Streamer dispose d’un input RTSP intégré. Il est possible d’utiliser FFmpeg, GStreamer et toute autre application prenant en charge stdout.

Examinons la configuration sur l’exemple de FFmpeg :

  1. Choisir le type d’entrée : std.

  2. Indiquer le chemin de FFmpeg dans le champ Cmd — /usr/bin/ffmpeg.

  3. Dans le champ Args, saisir la commande de réception du flux :

-loglevel error -i rtmp://192.168.1.29/channelTV/chanelSD -c copy -f mpegts -

ou

-loglevel error -i rtsp://viewer:viewer200@172.31.91.197:554/play1.sdp -c copy -f mpegts -

Si la vidéo de la caméra n’a pas d’audio, des erreurs apparaîtront sur la page du flux. Pour les éviter, sélectionner dans le type de flux : Only Video.

Description dans la documentation sur l’intégration d’applications tierces.

Utilisation de RTSP et RTMP dans Perfect Streamer avec GStreamer

Pour les protocoles de transport sans prise en charge intégrée dans Perfect Streamer (par exemple, RTMP), ainsi que comme contournement pour les sources RTSP non standard, le type d’input STD (stdin) peut être utilisé pour un flux. FFmpeg, GStreamer et toute autre application prenant en charge stdout peuvent être utilisés.

Examinons la configuration à l’aide de GStreamer.

  1. Choisir le type d’entrée : std.

  2. Indiquer le chemin de l’interpréteur de commandes dans le champ Cmd — /bin/bash.

  3. Dans le champ Args, saisir le chemin du script générateur de flux et les autres arguments :

/opt/conf/pss/scripts/rtmp.sh rtmp://192.168.1.2/live/mmtv2025air

ou

/opt/conf/pss/scripts/rtsp.sh rtsp://viewer1:viewer300@172.34.95.198:553/play1.sdp

L’instruction complète est disponible sur le forum.

Scripts : scripts_gstreamer.zip.

Recommandations pour l’utilisation de l’UDP multicast

Tâche :

Recevoir de manière stable de l’UDP multicast à plusieurs centaines de Mbit/s (1 Gbit/s ou plus) sur un seul serveur.

Problème :

Réception sur des cartes réseau avec interface RJ-45 — au-delà de quelques centaines de mégabits, des pertes croissantes en multicast apparaissent. Le tuning des paramètres de la carte réseau ne résout pas le problème (il était pertinent pour les anciennes versions des systèmes d’exploitation ; les versions modernes utilisent déjà des paramètres optimaux). Sur toute carte réseau dotée des meilleures puces (Intel, Broadcom, etc.), le problème persiste, particulièrement au-delà de 500 Mbit/s. Le bonding de deux cartes ne résout pas non plus.

Solution :

Pour la réception et la transmission de multicast UDP, nous recommandons des cartes réseau à interface SFP+, qui utilisent des puces plus puissantes. Une carte économique de type Intel X520-DA1/2 (Intel 82599ES) suffit — son utilisation élimine complètement le problème de pertes en multicast UDP au-delà de 1 Gbit/s.

Avantage supplémentaire : la charge CPU et GPU diminue sensiblement lors de l’utilisation du transcodeur.

Recommandations pour la configuration réseau multicast

Configurer les paramètres réseau dans /etc/sysctl.conf :

net.core.rmem_default=8388608
net.core.rmem_max=16777216

Appliquer :

sudo sysctl --system

Flussonic et SRT

Exemple de lien SRT pour la réception sur le logiciel « Flussonic » :

srt://Stream_IP:port?streamid=flussonic

streamid est le login du client dans le logiciel « Flussonic », défini dans « Configuration – Paramétrage des pairs ».

Lors de l’ajout d’un nouveau peer, il suffit d’indiquer uniquement le login — dans le lien de test figure « flussonic ». Le logiciel « Flussonic » génère streamID automatiquement avec SRT, et si le login streamID n’est pas indiqué dans le lien de réception, le flux ne sera pas reçu et « Perfect Streamer » ne pourra pas le délivrer.

De manière analogue, on peut définir streamID sous forme de login/mot de passe en créant dans « Perfect Streamer » un pair avec la valeur dans Login or IP : !#::u=1234567890,password=1234567890

et en saisissant dans « Flussonic » le lien : srt://Stream_IP:port?streamid=!#::u=1234567890,password=1234567890

Il est possible d’indiquer streamid/login sous forme d’adresse IP dans « Perfect Streamer » :

  • 192.168.1.1 (IP unique)

  • 192.168.1.1-192.168.1.254 (plage d’IP ; sur le pair, l’option Login is IP doit être activée)

Dans les deux cas, le lien de réception par IP dans « Flussonic » ressemble à : srt://Stream_IP:port?streamid=*

Le lien sera lié à l’adresse IP du client ; la réception ne sera possible qu’à partir de cette IP (ou plage d’IP).