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 qui fourniront un certain ratio vitesse de codage/compression. 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. De même, pour un encodage de qualité constante, vous économiserez simplement le débit en choisissant un préréglage plus lent.

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 tune pour modifier les paramètres en fonction des spécificités de votre entrée. 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

 

 

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

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

à suivre…

 

 

OBS – StreamFX plugin

StreamFX est un plugin pour OBS Studio, qui ajoute de nouvelles sources, filtres et transitions pour vous donner la possibilité d’améliorer considérablement votre configuration de streaming et d’enregistrement. En particulier, pour nos activités de DATVistes, le plugin ajoute le contrôle complet des encodeurs NVIDIA NVENC H.264 et H.265, AMD AMF H.264 et H.265 via FFmpeg à l’aide d’un interface graphique.

Pour l’utiliser avec l’ADALM-PLUTO QO-100/DATV custom firmware d’Evariste F5OEO, il suffit de :

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

  2.   Dans Output, sélectionnez Streaming, puis
      Output Mode = Advanced
      Encoder = NVIDIA NVENC H.264/AVC (via FFmpeg)


Malheureusement, OBS Studio ne supporte pas l’encodeur H.265 en mode streaming malgré de nombreuses demandes de notre communauté…

La procédure pour installer StreamFX : https://github.com/xaymar/obs-streamfx/wiki/Installation

 

 

StreamFX pour OBS

StreamFX est un plugin pour OBS Studio, qui ajoute de nouvelles sources, filtres et transitions pour vous donner la possibilité d’améliorer considérablement votre configuration de streaming et d’enregistrement. En particulier, pour nos activités de DATVistes, le plugin ajoute le contrôle complet des encodeurs NVIDIA NVENC H.264 et H.265, AMD AMF H.264 et H.265 via FFmpeg à l’aide d’un interface graphique.

Pour l’utiliser avec l’ADALM-PLUTO QO-100/DATV custom firmware d’Evariste F5OEO, il suffit de :

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

  2.   Dans Output, sélectionnez Streaming, puis
      Output Mode = Advanced
      Encoder = NVIDIA NVENC H.264/AVC (via FFmpeg)


Malheureusement, OBS Studio ne supporte pas l’encodeur H.265 en mode streaming malgré de nombreuses demandes de notre communauté…

La procédure pour installer StreamFX : https://github.com/xaymar/obs-streamfx/wiki/Installation

 

 

DATV-Express – Le retour !

Voilà comment remettre au goût du jour sous Windows votre “vieille” carte DATV-Express à l’aide de deux logiciels : DATV-Express server et OBS Studio. Cette solution simple vous permet l’encodage en H262, H264 et H265 avec toutes les fonctionnalités d’édition vidéo et audio d’OBS Studio.

Le logiciel DATV-Express server gère la partie émission et OBS Studio lui fournit le Transport Stream. DATV-Express server de G4GUO est téléchargeable sur le site du projet DATV-Express ici:   DATV-Express Server Windows

Le logiciel est utilisé pour définir la fréquence d’émission, le symbol rate, le FEC, la puissance d’émission et le port IP (dans cet exemple : 8282) sur lequel le Transport Stream est attendu. La fonction TOC permet la mise en émission automatique dès la présence d’un TS sur le port IP (dans cet exemple; 8282).

La génération du TS utilise la fonction Recording en Output Mode = Advanced d’ OBS Studio.

Voilà pas à pas comment configurer OBS pour cela. Dans cette exemple, l’émission est en mode DVB-S QPSK SR2000 et FEC 5/6 et encodage MPEG2.

  1. Déterminer  le débit net disponible pour le TS à l’aide d’un calculateur, par exemple :  DVB-S/DVB-S2 Bitrate Calculator . Dans notre exemple, 3.079 Mbps

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

  3. 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.54:8282?pkt_size=1316

    Remplacez l’adresse IP par celle de votre PC et assignez le débit net du TS
    calculé au point 1 à bitrate

    Contrôler que le port choisi (dans cette exemple 8282) et le même que dans DATV-Express Server

  4. Toujours dans Output, sélectionnez Container Format = mpegts


  5. Dans Muxer Settings (if any) copiez la ligne suivante :
    muxrate=3079000 mpegts_pmt_start_pid=255 id=1 mpegts_start_pid=256

    Assignez le débit net du TS calculé au point 1 à 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 !

  6. Puis assignez
    Video Birate, Keyframe interval et Rescale Output si nécessaire

  7.  et finalement, choisissez l’encodeur vidéo et audio, dans notre exemple :
    Video Encoder = mpeg2video
    Audio Encoder = mp2
    Audio Bitrate = 96kbps

Cette paramétrisation peut-être sauvée dans un profile nommé par exemple : dvbs-qpsk-sr2000-56-h262. Ainsi on pourra facilement rappeler différents profiles en fonction des paramètres choisis pour ceux-ci.

Pour lancer une transmission, pour autant que la fonction TOC ait été sélectionnée dans DATV-Express Server, il suffit de cliquer sur Start Recording.

 

 

 

 

Forum DATV

HAMRADIO 2019

OSCAR-100: La DATV à la conquête de l’espace!

Après ISS, c’est au tour du premier satellite géostationnaire Es’hail-2 équipé d’un transpondeur pour le trafic radioamateur d’ouvrir de nouveaux horizons en DATV.

OSCAR-100 (OQ-100) est en service depuis le 14 février 2019 et déjà de nombreuses liaisons ont été réalisées grâce à ce relais unique dans l’espace!

Le Raspberry Pi est devenu un véritable “couteau suisse” pour construire sa station DATV.
Depuis ses premiers pas en 2016, cette plate-forme a donné naissance à différents systèmes pour l’émission et la réception de signaux DATV. Parmi les plus connus, le projet “Portsdown”, basé sur le logiciel de F5EOE et développé par le BATC, a été construit par de nombreux adeptes de la DATV.


Le décodage de signaux DATV à bas débits des symboles se fait aujourd’hui principalement grâce au “Minitiouner” développé par F6DZP. La dernière version (V0.9) se prête particulièrement bien à la réception des signaux en provenance de OQ-100.

Les plate-formes SDR (p.ex. Lime SDR, Pluto, Ettus, ..) sont en train de devenir un composant indispensable des systèmes DATV modernes, permettant de suivre l’évolution des algorithmes de codage vidéo et des standards de modulation.


Venez découvrir ces nouvelles tendances, en théorie et en pratique, ainsi que bien d’autres sujets passionnants au

 

Forum DATV à Hamradio 2019
salle Oesterreich, vendredi 21 juin 2019 de 12:00 à 15:45

Programme :

12:00 Démonstrations de systèmes DATV
12:30 Systèmes DATV: Solutions disponibles aujourd’hui (Michel/HB9DUG, Dave/G8GKQ)
13:15 Plus de 50 ans de TV couleur en Europe (Uwe/DJ8DW)
13:45 Pause café
14:15 OQ-100: le projet et les aspects opérateur (Jens/DH6BB)
15:00 OQ-100: DATV sur OQ-100 (Noel/G8GTZ)
15:45 Conclusions

Ne manquer pas cette occasion unique de rencontrer les spécialistes de la DATV en Europe!

A-Tech 2019 Printemps

Les présentations

Participation record pour cette édition des Ateliers Techniques (A-Tech) organisé par le swissATV, le groupe technique ATV de l’IAPC.

Vingt-et-un OM’s, venant de toute la Suisse romande ont participé aux conférences du matin, puis à de nombreuses démonstrations des solutions énumérées en début de matinée. Le tout entrecoupé d’une pose pique-nique conviviale.

On en redemande !

Tutorials :

 

A-Tech 2019 Printemps

A vos agendas !  L’atelier technique du printemps est prévu

le samedi 27 avril 2019, entre 10hoo et 16hoo sur l’ancien site de l’émetteur HBG

Merci de vous inscrire ici :  A-Tech 2019 Printemps  

  •  100 % pratique, cet atelier est dédié à l’utilisation des divers systèmes DATV

  •  amenez vos PiPo, Pluto et autres systèmes DATV ainsi que vos soucis à leur sujets…

  • de la bonne humeur pour partager vos expériences ainsi que l’apéro et votre pique-nique sur place

 

Démonstrations : du LimeSDR Mini avec Portsdown 2019, des logiciels SDRAngel de Edouard F4EXV avec son module de réception DATV et SoDaRadio de KB1VC, transceiver tout modes VHF/UHF sur QO-100.

Petit cours pour les Nuls sur l’utilisation du Talkgroup 9410 – ATV Talk sur nos pockets DMR par HB9ADJ Charly

 

Une salle de cours est mise à disposition par l’Organisation Régionale de Protection Civile du district de Nyon (ORPC) à Prangins, 120 route de l’Etraz, par le capitaine P. Beney HB9GVX

.

L’atelier est ouvert à tous !  Membres et non-membres.

Mini marché aux puces ATV

 

 

Merci de vous inscrire ici :  A-Tech 2019 Printemps

AGO 2019 – 23 mars dès 10h00 à Vich

A vos agendas !

Chers amis, membres du Groupe swissATV de l’IAPC,

Le comité a le plaisir de vous inviter à l’assemblée générale ordinaire de l’IAPC,

                   le samedi 23 mars 2019 à Vich (VD).

Elle se déroulera dès 10h00 avec un café de bienvenue, suivi de l’AG puis d’un repas sur place pour ceux qui le désirent. La journée se poursuivra par des conférences techniques, démonstrations et marché aux puces.

Pour ceux qui souhaiteraient poursuivre les discussions en soirée, un repas est prévu.

Ne manquez pas ce rendez-vous !

Les détails suivront.

73 QRO de Michel HB9DUG
Président

SDRangel DATV Windows !

Merci à l’équipe de développeurs de SDRangel pour avoir inclus le démodulateur DATV dans la version Window de SDRangel.

J’ai testé le démodulateur DATV avec les hardware SDR RTL-SDR, Airspy Mini, PlutoSDR et LimeSDR Mini. Cela fonctionne sans problème pour autant que les drivers aient été installés.

La version utilisée est la V4.3.1. Elle est téléchargeable sur GitHub SDRangel.

Bon essai

Portsdown & LimeSDR

Voilà un joli cadeau de Noël de la part de l’équipe Portsdown !  La version 201811300 introduit le support du LimeSDR Mini et du LimeSDR USB ! 

Les ressources CPU du Raspberry PI étant limitées, les modes de transmission LimeSDR (DVB-S, DVB-S2) sont limités à 1 Ms/s et au-dessous.

ATTENTION – Lors de la calibration avant de transmettre, le LimeSDR transmet à pleine puissance… ce qui peut-être fatal pour l’ampli de puissance !  Deux signaux PTT avec délai sont disponibles pour éviter ce problème.

L’utilisation des LimeSDR avec le logiciel Portsdown est décrite sur le site de la BATC ici:  Using LimeSDR with Portsdown

L’installation du logiciel Portsdown est documentée ici:  Installation for BATC Portsdown Transmitter Stretch Version

Bonne bidouille

LimeNET Micro

Le Graal pour une micro station ATV ?

Lime Microsystems annonce un nouveau module, LimeNet Micro,  il est basé sure la technologie au coeur des modules LimeSDR USB et Mini. En plus, il intègre un module GPS, l’alimentation par le connecteur Ethernet (POE) et un Raspberry Pi.

Suite aux remarques faites par la communauté, le design sera modifié pour intégrer également un connecteur pour la caméra et l’écran. Une plateforme idéale pour un tx ATV intégré et portable !

Es’hail-2 et GNURadio

A l’occasion de de la Surplus Party 2018 à Zofingue, le swissATV, le groupe technique ATV de l’IAPC a présenté, All-in-One LimeSuite 10 GHz, l’extension à 10 GHz du prototype expérimental All-in-One TX/RX DATV SDR ainsi qu’un prototype d’un émetteur DVB-S2 pour le futur transpondeur large bande Phase 4-A de l’AMSAT à bord du satellite Es’hail-2.

L’émetteur DVB-S2 “logiciel” utilise GNURadio et un script permettant de configurer automatiquement les paramètres d’émission (fréquence, SR, modulation, format vidéo, etc) en fonction du canal d’émission choisi selon la recommandation de l’AMSAT.

Le logiciel implémente les modulations QPSK, 8PSK, 16APSK et 32APSK, les SR 125 KS, 333KS, 1MS et 2MS

Les différents fichiers de ce prototype sont à disposition sur demande.

Merci à notre photographe attitré,  Olivier HB9BBN, pour les photos.

 

AM et FM TV

Pour les nostalgiques et expérimentateurs du numérique, voilà une façon simple d’émettre de l’ATV en modulation d’amplitude et de fréquence grâce au fantastique logiciel SDRangel développé par Edouard F4EXB et au matériel SDR récent du type LimeSDR et  ADALM-Pluto entre autres.

SDRangel intègre un plugin pour l’émission décrit ici :  ATV  modulator plugin  et pour la réception ici :  ATV  Demodulator plugin

Voilà trois photos de mes essais, de gauche à droite, mon prototype All-in-One, transceiver SDR 10 MHz – 12 GHz à base d’un LimeSDR Mini et LMS8001 Companion, en émission AM avec le logiciel SDRangel; réception AM avec un LimeSDR Mini et SDRangel; idem en réception FM.

Portsdown 2018

La dernière version du logiciel Portsdown 2018, basé sur un Raspberry PI avec un écran tactile et le système d’exploitation Raspbian Strech, offre une solution très intéressante pour une utilisation en portable.

Aujourd’hui, les principales fonctionnalités du logiciel sont :

– émission DVB-S avec l’émetteur Porstdown et avec le DATV Express. En développement, le support du LimeSDR
– réception DVB-S à bas débit avec une clé SDR
– fonction analyseur de spectre avec une clé SDR
– réception FM avec une clé SDR
– générateur de fréquence
– calculateur d’azimut
– fonction de streaming vers le site de la BATC

Après la configuration initiale qui nécessite un PC, le système se gère uniquement avec l’interface utilisateur basé sur l’écran tactile, y compris la mise à jour du logiciel qui est complétement automatisée et ne pose donc pas de problème pour les OMs néophytes en informatique.

Le logiciel utilise avc2ts pour les flux H264, un outil qui remplace ffmpeg garantissant une latence minimum ainsi qu’un transport stream respectant la norme DVB. 

Avec l’arrivée du support des cartes LimeSDR, Portsdown 2018 sera une solution d’émission compacte et performante pour le portable.