ADALM-Pluto
Microordinateur-SDR de télécommunication d'Analog Devices
Mise à jour le 6 mars 2021
Le hardware
La stabilité en fréquence n'est pas fameuse mais utilisable pour de la DATV. Par contre, pour des low SR (66 voire 33kS/s), ainsi que pour faire de la SSB, il faut changer l'oscillateur ou mieux le piloter depuis un oscillateur externe stabilisé, par exemple un Leo Poldar. Je décrirai la modification ultérieurement, ainsi qu'une autre destinée à éviter des coupures USB. Il est également possible de faire une modification de firmware destinée à étendre la gamme de fréquence du Pluto.
Forums
Links
Si l'installation a échoué et qu'on ne voit pas
le lecteur Pluto avec Windows Explorer, alors il faudra
régénérer le firmware avec le
La plupart des utilisateurs du Pluto utilisent le logiciel OBS pour envoyer des images et des commandes au Pluto. L'avantage d'OBS c'est sa gratuité totale mais alors, il faut bien avouer que c'est une usine à gaz à utiliser, il n'est pas du tout intuitif. Et ça pour moi c'est très important car s'il faut à chaque fois consulter le manuel avant utilisation, c'est très dissuasif, en tous cas pour moi. Par contre je travaille depuis assez longtemps avec vMix et j'en suis enchanté. On doit rarement ouvrir son manuel et il met une version gratuite à disposition des amateurs. La description qui suit est donc faite pour vMix.
La version BASIC de
vMix
est indéfiniment gratuite (si on la déclare pour une utilisation non
professionnelle sinon la durée d'essai est de 60 jours), mais elle
est limitée à la résolution de 768 x 576 pixels. Il faut la première
version payante (60 Dollars) pour pouvoir travailler en HD (Haute
Définition) 1980 x 1080 pixels, voire plus en 4k. Le
passage de l'une à l'autre se limite à entrer la nouvelle clé dans
le logiciel après l'avoir acheté sur Internet. C'est fait en quelques
minutes.
Configuration
Le logiciel vMix doit être ouvert et le Pluto relié au PC au moyen de son câble USB. La prise USB d'alimentation du Pluto doit rester libre car le PC alimente ce dernier via le câble USB "datas".
Que faut-il pour envoyer des images au Pluto ?
Le logiciel fait par Evariste F5OEO est un serveur RTMP (Real Time Messaging Protocol), donc un service Windows (un logiciel qui fonctionne en tâche de fond), et qui transfère des données vers un client en mode connecté (avec handshake). Ce protocole a été développé par la firme Adobe afin de transmettre un flux de données en streaming (en continu), le "client" étant généralement un lecteur vidéo Flash, également développé par Adobe. Dans notre cas, le récepteur sera le logiciel du Pluto et l'émetteur vMix et la communication entre eux se fera au moyen du protocole RTMP. A noter qu'Evariste a développé une nouvelle version du firmware qui utilise le protocole UDP comme moyen de communication afin de pouvoir également transmettre du H.265, nous y reviendrons ultérieurement.
Fig 1: Commande du Pluto par USB et ligne de commande (protocole RTMP)
L'architecture du système est donc la suivante:
vMix choisit les sources vidéo (images, vidéos, caméras,
navigateur Internet, etc. Il assemble ensuite ces données de
façon à former un flux TS (Transport Stream) en fonction des paramètres qu'on lui donne et
qu'il fait exécuter, en tâche de fond, par le logiciel
FFMPEG.
Il faut donc renseigner les champs des paramètres de vMix afin
que ce dernier envoie son Transport Stream au logiciel Pluto en
le faisant au préalable traiter par FFMPEG. A noter que le
protocole RTMP ne permet pas de faire du H.265, seulement du MPEG-2
et du H.264. Pour du H.265, il faut passer au
protocole UDP
(User Datagram Protocol), qui permet la transmission de données à un ou
plusieurs récepteurs sans contrôle de flux (handshake).
La communication se fait par une ligne de
commande envoyée par vMix au Pluto et qui dit où envoyer le
TS et avec quelles caractéristiques. Les paramètres qui suivent
sont ceux que j'ai utilisé pour générer un
Streaming settings
Cette ligne de commande est à mettre dans la
fenêtre "Streaming Settings" qui s'ouvre lorsque vous cliquez sur
Fenêtre "Streaming Settings"
Votre indicatif, nom du flux ou de la, doit être entre virgules: Nom du flux ou de la: ,HB9AFO,
La qualité doit être choisie dans la liste qui apparaît en cliquant sur le signe ˅ (à droite du champ): Qualité: H264 576p 280kbps AAC 64kbps
Les autres champs doivent être remplis comme sur la copie d'écran ci-dessus.
Streaming quality
Les autres paramètres doivent être entrés dans la
fenêtre "Streaming quality" qui s'ouvre en cliquant sur le bouton
Fenêtre "Streaming quality"
Remplissez cette fenêtre comme ci-dessus.
Video bit Rates est le paramètre le plus important pour que les images soient fluides. C'est la taille du flux vidéo. Compte tenu de la place disponible dans le TS (en fonction du SR, du FEC et de la résolution de l'image et du son), il faut le choisir au plus juste. S'il est trop grand, le son sera coupé et les images auront le hoquet. S'il est trop petit, il y aura le son mais les images seront de mauvaise qualité (pixellisées). Video bit Rates: 280 kbps
Encode Size est la résolution de l'image Encode Size: 768 x 576 pixels
Audio Bit Rate est la t aille du flux du son. 64 kbps est le minimum Audio Bit Rate: 64 kbps
Copiez les autres paramètres tel-quels.
Pour résumer, vous recopiez le contenu des deux fenêtres ci-dessus tel-quel et vous obtiendrez un TS avec des images bien fluides et d'une définition agréable et un son de bonne qualité avec un SR de 500 kS/s et un FEC de 1/2.
Boutons en bas d'écran
La suite décrira quelques commandes de vMix et leur fonctions mais vous pouvez déjà consulter le guide en anglais pour prendre de l'avance.
La première chose à faire est d'entrer les
paramètres d'émission tels que décrits ci-dessus. Il resteront
mémorisés lorsque vous éteindrez le PC. Tant que vous ne changez pas
les caractéristiques d'émission (fréquence, SR, FEC, etc,), la seule
chose à faire au démarrage sera de cliquer sur le bouton "Externe"
au bas de l'écran. Il deviendra rouge ce qui indiquera que vMix sera
prêt à envoyer des données au Pluto. Attention: quelquefois vMix se
reboote (s'arrête et redémarre) lorsque vous modifiez un paramètre,
ce qui oblige à re-cliquer ensuite
Ensuite il faut préparer les sources vidéo (entre 1 et 4) qui se mettront dans 4 fenêtres au bas de l'écran. Ceci fait il faudra en envoyer deux dans les deux grandes fenêtres en haut de l'écran. La fenêtre de droite est la fenêtre d'émission, celle qui est actuellement envoyée au Pluto et celle de gauche la prochaine.
Pour les premiers essais, il faut au minimum une source, par exemple une mire.
Sélection d'une mire
D'autres images, jusqu'à 3 supplémentaires peuvent être sélectionnées de la même façon. Au final, les 4 fenêtres en bas de page seront remplies.
Passage d'une image à une autre
A ce stade, vous avez la première image, la mire, sur la grande fenêtre de droite, rien sur la fenêtre de gauche et 4 dans les 4 petites fenêtres du bas. Pour envoyer une image du bas vers la fenêtre de préparation, la grande du haut à gauche, il suffit de cliquer sur l'image à envoyer.
Et pour faire passer l'image de gauche (haut) vers la fenêtre d'émission, la droite, il faut faire glisser la manette (au centre, entre les deux fenêtres) de gauche à droite avec la souris. L'image de gauche remplacera celle de droite et vice-versa.
Les boutons au centre, entre les deux fenêtres, permettent de donner un effet de transition lors du passage d'une image à une autre. Essayez par exemple de cliquer sur le troisième bouton depuis le haut et vous verrez les images se permuter avec la transition choisie. Pour changer de type de transition, ouvrez la liste déroulante en cliquant sur le flèche à droite du bouton. Essayez-les, c'est la meilleure façon de les voir en action!
A ce stade, nous avons donc 4 images fixes que nous pouvons émettre avec des effets de transitions.
Pour faire
passer le Pluto en émission, il faut cliquer sur le bouton
Choix d'autres sources
Sans vouloir explorer tous les types de sources que supporte vMix (consultez le guide en anglais pour cela), voici les plus utilisées:
Pour toutes les sources qui sont décrites
ci-après, il faut à chaque fois débuter par un clic sur le bouton
Pour enlever une source d'une des petites
fenêtres, cliquez sur
Diaporama de photos
Fichier vidéo
Images d'une Caméra
Bandeau défilant
Exemple de bandeau défilant
Navigateur Internet
Flux UDP à suivre... Optimalisation d'une émission DATV
Du point de vue HF, une émission DATV doit être caractérisée par sa fréquence et sa puissance. Il faut ensuite déterminer les paramètres de l'émission DATV proprement-dite, qui sont:
On voit donc que tous ces paramètres sont interdépendants, ce qui en complexifie le choix. En pratique ce n'est toutefois pas trop difficile car les équipements ont déjà eux-mêmes des limitations ce qui élimine déjà quelques possibilités. On pourra faire son choix soit en se donnant comme critère de départ le flux vidéo qu'on désire transmettre et choisir les paramètres en conséquence. Ou alors l'inverse, se dire "avec le rapport signal-bruit que mon correspondant aura en réception, quelle est le flux maximum TV que je peux transmettre?".
De façon générale, il est préférable de débuter ses réglages avec un FEC important afin de bien corriger un maxim
Calcul du bit rate (vitesse du flux vidéo)
Dans les deux cas il me faudra tout d'abord
calculer le débit effectif de ma vidéo à l'aide du logiciel gratuit:
Par exemple, pour SR=250, DVB-S2/QPSK, 0.35 et 1/2, on obtiendra un TS (Transport Stream) de 0.2475 Mps et donc une bande passante de 0.3375 MHz. Jouez avec les différents paramètre pour familiariser avec eux!
Il faudra encore prendre le 70% de cette valeur pour l'entrer dans vMix (Video bit rate) car le TS ne contiendra pas seulement le flux vidéo mais aussi le son et les flux de service, il faut donc leur laisser un peu de place.
Encore un détail: pour faciliter le décodage des flux, nous n'utilisons que des flux à vitesse constante en DATV (CBR ou Constant Bit Rate), contrairement à Internet par exemple, qui travaille en VBR (Variable Bit Rate). C'est la raison pour laquelle les logiciels de codage vous demandent quelqufois de le préciser.
Dans vMix, il y a la ligne à envoyer au Pluto:
Et les paramètre de sortie
Le Video bit rate, l'Encode size (largeur x
hauteur de l'image en pixels) et l'Audio bit rate.
Compléments
Des informations supplémentaires, complémentaires ou dites autrement, peuvent être trouvées, entre autres, sur les sites suivant:
Le Pluto contient un version de Linux embarquée, c'est son système d'exploitation. On peut y accéder en mode console via son adresse IP 192.168.2.1. Il faut pour cela télécharger un logiciel comme, par exemple, ExtraPutty (il est gratuit mais il est tout-de-même bon de faire un petit don d'encouragement via la procédure indiquée).
A télécharger sur: http://extraputty.com/index.php Cliquer sur "Download latest ExtraPutty" et installez-le en exécutant le ficher Putty.zip téléchargé
Avec le câble USB connecté entre le PC Windows (pas besoin d'Ethernet) et le Pluto, ouvrez Putty, inscrivez-y l'adresse du Pluto et cliquez sur "open".
Une fenêtre d'exécution en mode texte s'ouvre et vous demande votre login (nom d'utilisateur) et le mot de passe:
Entrez ce qui suit:
login as: root root at 192.168.2.1's password: analog
(Chaque commande se termine par une pression sur [Enter])
Vous obtenez alors:
Et voici dans le système d'exploitation du Pluto, prêt à recevoir vos commandes. La version est indiquée sous le titre "PlutoSDR" et l'adresse où obtenir des indication également.
Pour obtenir la version du firmware:
iio_attr -a -C
fw_version
Using auto-detected IIO context at URI "local:"
Donc ici version v0.31-4-g9ceb-dirty Yapluka mais on peut déjà entrer sa première commande Linux: exit ! Cette commande ferme la fenêtre et termine la session Linux.
Un petit rappel des commandes Linux peut s'avérer utile.
à suivre...
Voici les paramètres que j'ai déterminé pour différents contenus de transmission et pour l'ensemble vMix-Pluto. Le résultats (que j'espère encore perfectible) de nombreuses heures d'essais.
20200820_L'encodeur H265 pour les nuls
Introduction
Depuis que nous expérimentons la DATV, tous nos efforts ont porté sur l'amélioration de la résolution et la fluidité des images transmises. Au début, les images étaient relativement floues, saccadées et pixellisées lors des mouvements de caméra. Cela tient à la faible bande passante que nous utilisons, résultant de l'utilisation de low SR compris entre 1000 et et 33 kS/s. L'avantage est bien-sûr de gagner en efficacité et de pouvoir caser un maximum de station dans une bande donnée, typiquement sur le satellite Oscar-100. L'arrivé du SDR ADALM-Pluto a changé la donne et de belles qualités ont été obtenues, dépendantes tout de même de la puissances des équipements utilisés. Une limite claire est cependant apparue car les logiciel de gestion des images, vMix et OBS, font tous deux appel au puissant mais complexe logiciel FFMPEG qui génère le TS (Transport Stream) à faire parvenir au Pluto. Il faut là saluer le magnifique travail effectué par Evariste F5OEO qui a développé le firmware (logiciel interne) DVB-Pluto adapté à notre usage.
La limite de la rapidité d'encodage des PC, proportionnelle à leur puissance, était ce qui limitait la qualité des images générées. Une des solution trouvé fut d'utiliser la puissance des cartes graphiques contenues dans le PC, qui ont été spécialement développées pour traiter des images. La carte NVidia en est un exemple. Mais il y a un problème: tous les PC ne sont pas équipés de cartes NVidia et tous les modèles de cette marque ne peuvent être utilisées par des logiciels externes et donc ne conviennent pas à notre application. La solution est venue avec l'apparition d'un encodeur hardware externe, l'encodeur H264-H265 bien connu maintenant et qu'on peut se procurer sur Internet pour 60 Euros. C'est lui qui génère le TS à envoyer au Pluto, sans nécessiter l'intervention d'un PC. C'est avec un tel ensemble "Encodeur-Pluto" plus un PC pour modifier les paramètres d'émission, qui permet au amateurs que nous sommes d'obtenir actuellement la meilleure qualité sans devoir faire appel à des codeurs professionnels hors de prix.
Mise en service simple de l'encodeur
Afin de voir le plus rapidement possible des images générées avec cet équipement, j'ai imaginé un processus très simple que j'appelle "Mise en service de l'encodeur H265 pour les nuls" pour paraphraser la série de livres bien connue. Pour ce faire, j'ai limité mes ambitions à ne m'occuper, dans un premier temps, que des images et pas du son car ce dernier n'est pas générable sans autre par l'encodeur. Il s'agit d'un malheureux oubli du développeur qui a omis le switch "son on -off". En conséquence, le son est bien généré par l'encodeur mais n'est pas transmis au Pluto, son flux est vide. Nous en reparlerons donc ultérieurement.
Mise en service
Elle se fait en trois étapes:
Grâce à cette modestie de mes exigences, j'ai pu réaliser ces opérations en une demi-journée. J'ai reçu mon convertisseur Ethernet-USB à midi et ce soir mon système générait ses premières images en haute résolution sur Oscar-100. En voici une:
Résolution 1280 x 720 pixels transmis avec un SR de 500 et un FEC de 3/4.
Plus le SR est élevé et plus la qualité des images est bonne mais dans mon cas, j'atteins déjà le maximum avec un SR de 500. C'est celui que j'utilise le plus fréquemment sur le satellite pour faire mes essais de qualité d'images car je ne peux pas travailler avec un SR de 1000 à cause de la puissance modeste de mon PA (40 Watts). Les SR inférieurs, 333 et 250 kS/s que j'ai testés, donnent de bons résultats avec bien-sûr avec des images plus floues. Par contre elles sont fluides et leur temps de latence n'excède pas 3-4 secondes ce qui est tout-à-fait acceptable. J'ai testé le SR de 1000 et là je peux faire passer la définition à la vraie haute définition, 1980 x 1080 pixels. Mais il faut de la puissance rayonnée pour ce SR-là, diamètre de la parabole x la puissance du PA, ce que je n'ai pas (1,2m x 40 Watts). Mais cela viendra...
1. Pilotage du Pluto par Ethernet
La première étape est d'équiper le Pluto d'une entrée Ethernet en remplacement de l'USB et pour cela il faut tout d'abord attribuer une adresse IP au Pluto, et ensuite remplacer son câble USB par l'adaptateur Ethernet.
Adresse: Le plus simple et le moins aléatoire est de lui attribuer une adresse fixe afin que cette dernière ne change pas au gré du DHCP du réseau PC. Ce service attribue automatiquement les adresses IP aux périphériques du réseau au démarrage de ce dernier, ce qui est pratique mais a l'inconvénient de voir les dites adresses changer d'une démarrage à l'autre. Avec une adresse fixe pas de problème, on la connaît et on peut la paramétrer de façon fixe et l'oublier ensuite.
Pour ma part, et pour suivre le conseil de F5UII, j'ai choisi l'adresse 192.168.1.8 comme adresse du Pluto. Il suffit de l'inscrire dans le fichier config.txt qui se trouve dans le répertoire racine du Pluto, chez moi PlutoSDR (G:), visible avec l'explorateur de Windows. Double-cliquer sur config.txt et ce dernier s'ouvrira au moyen, en principe, du Notpad Windows puisqu'il s'agit d'un fichier texte. I, ne reste plus qu'à rajouter l'adresse IP désirée (192.168.1.8) à la place vide en face de
[USB_ETHERNET]
Laisser tout le reste du texte de ce fichier inchangé.
Pour terminer, il suffira d'enregistrer le fichier (menu "enregistrer" du Notapad) et ensuite, très important et à ne pas oublier, éjecter le Pluto USB en cliquant sur l'icône en bas à droite du bureau, comme à chaque fois qu'on veut que le Pluto mémorise une modification. Si on ne le fait pas, le contenu du Pluto restera inchangé.
Câble Ethernet:
Il faut maintenant connecter physiquement le Pluto au réseau local car l'Encodeur n'a que ce moyen pour communiquer avec l'extérieur. Ce dernier enverra le flux TS au Pluto mais en retour il recevra les commandes de ce dernier, notamment le bitrate ce qui s'avèrera très pratique.
Il faut donc commander un adaptateur Ethernet-USB avec comme entrée un prise femelle RJ45 et en sortie une fiche mâle micro-USB, du type de celle qui équipent les smartphones. J'a porté mon choix sur un I-Tec adaptateur réseau USB-2 (No 1596063) et OTG type MicroB-A0, 2M (678089) de chez Conrad, car l'adaptateur Ethernet sort sur une fiche USB standard.
Il suffit alors de relier la sortie le tout cela à l'entrée "commande" du Pluto (celle de gauche vue de l'arrière). Ensuite il faut alimenter le Pluto en 5V et pour cela il suffit de plugger l'ancien câble USB sur la prise "alimentation" de droite. Tout ceci parce que câble Ethernet ne transporte pas de 5V. Au final, le nouveau câble Ethernet sera à gauche et l'ancien câble USB à droite. On peut laisser l'autre extrémité de ce dernier connecté au PC ou alors le relier à une alimentation secteur USB puisque seul le 5V nous intéresse sur ce câble.
C'est tout ce qu'il y a à faire, l'entrée-sortie Ethernet n'exige ni installation soft ni driver.
A partir de là, on peut communiquer avec le Pluto en inscrivant la nouvelle adresse IP 192.168.1.8 dans son navigateur Internet, Firefox dans mon cas. On peut "oublier" l'ancienne adresse par défaut 192.168.1.120. Cette adresse nous amène à la page d'accueil du serveur du Pluto:
2. Installation de l'Encodeur
3. Le son
Le firmware de l'encoder a un oubli de taille: l'ouverture de sa voie son. Evariste vient de modifier son firmware pour pallier à cet oubli. Il suffit donc d'installer sa nouvelle version alpha qu'on trouve ici: http://firmware.hackhamradio.com/alpha/. Il faut bien-sûr enclencher le son dans le firmware du Pluto "H265/H265 box control (option)" et donner les paramètres minimum à l'encodeur afin de minimiser sa prise de place. Ce sont:
Ceci fait, ne pas oublier de cliquer sur "save".
Mes efforts ont porté sur l'obtention de la meilleure qualité possible en terme de résolution et de fluidité des images. Pour cela, il faut accorder les paramètres et les optimaliser en fonction du bilan de liaison sur le satellite (fonction de la puissance d'émission et de la dimension de la parabole). Dans mon cas j'ai 40 Watts au grand maximum et une parabole de 1,2 mètre.
Une fois entrés dans le Pluto la fréquence d'émission et les paramètres qui ne changent pas ou pas souvent:
Il faut maintenant entrer ceux qui déterminent la qualité qu'on désire obtenir:
Mes réglages
But: obtenir un rapport D1 en réception en
ajustant le réglage Power du Pluto.
On pourra obtenir des résolutions plus élevées si son bilan de liaison est plus élevé, en utilisant par exemple plus de 40 Watts sur 2.4GHz ou une parabole plus grande.
Un fois ces paramètres entrée et après avoir cliqué sur Apply Settings, le Pluto va renvoyer le bitrate calculé à l'encodeur et celui-ci adaptera ses paramètres en conséquence. Si on ne voir rien changer sur ce dernier (option "video" de l'encodeur), il faut cliquer sur reset. On peut forcer des paramètres personnels mais il faudra ensuite cliquer sur save afin de les mémoriser, sinon ce sont ceux du Pluto qui prendront le dessus.
Dans l'encodeur, option Video, on doit avoir
Le son doit être à 32k Donne de belles images en belle résolution et très fluides.
IMPORTANT: Après chaque modification, ne pas oublier de cliquer sur Apply settings de l'option "Modulator" du Pluto. Et ensuite de faire reset dans l'option "video" de l'encodeur. A ce moment-là on voit le Bitrate de l'encodeur changer, preuve que le Pluto lui a bien transmis la nouvelle valeur calculée. L'option "Force compliant" doit bien-sûr être sur "*ON", ce qui indique que c'est le Pluto qui impose ses paramètres à l'Encoder.
On peut optimaliser les paramètres envoyés par le Pluto à l'Encoder. Il suffit de les modifier à la main dans le menu de l'Encoder et ensuite dfe les mémoriser avec "save". Sinon ils reprendront les valeurs données pas le Pluo après le prochain "Applay settings".
Dernier firmware: http://firmware.hackhamradio.com/alpha/
Je le fais systématiquement car mon bilan de liaison sur le satellite est un peu juste. Il m'en faudrait un peu plus afin de pouvoir diminuer le FEC et donc de pouvoir envoyer plus de bits (bit rate plus élevé). Car mon but c'est la haute définition (HD) et pour y arriver il n'y a pas 36 solutions: il faut un maximum de place pour la vidéo dans le TS (Transport Stream). L'idéal serait de transmettre non plus en QPSK mais en 8PSK voire en 16PSK (2 et 4 x plus de place). Mais le problème c'est qu'il faut un bilan de liaison nettement supérieur pour pouvoir le faire, ce que tout le monde n'a pas. La moyenne des stations reçoit avec des paraboles de 80 ou 100cm mais guère plus ce qui donne des MER trop faibles pour du 8PSK en réception. Et mon but est d'optimaliser ma station de façon à être vu par un max de stations, pas seulement par les mieux équipées.
L'autre paramètre à optimiser est le FEC (Forward Error Correction), mais là plus on corrige et moins il faut de MER au correspondant pour me recevoir. Par contre, plus j'insère de bits de correction dans le TS, ce qui se produit lorsque j'augmente le FEC (de min 9/10 à max 1/4), plus la réception est facile (demande un MER moins élevé) mais en contrepartie plus la définition de l'image est faible. En fonction des réglages, le firmware d'Evariste du Pluto envoie la définition maximum possible à l'Encoder.
La solution que j'adopte en ce moment c'est d'entrer les paramètres désirés dans le controller du Pluto et ensuite je fais "Apply settings". A ce moment-là ils sont envoyés à l'Encoder qui réajuste automatiquement les siens. Si je veux les optimaliser, je les modifie, principalement le bitrate. Je dois encore réajuster le son à 32k afin de gagner encore un peu de place dans le flux car Pluto envoie systématiquement 64k, le maximum. Ensuite je clique sur "save" sinon les valeurs reviennent à celles du Pluto au prochain changement de fréquence ou autre.
20200930_vMix, Encoder et Pluto
1. Transmission du bureau de Windows (sans vMix)
La configuration est donc:
Caméra GoPro ► câble HDMI ► Encoder ► câble Ethernet►> Pluto
Ca fonctionne parfaitement bien mais avec deux inconvénients:
2. Transmission de la sortie de vMix
La solution est de passer par une console de mixage software et pour nous il y a deux logiciels: OBS et vMix. Le premier est gratuit mais n'est pas intuitif à mettre en route, il manque d'ergonomie. le second est aussi gratuit mais limité à la résolution de 768x576 pixels, ce qui correspond a de la bonne SD (Standard Definition de l'ancien 625 lignes). Il faut payer quelques dizaines d'Euros pour pouvoir faire de la HD (Haute Definition). En gros ces deux logiciels ont les mêmes fonctionnalités mais vMix étant le plus ergonomique des deux, c'est lui que j'ai choisi d'utiliser car je n'aime pas les outils qui obligent à laisser le manuel ouvert pour pouvoir travailler.
J'ai décrit ici la commande du Pluto avec vMix (en liaison USB).
Nous avions alors la configuration:
vMix ► câble USB ► Pluto
L'envoi des commandes au Pluto se faisait par le câble USB, au moyen du protocole RTMP (Real Time Messaging Protocol), (protocole de streaming propriétaire d'Abobe) et d'une ligne de commande. A chaque changement de fréquence ou de paramètres, il fallait modifier cette ligne ce qui n'était pas très pratique.
Fig 2: Commande du Pluto et de l'encoder par Ethernet (protocole HTTP)
Evariste F5OEO a donc modifié le firmware du Pluto en lui ajoutant une communication HTTP bi-directionnelle (Hyper Text Transfer Protocol), le standard sur Internet). Les avantages sont doubles:
Communication dans les deux sens:
Aller: Notebook (Firefox) ►câble Ethernet vers routeur ► Pluto (192.168.1.8 )
et retour: Encoder (192.168.1.120 ◄ câble Ethernet vers routeur ◄ Pluto)
Pour résumer, sur le notebook, relié au Pluto par le routeur du réseau Ethernet local, il faut démarrer Firefox (ou autre) et ouvrir deux onglets: un à l'adresse 192.168.1.8 du Pluto, et un à l'adresse 192.168.1.120 de l'Encoder. Il faudra également démarrer vMix, la console de mixage vidéo, qui enverra le flux vidéo à l'Encoder, via la sortie HDMI du notebook.
Notebook (vMix) ► câble HDMI ► Encoder
Il ne reste plus qu'à insérer vMix entre les périphériques d'entrée et l'Encoder. Certain le font avec la console constituée par le logiciel OBS, moi j'ai choisi d'opérer avec vMix, qui est bien plus intuitif, donc plus facile à prendre en mains. Les explications se trouvent ici.
Pour cela il faut:
3. Paramétrage de Windows
Il faut procéder ainsi (pour la version Windows 10 famille) :
Image
Son
4. Paramétrage de vMix
A ce moment-là, la sortie "vidéo" et la sortie "son" de vMix seront dirigées sur la prise HDMI du notebook, et de là vers l'Encoder via le câble HDMI qui relie le notebook à l'Encoder. Par contre, le bureau sera toujours visualisé sur l'écran du notebook, mais pas le son de son haut-parleur, qui sera coupé. Contrairement à l'ancien pilotage du Pluto via le câble USB, vMix sert uniquement de console vidéo (sélection des périphériques d'entrée et autres), l'option de streaming Courant (bas de l'écran de vMix) n'est plus utilisée.
Dès lors, c'est dans le Controller du Pluto (firmware d'Evariste) qu'il faut donner les paramètres de l'émission DATV, via l'adresse IP 192.168.1.8 de Firefox (si c'est bien celle-là qu'on a configuré).
5. Exemple de pamétrage du Pluto (pour un SR de 500)
En rouge les paramètre qu'on modifie le plus souvent. Les autres restent le plus souvent inchangés,
Une fois ces paramètres entrés, il faut cliquer
sur
Apply setting. Le bitrate (vitesse des
bits) est alors calculé et s'inscrit sous
Il est possible de passer par-dessus les réglages automatiques et de modifier finement les réglages soi-même. Après l'avoir fait, il faut cliquer sur Save de l'option considérée (son ou image). Un clic sur Reset remet les réglages du Pluto en place. Les valeurs modifiées restent en place jusqu'à un nouveau clic sur Apply Settings du Controller du Pluto.
On peut ajuster la puissance de sortie au moyen du curseur Power, le passage en émission se faisant par le bouton PTT. Switch ON = passage en émission et Switch OFF en réception.
6. Perfectionnements
Tout ce assemblage fonctionne très bien mais comporte encore quelques glitches. Je présume qu'ils seront corrigés au fil du temps:
7. Résultats et projets
Actuellement, mon but est d'obtenir des images les plus parfaites possibles, c'est-à-dire en Haute Résolution, fluides, sans coupures avec un bon son et un temps de latence minimum, même pour des images dont le fond varie beaucoup, ce qui est le cas le plus défavorable pour le compresseur d'images. Et puis j'aimerais que mes images puissent être vues par un maximum de correspondants, même par ceux qui n'ont que de petits moyens en réception. C'est la raison pour laquelle je n'émet qu'avec une constellation QPSK et pas en 8 ou 16PSK qui demandent des C/N (rapport signal/bruit) plus élevés en réception, typiquement 6.30 et 10.37 dB (4dB de plus chaque fois) alors qu'il ne faut que 2.23 dB en QPSK. En contrepartie, on pourra transmettre beaucoup plus de bits/sec (bitrate plus élevé) et donc avoir des images plus détaillées, typiquement 395 en QPSK mais 992 et 1321 pour les deux autres. On n'a rien sans rien! De toutes façons, je n'ai que 40 Watts dans une parabole de 1.2 mètre en émission, ce qui ne suffit pas pour transmettre en 8 ou 16PSK. Ma limite c'est QPSK et FEC 3/5, ce qui me permet tout de même d'obtenir de bonnes images en 720x586 pixels, fluides, sans à-coups et avec un son acceptable. Mais cela m'oblige quelquefois à "bricoler" le bitrate et le son de l'Encoder de façon à me tenir au plus près des limites supérieures.
Le paramètre le plus important à optimiser est le FEC (Forward Error Correction), mais là plus on corrige et moins il faut de MER au correspondant pour me recevoir. Par contre, plus j'insère de bits de correction dans le TS, ce qui se produit lorsque j'augmente le FEC (de min 9/10 à max 1/4), plus la réception est facile (demande un MER moins élevé) mais en contrepartie plus la définition de l'image est faible. En fonction des réglages, le firmware d'Evariste du Pluto envoie la définition maximum possible à l'Encoder.
L'Encoder H264/H264 est une merveille! Grâce à lui, c'est la première fois que je peux vraiment transmettre des images de très bonne qualité sans devoir casser ma tirelire pour m'acheter un PC de course (Ou Jetson ou carte nVidia). Une belle étape de franchie!.
20201015_Installation de patches
Des modifications peuvent être effectuées au firmware du Pluto d'Evariste F5OEO sous forme de patches. L'opération est réversible et on peut enlever le patch pour rétablir le firmware initial. Cette nouvelle possibilité a été rendue possible par sa récente adjonction dans l'operating system du Pluto par Analog Devices,
La procédure est la suivante:
Cette même procédure permet d'installer une nouvelle version complète du firmware, le fichier pluto.frm.
Evariste FD5OEO met à disposition les codes
sources de son firmware sur le site
https://github.com/F5OEO/datvplutofrm . N'importe-qui peut les
modifier mais ce n'est pas à la portée de tout le monde, il faut
savoir programmer.
On peut s'inscrire sur le forum de discussion https://groups.io/g/plutodvb afin de suivre l'évolution du fiirmware.
On peut trouver Evariste sur Twitter: https://twitter.com/F5OEOEvariste/
20201108_Paramètres pour OBS (de Jean-Louis F5AJJ)
Les paramètres OBS pour attaquer le Pluto par USB. Optimalisés par Jean-Louis F5AJJ:
20201113_Solution Oscar-100 de DC8PAT avec feed Poty
https://www.qrz.com/db/DC8PAT/?mlab=#QO100
à suivre...
Grand merci à tous ceux qui ont défriché le chemin pour moi et de qui je me suis inspiré!
Michel Vonlanthen HB9AFO |
: