Category Archives: Labs

GNU Radio, radioconda nouvelle version

Ryan, le concepteur de radioconda, vient de publier une nouvelle version (radioconda-2021.07.27-Windows-x86_64.exe) de son logiciel intégrant le support des SDR Airspy R2/Mini/HF+ en addition aux SDR ADALM-PLUTO, Ettus USRPs, LimeSDR et RTL-SDR existants.

 

Bonne bidouille !

DVB-T, nouvelle version des graphes GNU Radio

Avec l’arrivée de la nouvelle version de radioconda (radioconda-2021.07.27-Windows-x86_64.exe), les graphes du récepteur DVB-T pour les SDR ADALM-PLUTO, Ettus USRPs, LimeSDR ont été mis à jour et un nouveau graphe pour le Airspy est mis à disposition.

Ces versions du graphe offrent, pour la modulation QPSK et Guard 1/32, les bandes passantes 125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz et intègre le contrôle du FEC depuis l’interface graphique (1/2,  2/3,  3/4, 5/6 et 7/8).

Une fois la constellation “lockée”, le Transport Stream (TS) est disponible sur UDP à l’adresse 230.0.0.1:10000 et sur TCP à l’adresse 127.0.0.1:10000.

L’AGC peut être déactivé en cliquant sur le block AGC2 dans le graph et en sélectionnant la fonction Bypass.

Il a été testé avec radioconda (GNU Radio 3.8.2) sous Windows 10. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

Le flow graphe inclut un filtre passe-bande pour chaque bande passante (125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz).

Les fréquences de coupure basse et haute des filtres passante bande peuvent être ajustées avec les paramètres Low Cutoff Freq et High Cutoff Freq ainsi que la pente du filtre par Transition Width.

 

Airspy

Le fichier  .GRC     :     dvbt-airspy-rx-qpsk-fec-filter-v6

Le PDF du graphe :     dvbt-airspy-rx-qpsk-fec-filter-v6

 

ADALM-PLUTO

Le fichier  .GRC     :    dvbt-pluto-rx-qpsk-fec-filter-v6

Le PDF du graphe :    dvbt-pluto-rx-qpsk-fec-filter-v6

 

LimeSDR Mini

Le fichier  .GRC     :     dvbt-limemini-rx-qpsk-fec-filter-v6 

Le PDF du graphe :     dvbt-limemini-rx-qpsk-fec-filter-v6 

 

Ettus B200

Le fichier  .GRC     :     dvbt-uhd-rx-qpsk-fec-filter-v6 

Le PDF du graphe :     dvbt-uhd-rx-qpsk-fec-filter-v6

 

 

A suivre…

DVB-T, radioconda et LimeSDR Mini

Avec le regain d’intérêt pour l’émission au standard DVB-T grâce à son intégration par l’équipe de la BATC dans le Porstdown 2020 (LimeSDR) et le Porstsdown 4 (Adalm-Pluto) , GNU Radio intègre les blocs nécessaires  dans le répertoire Digital Television pour créer des émetteurs et des récepteurs aux standards DVB-S, DVB-S2, DVB-T et DVB-T2. Des exemples sont disponibles sous forme de fichiers .grc dans le répertoire GNU Radio.

Le fichier .grc ci-dessous est une adaptation de l’exemple du récepteur DVB-T pour l’utiliser avec un LimeSDR Mini. Le côté réception du graphe est primitif… Il n’y pas de contrôle automatique de la fréquence… 

Cette version du graphe offre, pour la modulation QPSK et Guard 1/32, les bandes passantes 125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz et intègre le contrôle du FEC depuis l’interface graphique (1/2,  2/3,  3/4, 5/6 et 7/8).

Une fois la constellation “lockée”, le Transport Stream (TS) est disponible sur UDP à l’adresse 230.0.0.1:10000 et sur TCP à l’adresse 127.0.0.1:10000.

L’AGC peut être déactivé en cliquant sur le block AGC2 dans le graph et en sélectionnant la fonction Bypass.

Il a été testé avec radioconda (GNU Radio 3.8.2) sous Windows 10. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

 

 

Le flow graphe inclut un filtre passe-bande pour chaque bande passante (125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz).

Les fréquences de coupure basse et haute des filtres passante bande peuvent être ajustées avec les paramètres Low Cutoff Freq et High Cutoff Freq ainsi que la pente du filtre par Transition Width.

Le fichier  .GRC     :      dvbt-limemini-rx-qpsk-fec-filter-v5 

Le PDF du graphe :     dvbt-limemini-rx-qpsk-fec-filter-v5 

 

A suivre…

DVB-T, radioconda et ADALM-PLUTO

Avec le regain d’intérêt pour l’émission au standard DVB-T grâce à son intégration par l’équipe de la BATC dans le Porstdown 2020 (LimeSDR) et le Porstsdown 4 (Adalm-Pluto) , GNU Radio intègre les blocs nécessaires  dans le répertoire Digital Television pour créer des émetteurs et des récepteurs aux standards DVB-S, DVB-S2, DVB-T et DVB-T2. Des exemples sont disponibles sous forme de fichiers .grc dans le répertoire GNU Radio.

Le fichier .grc ci-dessous est une adaptation de l’exemple du récepteur DVB-T pour l’utiliser avec un ADALM-PLUTO . Le côté réception du graphe est primitif… Il n’y pas de contrôle automatique de la fréquence… 

Cette version du graphe offre, pour la modulation QPSK et Guard 1/32, les bandes passantes 125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz et intègre le contrôle du FEC depuis l’interface graphique (1/2,  2/3,  3/4, 5/6 et 7/8).

Une fois la constellation “lockée”, le Transport Stream (TS) est disponible sur UDP à l’adresse 230.0.0.1:10000 et sur TCP à l’adresse 127.0.0.1:10000.

L’AGC peut être déactivé en cliquant sur le block AGC2 dans le graph et en sélectionnant la fonction Bypass.

Il a été testé avec radioconda (GNU Radio 3.8.2) sous Windows 10. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

 

 

Le flow graphe inclut un filtre passe-bande pour chaque bande passante (125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz).

Les fréquences de coupure basse et haute des filtres passante bande peuvent être ajustées avec les paramètres Low Cutoff Freq et High Cutoff Freq ainsi que la pente du filtre par Transition Width.

Le fichier  .GRC     :     dvbt-pluto-rx-qpsk-fec-filter-v5

Le PDF du graphe :     dvbt-pluto-rx-qpsk-fec-filter-v5

 

A suivre…

DVB-T, GNURadio et Ettus B200

Avec le regain d’intérêt pour l’émission au standard DVB-T grâce à son intégration par l’équipe de la BATC dans le Porstdown 2020 (LimeSDR) et le Porstsdown 4 (Adalm-Pluto) , GNU Radio intègre les blocs nécessaires  dans le répertoire Digital Television pour créer des émetteurs et des récepteurs aux standards DVB-S, DVB-S2, DVB-T et DVB-T2. Des exemples sont disponibles sous forme de fichiers .grc dans le répertoire GNU Radio.

Le fichier .grc ci-dessous est une adaptation de l’exemple du récepteur DVB-T pour l’utiliser avec un Ettus B200.  Le côté réception du graphe est primitif, pas de contrôle automatique de la fréquence… 

Ce graphe offre, pour la modulation QPSK et Guard 1/32, les bandes passantes 125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz et intègre le contrôle du FEC depuis l’interface graphique (1/2,  2/3,  3/4, 5/6 et 7/8).

L’AGC peut être déactivé en cliquant sur le block AGC2 dans le graphe et en sélectionnant la fonction Bypass.

Cette version du graphe inclut un filtre passe-bande pour chaque bande passante (125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz).

Les fréquences de coupure basse et haute des filtres passante bande peuvent être ajustées avec les paramètres Low Cutoff Freq et High Cutoff Freq ainsi que la pente du filtre par Transition Width.

Une fois la constellation “lockée”, le Transport Stream (TS) est disponible sur UDP à l’adresse 230.0.0.1:10000 et sur TCP à l’adresse 127.0.0.1:10000.

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04 et Windows 10. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

 

Le fichier  .GRC     :    dvbt-uhd-rx-qpsk-fec-filter-v2

Le PDF du graphe :    dvbt-uhd-rx-qpsk-fec-filter-v2

 

Version V4.0 :  corrige le problème de la fréquence de réception qui n’était pas mémorisée.

Le fichier  .GRC     :    dvbt-uhd-rx-qpsk-fec-filter-v4 

Le PDF du graphe :    dvbt-uhd-rx-qpsk-fec-filter-v4

 

A suivre…

DVB-T, GNURadio et Airspy R2

Avec le regain d’intérêt pour l’émission au standard DVB-T grâce à son intégration par l’équipe de la BATC dans le Porstdown 2020 (LimeSDR) et le Porstsdown 4 (Adalm-Pluto) , GNU Radio intègre les blocs nécessaires  dans le répertoire Digital Television pour créer des émetteurs et des récepteurs aux standards DVB-S, DVB-S2, DVB-T et DVB-T2. Des exemples sont disponibles sous forme de fichiers .grc dans le répertoire GNU Radio.

Le fichier .grc ci-dessous est une adaptation de l’exemple du récepteur DVB-T pour l’utiliser avec un Airspy R2.  Le côté réception du graphe est primitif… Il n’y pas de filtre… , pas de contrôle automatique de la fréquence… 

Cette version du graphe offre, pour la modulation QPSK et Guard 1/32, les bandes passantes 125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz et intègre le contrôle du FEC depuis l’interface graphique (1/2,  2/3,  3/4, 5/6 et 7/8).

Une fois la constellation “lockée”, le Transport Stream (TS) est disponible sur UDP à l’adresse 230.0.0.1:10000 et sur TCP à l’adresse 127.0.0.1:10000.

L’AGC peut être déactivé en cliquant sur le block AGC2 dans le graph et en sélectionnant la fonction Bypass.

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04 et Windows 10. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

 

Le fichier  .GRC     :     dvbt-airspyr2-rx-qpsk-fec-v3

Le PDF du graphe :    dvbt-airspyr2-rx-qpsk-fec-v3

 

Nouvelle version du graphe qui inclut un filtre passe-bande pour chaque bande passante (125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz).

Les fréquences de coupure basse et haute des filtres passante bande peuvent être ajustées avec les paramètres Low Cutoff Freq et High Cutoff Freq ainsi que la pente du filtre par Transition Width.

 

Version V4.0 :  corrige le problème de la fréquence de réception qui n’était pas mémorisée.

Le fichier  .GRC     :    dvbt-airspyr2-rx-qpsk-fec-filter-v4

Le PDF du graphe :    dvbt-airspyr2-rx-qpsk-fec-filter-v4

A suivre…

SDRangel et DATV

Voilà quelques photos et commentaires sur mes essais de la dernière version de SDRangel : 6.8.0 sous Ubuntu 20.04 avec un LimeSDR Mini, une parabole de 120 cm équipée d’un LNB Othernet.

Cette version incorpore un démodulateur DVB-S et DVB-S2 ainsi qu’un modulateur DVB-S/S2 qui fera l’objet d’un prochain article.

Le démodulateur est basé sur le logiciel LeanSDR développé par F4DAV et l’utilisation du plugin est décrite en détail ici :  https://github.com/f4exb/sdrangel/tree/master/plugins/channelrx/demoddatv

Le démodulateur fonctionnant sans problème en local, je l’ai essayé dans un environnement plus difficile, la réception de transmissions en provenance de QO-100.  Pour mettre toutes les chances de mon côté, j’ai utilisé la version linux de SDRangel qui à la particularité de disposer, en option, d’un décodeur LDPC en logiciel pour la réception DVB-S2. Celui-ci permet de décoder des signaux avec un MER plus bas que -10 dB.

Pour que l’option SOFT LDPC fonctionne, il faut renseigner le chemin où se trouve l’exécutable du décodeur LDPC logiciel qui s’appelle ldpctool. Pour cela, un clic bouton droite de la souris sur le texte de l’option SOFT LDPC fera apparaître une fenêtre vous permettant de définir le chemin. Dans mon cas : usr/bin/ldpctool .

 

Pour me faciliter la sélection de la fréquence de réception, j’ai utilisé la fonction Delta Frequency  (bouton X)  du plugin du LimeSDR afin d’entrer directement la fréquence d’émission lue sur le QO-100 WB Quick Tune.

Le bouton IQ : il est utile lorsque le convertisseur a une LO inversée.  Normalement, le flux I/Q provenant de la source, la composante I (réelle) de l’échantillon complexe vient en premier. Lorsque les échantillons I et Q sont intervertis, le spectre est inversé.

Pour les détails, voir la documentation ici : https://github.com/f4exb/sdrangel/blob/master/sdrgui/gui/transverterdialog.md 

 

Merci à Edouard F4EXB et contributeurs pour cet outil fantastique.

Bonne bidouille !

 

DVB-T, GNURadio et les RTL dongles

Avec le regain d’intérêt pour l’émission au standard DVB-T grâce à son intégration par l’équipe de la BATC dans le Porstdown 2020 (LimeSDR) et le Porstsdown 4 (Adalm-Pluto) , GNU Radio intègre les blocs nécessaires  dans le répertoire Digital Television pour créer des émetteurs et des récepteurs aux standards DVB-S, DVB-S2, DVB-T et DVB-T2. Des exemples sont disponibles sous forme de fichiers .grc dans le répertoire GNU Radio.

Le fichier .grc ci-dessous est une adaptation de l’exemple du récepteur DVB-T pour l’utiliser avec les RTL dongles.  Le côté réception du graphe est primitif… Il n’y pas de filtre… , pas de contrôle automatique de la fréquence… 

Cette version du graphe offre, pour la modulation QPSK et Guard 1/32, les bandes passantes 125 KHz, 250 KHz, 350 KHz, 500 KHz et 1 MHz et intègre le contrôle du FEC depuis l’interface graphique (1/2,  2/3,  3/4, 5/6 et 7/8).

Une fois la constellation “lockée”, le Transport Stream (TS) est disponible sur UDP à l’adresse 230.0.0.1:10000 et sur TCP à l’adresse 127.0.0.1:10000.

L’AGC peut être déactivé en cliquant sur le block AGC2 dans le graph et en sélectionnant la fonction Bypass.

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04 et Windows 10 avec une clé NooElec NESDR Nano2+ et RTL-SDR.COM RTL2832U R820T2 TCXO+BIAS T+HF. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

 

Le fichier  .GRC     :     dvbt-rtl-rx-qpsk-fec-v2

Le PDF du graphe :    dvbt-rtl-rx-qpsk-fec-v2

 

A suivre…

DATV, DBV-T et GNU Radio

Vous trouverez dans cette page, une série de documents concernant l’utilisation de GNU Radio dans notre activité DATV.  Une boîte à outils et des recettes de cuisine pour vous aider à démarrer dans ce monde fabuleux du traitement du signal par logiciel.  Attention, il n’y pas de plats pré-cuisinés à réchauffer au micro-ondes…

L’environnement de prédilection de GNU Radio est linux mais il fonctionne également avec Windows et Mac OS.

Pour ceux qui désirent essayer GNU Radio sous Windows, sans problème, il existe un installeur Windows pour la version courante GR 3.8.  L’environnement permet l’utilisation des clés du type RTL-SDR.  Pour être sûr que cela va fonctionner dans GNU Radio, vérifier d’abord que votre clé fonctionne avec SDR# .

Le fichier d’installation gnuradio_3.8.2.0_win64.msi se trouve ici : http://www.gcndevelopment.com/gnuradio/index.htm

De nombreux exemples en fichier .grc concernant tous les domaine du traitement des signaux sont disponibles dans le répertoire : C:\GNURadio-3.9\share\gnuradio\examples

Pour l’installation de GNU Radio sous linux, ma préférence va à PyBOMBS, le gestionnaire de paquets pour GNU Radio.

Voilà une recette pour installer GR 3.8 sous Ubuntu 20.04 avec les source et sink blocs pour les équipements SDR LimeSDR, Adalm-Pluto, RTL-SDR, Funcube  et Ettus :

installation-gnuradio-3.8

 

Fichiers GNU Radio Companion (GRC)

– DVB-T
Avec le regain d’intérêt pour l’émission au standard DVB-T grâce à son intégration par l’équipe de la BATC dans le Porstdown 2020 (LimeSDR) et le Porstsdown 4 (Adalm-Pluto) et la non-disponibilité, pour l’instant, d’un tuner DVB-T à faible largueur de bande, GNU Radio intègre les blocs nécessaires  dans le répertoire Digital Television pour créer des émetteurs et des récepteurs aux standards DVB-S, DVB-S2, DVB-T et DVB-T2. Des exemples sont disponibles sous forme de fichiers .grc dans le répertoire GNU Radio.

Les fichiers .grc ci-dessous sont une adaptation de l’exemple du récepteur DVB-T pour les utiliser avec un Pluto ou un Ettus (USRP2, B200, etc.).  Le côté réception du graphe est primitif… Il n’y pas de filtre… , pas de contrôle automatique de la fréquence… 

dvbt-pluto-rx-qpsk-V1

dvbt-pluto-rx-16qam-V1

dvbt-pluto-rx-64qam-V1

Les graphes ci-dessus sont configurés par défaut pour un FEC 2/3 et Guard 1/32.

VLC peut être ouvert automatiquement depuis le graphe avec le bloc Python Snipped, si pas intéressé simplement le déactiver ou le supprimer. Pour que cela fonctionne, il faut installer l’extension python : python-vlc.

Sous linux, par la commande : sudo apt install python-vlc

 

Le graphe DVB-T Rx fonctionnant sur un Raspberry 4 grâce à l’image PiSDR que vous pouvez télécharger ici :
https://github.com/luigifcruz/pisdr-image

 

Fichier .grc spécifiquement pour un Ettus USRP B200 :

dvbt-uhd-rx-qpsk-V3

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

Deux copies d’écran de tests en DVB-T 1MHz et 125 KHz entre F5DB (TX Portsdown 2020 + Lime Mini) et HB9DUG (RX GNU Radio + Ettus USRP B200), distance env.  40 km sur 437 MHz.

DVB-T   1 MHz

DVB-T  BW 125 KHz

 

Fichier .grc spécifiquement pour un Lime Mini :

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

dvbt-lime-rx-qpsk-v0

DVB-T  BW 250 KHz

 

Fichier .grc spécifiquement pour un Airspy R2 :

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04 et Windows 10. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

dvbt-airspyr2-rx-qpsk-v0

Fichier .grc spécifiquement pour les rtl-sdr :

Il a été testé avec GNU Radio 3.8.2 sous Ubuntu 20.04 et Windows 10 avec une clé NooElec NESDR Nano2+ et RTL-SDR.COM RTL2832U R820T2 TCXO+BIAS T+HF. Pour l’émission avec un Portsdown 2020 équipé d’un Lime Mini.

dvbt-rtl-rx-qpsk-v0

Voilà deux nouvelles versions des graphes pour l’Airspy R2 et les rtl-sdr avec le contrôle du FEC depuis l’interface graphique donc sans avoir besoin de changer ce paramètre dans les blocs du graphe.

dvbt-rtl-rx-qpsk-fec-v1

dvbt-airspyr2-rx-qpsk-fec-v2

 

 

A suivre…

 

Tout ce que vous avez

toujours voulu savoir sur H.264 – H.265…  sans jamais oser le demander !

Avec l’avènement de la DATV à bas débit, il est devenu crucial d’utiliser avec efficience la bande passante disponible pour transmettre de la vidéo et du son. Les codecs H.264 et H.265 sont là, à notre disposition pour atteindre ce but.

Par où commencer ?

Ce document, sans prétention vous donnera, je l’espère, quelques pistes pour maîtriser ces outils sur la plateforme multimédia OBS Studio.

OBS STUDIO supporte de nombreux codecs, dans cette 1er partie, nous allons nous attaquer à l’utilisation du codec H.264 dans sa version encodage « logiciel » (libx264).

Chaque codec implémente de nombreux praramètes pour optimaliser son codage en fonction du but rechercher : par exemple, la meilleure résolution avec une latence minimum pour le débit disponible.

Pour la version « logiciel » du codec H.264 (libx264), les principales options pour gérer l’encodage sont :

Rate control

C’est ce que fait un encodeur vidéo lorsqu’il décide du nombre de bits à « dépenser » pour une image donnée. L’objectif de l’encodage vidéo est d’enregistrer autant de bits que possible, en réduisant la taille du fichier par rapport au fichier d’entrée original, tout en conservant autant de qualité que possible. Le contrôle du débit est une étape cruciale pour déterminer ce compromis entre la taille et la qualité.

Plusieurs modes sont disponibles :

  • ABR – Average Bit Rate
  • CBR – Constant Bit Rate
  • CRF – Constant Rate Factor
  • VBR – Variable Bit Rate

Dans notre cas, nous désirons dans la mesure du possible avoir un débit constant pour notre TS. Le mode retenu est donc : CBR.

Il est bon de noter qu’il n’existe pas de mode CBR natif, mais vous pouvez “simuler” un réglage de débit binaire constant en réglant les paramètres au moyen des options suivantes (en format OBS ):

x264-params=”nal-hrd=cbr” minrate=1M maxrate=1M bufsize=2M

Dans l’exemple ci-dessus, bufsize est le “buffer de contrôle de débit”, il appliquera donc la “moyenne” demandée (1 MBit/s dans ce cas) sur chaque tranche de 2 MBit/s de vidéo.

Les codages CBR sont généralement inefficaces si la vidéo est facile à coder (par exemple, images vides ou noires).

 


Preset

C’est un ensemble d’options permettant de trouver un compromis entre l’efficacité de la compression et la vitesse de codage. Un préréglage plus lent fournira une meilleure compression. Cela signifie que, par exemple, si vous ciblez une certaine taille de fichier ou un débit binaire constant, vous obtiendrez une meilleure qualité avec un préréglage plus lent.

Si vous spécifiez un préréglage, les modifications qu’il apporte seront appliquées avant que tous les autres paramètres ne soient appliqués.

Vous devez généralement régler cette option sur la vitesse la plus lente que vous pouvez supporter.

Les préréglages disponibles par ordre décroissant de vitesse sont:

  • ultrafast
  • superfast
  • veryfast
  • faster
  • fast
  • medium (default preset)
  • slow
  • slower
  • veryslow
  • placebo (à ignorer)

 

Profile

Cette option limite la sortie à un profil H.264 spécifique. Certains appareils (pour la plupart très anciens ou obsolètes) ne prennent en charge que les profils Constrained Baseline ou Main, plus limités. Vous pouvez définir ces profils avec l’option baseline ou main.

La plupart des appareils modernes prennent en charge le profil High, plus avancé. À moins que vous ne deviez prendre en charge des dispositifs limités, il est recommandé de ne pas définir le profil, ce qui permettra à libx264 de sélectionner automatiquement le profil approprié.

 

Tune

Vous pouvez éventuellement utiliser l’option pour modifier les paramètres en fonction de votre contenu d’entrée. Si vous spécifiez un réglage, les modifications seront appliquées après –preset mais avant tous les autres paramètres.

Les réglages actuels incluent:

  • film – utilisation pour un contenu de film de haute qualité
  • animation – bon pour les dessins animés
  • grain – préserve la structure du grain dans les vieux films
  • image fixe – idéal pour le contenu de type diaporama
  • fastdecode – permet un décodage plus rapide en désactivant certains filtres
  • zerolatency – idéal pour un encodage rapide et un streaming à faible latence
  • psnr – ignorez car il n’est utilisé que pour le développement de codec
  • ssim – ignorez car il n’est utilisé que pour le développement de codec

 

 

Voilà pour la partie théorique. Passons à la pratique !

 

Configuration d’OBS Studio pour son utilisation avec l’ADALM-PLUTO DATV Controller d’Evariste F5OEO.

Dans l’exemple ci-dessous, le débit disponible du TS est de 441.130 kb/s (QPSK, SR 333KS/s, FEC 2/3, Pilot off).

Deux façon de faire sont possibles pour piloter le Pluto par OBS : Streaming et Recording.

 

Output mode Streaming

Grâce au serveur RTMP (Real-Time Messaging Protocol) implémenté dans l’ADALM-PLUTO DATV Controller d’Evariste F5OEO, on peut diffuser vers le Pluto de la vidéo et de l’audio de la même façon que vers un service de streaming tel que you tube avec le mode Streaming d’OBS Studio.

Pour cela, ouvrir OBS, allez dans le menu Settings,

Configurer l’onglet Stream selon la documentation en line sur le Pluto.

Configurer l’onglet Streaming dans Output

Output Mode = Advanced

Encoder = x264

Rate Control = CBR (implémente les options pour simuler un débit constant)

Bitrate = 280 Kbps (comme point de départ : env. 70 % du débit disponible du TS)

Use Custom Buffer Size = oui

Buffer Size = 560 Kbps (comme point de départ : env. 2x le Bitrate)

Keyframe Interval = 2

Ce paramètre fait partie du codec H.264. Fondamentalement, une “Keyframe” est une image entièrement compressée, comme un jpeg. L’image suivante n’est qu’un ensemble de données qui indique ce qui est différent de l’image précédente. Lorsque la différence est trop importante, quelques “Keyframes” sont envoyées. Les “Keyframes” sont également envoyées périodiquement pour que la compression ne soit pas trop mauvaise après un certain temps.

Un intervalle plus court entre les “Keyframes” signifie que vous enverrez plus d’images, ce qui nécessite un débit binaire plus élevé. La recherche du réglage optimal dépend du type de vidéo que vous diffusez. Il semble qu’une valeur de 2 secondes soit un bon compromis entre qualité et bitrate.

CPU Usage Preset = selon les performances de votre PC

Profile = (None)

Tune = film

x264 Options = vide

 

 

Pour contrôler que le Transport Stream (TS) que vous générez est correct, l’ADALM-PLUTO DATV Controller, dans son onglet Analysis, vous permet d’analyser la répartition du débit disponible de votre TS entre les différents éléments le composant,  en particulier, la quantité de Null packets qui seraient mieux utilisés par la vidéo si trop nombreux…

Dans la même fenêtre, on peut également visualiser l’utilisation du buffer vidéo de l’application. Cela vous permettra de vérifier que le débit vidéo est adéquat ainsi que la qualité de son débit constant.

Regardez ce qui se passe lorsque que vous changez les différents paramètres de l’encodeur H.264 pour un même stream vidéo en entrée ou pour les mêmes paramètres d’encodage mais avec un stream vidéo plus ou moins dynamique.  C’est fort intéressant !

 

 

Output mode Recording

Le mode Recording d’OBS Studio permet de générer soi-même son Transport Stream (TS) grâce à son accès direct à FFmpeg intégré dans OBS. Cette façon de faire permet non seulement de fournir le TS au TX Pluto mais également au Portsdown et au DATV-Express.

Tous les paramètres de FFmpeg ne sont malheureusement pas disponibles au travers d’OBS, il est donc important de vérifier à l’aide des fichiers logs qu’il n’y pas d’erreurs avec les paramètres utilisés dans la configuration.

Le log est accessible depuis le menu HelpLog FilesView Current Log

 

 

Ouvrir OBS, allez dans le menu Settings, sélectionnez Output

Dans Output, sélectionnez Recording, puis

Output Mode = Advanced

Type = Custom Output (FFmpeg)

FFmpeg Output Type = Output to URL

File path or URL = udp://172.22.22.150:8282?pkt_size=1316

Remplacez l’adresse IP par celle de votre Pluto et contrôler que le port est bien 8282 (le Pluto, par défaut, attend le TS sur ce port).

Toujours dans Output, sélectionnez Container Format = mpegts

Dans Muxer Settings (if any) copiez la ligne suivante :
muxrate=441130 mpegts_pmt_start_pid=4096 id=1 mpegts_start_pid=256

Assignez le débit net du TS calculé (dans notre exemple 441.130 kbs) à muxrate. Le paramètre mpegts_start_pid permet de fixer le PID PMT . Le PID vidéo est  mpegts_start_pid et le PID audio mpegts_start_pid + 1

Attention de bien contrôler qu’il y ait qu’un espace entre chaque paramètre !

Puis assignez

Video Birate = 280 Kbps (comme point de départ : env. 70 % du débit disponible du TS)

Keyframe interval = 2

Rescale Output = si nécessaire

Video Encoder = libx264

Video Encoder Settings (if any) = vide…

OBS Studio ne documente pas très bien le passage de paramètres supplémentaires à l’encodeur par ce champ… Commencez donc vos premiers tests en le laissant vide. L’encodeur utilise par défaut : preset = medium; profile = high

Ensuite vous pourrez ajouter des options avec par exemple :

preset=ultrafast tune=film x264-params=nal-hrd=cbr:force-cfr:1 minrate=280k maxrate=280k bufsize=560k

Il est bon de noter qu’il n’existe pas de mode CBR natif, mais vous pouvez “simuler” un réglage de débit binaire constant en réglant les paramètres au moyen des options suivantes (en format OBS ):  x264-params=nal-hrd=cbr:force-cfr:1 minrate=280k maxrate=280k bufsize=560k

Dans l’exemple ci-dessus, bufsize est le “buffer de contrôle de débit”, il appliquera donc la “moyenne” demandée (280 Kbit/s dans ce cas) sur chaque tranche de 560 Kbit/s de vidéo.

Attention de bien contrôler qu’il y ait qu’un espace entre chaque paramètre !