le modulateur Digilite du BATC

Transmission UDP vers Digilite

Messagede F6DZP » Lun 17 Juin 2013 03:58

Suite à de nombreuses questions je vais reprendre les explications qui permettront de bien préparer vos émissions de flux TS vers votre Digilite en utilisant le mode UDP.

Il faut déjà bien comprendre ce qu'est le mode Multicast UDP et être sûr que votre ordinateur le supporte.
Pour cela on préparera bien le mode réseau de son ordinateur et on fera des tests pour être sûr que le mode Multicast UDP fonctionne bien sur ce PC.

Ensuite on pourra voir comment préparer un graphe qui utilise une webcam pour coder en TS vers votre Digilite via UDP.
C'est comme cela que je fonctionnait avec mon Digilite il y a un an quand j'ai fait les démonstrations à SEIGY 2012.

Bien sûr, n'hésitez pas à faire des commentaires ou poser des questions, le forum est fait pour cela.

Transmettre en mode UDP Multicast (multidiffusion sur IP utilisant le protocole UDP)


Ce protocole est utilisé pour envoyer sur IP des données qui ne doivent pas être perturbées par des dialogues avec le/les récepteur(s) pour savoir s'ils ont bien reçu les paquets ou non. le flux envoyé étant en général des données multimédia, il doit rester constant, on diffuse, écoute qui peut/veut, il peut y avoir 1 ou plusieurs "écouteurs" on ne se préoccupe pas d'eux , on diffuse. C'est du "Multicast". C'est comme si on faisait une émission sur HF, il peut y avoir O ou 1 ou 25 "écouteurs", on ne le sait pas, on diffuse.

les adresse+port utilisées pour la multidiffusion sur IP font partie de la Classe D :
elles doivent être comprises entre 224.0.0.0 et 239.255.255.255


C'est pour cela que dans mes exemples je prends souvent la valeur 230.0.0.1. le port lui peut être ce que vous voulez, je mets 1234 car facile à taper, offert par défaut dans VLC etc...

On se retrouve donc avec 3 valeurs:
Adresse UDP : 230.0.0.1
port UDP : 1234
Interface réseau utilisée : 192.168.x.x (IP de mon réseau local)


Vous verrez plus loin dans le réglage de TSreader, qu'il faut bien donner ces 3 valeurs.

Quand je diffuse en UDP Multicast sur mon réseau local, tous les "récepteurs" potentiels sont les logiciels qui se trouvent sur des ordinateurs qui sont sur mon réseau local.
Si j'ai 2 PC de bureau et 1 PC portable, quand je diffuse avec UN PC, tout ce que je diffuse "envahit" le réseau local pour aller aussi vers tous les autres PC.
Je peux donc exécuter un exemplaire VLC en réception UDP sur chacun des 3 ordinateurs, plus TS Reader +.... autant de logiciels que je veux sur chaque PC vont recevoir ce flux UDP.

C'est vraiment proche d'une émission amateur, avec autant de SWL que l'on veut.

Si vous utilisez Tutioune pour diffuser en UDP ( bouton UDP) ce que vous recevez, vous pouvez mettre en route un VLC pour voir la video dans une autre fenêtre, mettre en route TS reader pour analyser en direct votre flux, mettre en route d'autres logiciels d’analyse... et mettre en route Digilite transmit pour retransmettre en direct le signal DATV sur une autre fréquence. Un transpondeur DATV entièrement numérique gratuit!
Les réglages par défaut de Tutioune sont : adresse UDP et port= 230.0.0.1:1234 et interface= votre IP locale. ( mais cela peut être changé dans Tutioune.ini ou tutioune2.ini)


Jean Pierre F6DZP
Dernière édition par F6DZP le Dim 23 Juin 2013 05:28, édité 7 fois.
F6DZP
 
Messages: 724
Inscription: 24 Déc 2010

Re: Transmission UDP vers Digilite

Messagede F6DZP » Lun 17 Juin 2013 04:18

Préparation/vérification de votre réseau local


Si possible, ne pas utiliser votre réseau Wifi pour faire des transmissions Multicast UDP

Il faut d'abord essayer d'avoir un réseau local qui supportera sans problème vos essais de transmission par multicast UDP.
Il faut se rendre compte que quand on envoie un flux en Multicast UDP, c'est un flux multimédia qui ne supporte pas de rupture dans la transmission comme peuvent supporter l'envoi de fichiers attachés en HTTP...
Il faut donc avoir un réseau local bien adapté. En effet quand je reçoit une émission Broadcast ( HotBird freq 11137MHZ SR 27500 par ex) avec Tutioune , si je clique sur le bouton UDP, j'envois en multicast UDP dans mon réseau local un flux continu de 38 Mbps. Il y a de grand chance que mon réseau Wifi se mette à genoux et que les images saccadent, tout bloque et parfois les applications plantent. C'est normal.

Il faut donc éviter de se trouver en situation où c'est votre réseau local wifi qui va transporter les flux UDP.
Il faut donc avoir mis en route votre interface Ethernet qui est dans votre PC, même si vous n'avez rien en réseau local par câble Ethernet.
Il faut utiliser ce réseau filaire ( ou pseudo réseau) Ethernet et non votre réseau Wifi.

La configuration que je préfère utiliser (mais si j'ai 1 seul PC comme quand je parts faire des démonstrations):
--> réseau local Wifi pour mes connections Internet avec ma Box : 192.168.0.xxxx
--> réseau local filaire Ethernet pour mes transmissions Multicast (et partage/ échange de fichiers quand j'ai plusieurs PC) : 192.168.1.xxxx
Comme cela les 2 réseaux sont séparés et le réseau Ethernet fait 100Mbps ou 1Gbps ce qui sera largement suffisant.

Comment mettre en route votre réseau filaire Ethernet si ce n'est pas déjà fait?

Il faut activer votre interface Ethernet. Pour cela il faut qu'elle soit reliée à quelque chose :
- soit un Hub 100Mbps ou 1Gbps
- soit un switch 100Mbps ou 1 Gbps
- soit un autre PC via un câble Ethernet croisé.
Si vous n'avez qu'un seul PC, il n'y aura rien d'autre relié à votre Hub ou Switch mais cela n'a pas d'importance, le pilote de votre carte Ethernet se mettra en route et vous aurez un second réseau 192.168.1.xxx ( vous pouvez choisir l'adresse IP à la main)
( un Switch Ethernet 10/100Mbps - 5 ou 8 ports -coûte environ 10 euros)

Les transmissions UDP vont utiliser ce réseau Ethernet et on va le tester

On va utiliser VLC qui sait diffuser un flux TS (venant d'un fichier) en mode Multicast UDP. C'est suffisant pour tester notre réseau local en mode UDP mais malheureusement VLC ne pourra pas être utilisé pour coder un flux en Mpeg2 ou H264 et l'envoyer en UDP vers un modulateur DVB car il ne code pas en CBR (constant bit rate) mais en VBR (variable bit rate)

Pour cela il faut disposer d'un fichier vidéo de quelque minutes sur son disque dur, si possible déjà en mpeg2.
On va le lire avec VLC, le diffuser en flux TS re codé mpeg2:
je lance VLC
je fais:
média --> ouvrir un fichier (attention le 2eme dans le menu, car mal traduit c'est ouvrir un média qui aurait du être écrit- correspond à CTRL +s hift + O)
On voit apparaître une fenêtre "ouvrir un média"
sélection du fichier -> cliquer su "ajouter" et aller sélectionner votre fichier vidéo sur votre disque dur
en bas du panneau "ouvrir un média" dérouler la liste commençant par "lire" et sélectionner Diffuser.
suivant
cocher "afficher localement"
dérouler le cadre blanc où il y a "fichier" pour choisir "UDP legacy"
cliquer sur le bouton "Ajouter"
mettre Adresse : "230.0.0.1" (souvenez vous : valeur entre 224.0.0.0 et 239.255.255.255)
port : "1234"
cocher "activer le transcodage"
profil : choisir dans la liste déroulante : Mpeg2 + MPGA (TS)
dans la boite à outil vérifier les réglages :
- encapsulation : TS
-codecs vidéo : Mpeg2
débit : 4000 kb/s
vitesse : 25,00 ips
cocher " video"
cocher "conserver la taille originale ..."
-codecs audio : Mpeg Audio
débit 64 kb/s
cocher "audio"
cocher "conserver la piste audio originale"
suivant
NE PAS COCHER "diffuser tous les flux élémentaires"

Ensuite on lance la diffusion en cliquant sur le bouton "Diffuser" du bas.

on lance un autre VLC qui lui va être en réception UDP:
média --> ouvrir un flux réseau --> "udp://@230.0.0.1:1234"
lire
Il doit se mettre en route et lire la vidéo diffusée.

on lance en même temps TS reader pour voir l'analyse du flux
on verra que le débit "Mux bitrate qui ne devrait pas bouger va bouger à cause du codage VBR , c'est pour cela que VLC sera à proscrire pour fabriquer un flux TS.

Mais cela permet de vérifier au moins que le multicast UDP fonctionne sur son PC.

diffusion UDP avec VLC lisant un film.jpg
diffusion UDP avec VLC lisant un film.jpg (202.32 Kio) Vu 18690 fois


Le premier VLC lit le fichier et le diffuse en Multicast UDP
le deuxième VLC reçoit le flux par UDP, de décode et l'affiche
TS reader lui reçoit aussi le flux et affiche les infos en temps réel.

Vérifier bien que TS reader ne relève pas de "continuity error" ou "CRC" error et regarder les débits.

complément :
voici comment bien régler TS reader au démarrage pour lire le flux UDP Multicast.
( mettez votre propre IP 192.168.1.xxxx)
TSreader setup.jpg
TSreader setup.jpg (93 Kio) Vu 18690 fois

Ici j'ai mis l'adresse UDP : 230.0.0.1 et le port : 1234
J'ai ensuite indiqué quelle interface IP utiliser : j'avais le choix entre 192.168.0.xx qui est mon réseau Wifi et 192.168.1.xx qui est mon réseau Ethernet. J'ai bien sûr choisi ce dernier, de préférence, pour ne pas encombrer le réseau wifi.

La prochaine étape sera de fabriquer un TS hyper stable avec un graphe. Mais avant il faut que l' exercice précédent fonctionne bien.

Jean Pierre F6DZP


à suivre
F6DZP
 
Messages: 724
Inscription: 24 Déc 2010

Re: Transmission UDP vers Digilite

Messagede F6DZP » Lun 5 Mai 2014 03:58

Nous allons donc voir comment fabriquer un graphe qui permet de capturer avec une webcam C525, encoder la video et l'audio en mpeg2, puis multiplexer pour obtenir le TS (Transport stream) que l'on envoie ensuite dans notre réseau local par UDP.

Une fois les bons filtres directshow installés ( voir plus loin) on a juste à construire ( et sauver) le graphe qui va faire tout cela.
J'obtiens le graphe suivant:
C525 elecard_Mpeg2 elecard_audio elecard_mux Major_UDP sr4000 graph.jpg
C525 elecard_Mpeg2 elecard_audio elecard_mux Major_UDP sr4000 graph.jpg (90.51 Kio) Vu 15447 fois


J'ai donc :
-la sortie video de ma webcam qui est envoyée dans un codeur Mpeg2
-la sortie audio de ma webcam qui est envoyée dans un codeur MpegAudio
-les 2 signaux codés sont multipléxés dans le multiplexeur MpegTS
- le signal TS est envoyé dans un module de transfert UDP sur mon réseau local.

Voyons les réglages:
réglage C525.jpg
réglage C525.jpg (43.79 Kio) Vu 15447 fois

pour régler cela on clique droit sur la pin "capturer" de sortie du filtre Logitech Webcam C525. Il faut régler la sortie en mode RGB24 et choisir le format d'image, ici 640x480 pour du 4/3 définition NTSC, mais j'aime mieux le 1024x576 pour le format 16/9 qui est plus normal de nos jours.

réglage codeur Mpeg2 elecard.jpg
réglage codeur Mpeg2 elecard.jpg (72.96 Kio) Vu 15447 fois


j'ai bien demandé un bitrate constant.
Comme je pense transmettre à SR4000 fec 4/3 , je sais que le résultat final sera un débit de 5 529 412 bps. Je sais que le logiciel Digilite transmit aime bien ajouter lui même un peu de Null packets et que je dois lui envoyer un débit inférieur à ces 5 529 412 bps, je vais régler le total envoyé en UDP à 5 300 000 bps.
Donc je choisis pour la video 4 900 000 bps
et pour l'audio 48 kbps:
réglage codeur audio elecard.jpg
réglage codeur audio elecard.jpg (51.61 Kio) Vu 15447 fois


Le multiplexeur est réglé en mode DVB pour atteindre 5300 000 bps en faisant un peu de padding ( remplissage de null packet)
réglage multiplexer elecard.jpg
réglage multiplexer elecard.jpg (80.17 Kio) Vu 15447 fois


J'envoie dans le filtre MajorUDP sender réglé pour envoyer en Multicast en utilisant l'adresse 230.0.0.1 port 1234 et il ne restera plus qu' à "écouter" ce flux UDP avec VLC et TSreader et Digilite transmit réglé en mode UDP.
réglage MajorUDPsender.jpg
réglage MajorUDPsender.jpg (94.83 Kio) Vu 15447 fois


On obtiens donc:
C525 elecard_Mpeg2 elecard_audio elecard_mux Major_UDP 5300kbps  Tsreader.jpg
C525 elecard_Mpeg2 elecard_audio elecard_mux Major_UDP 5300kbps Tsreader.jpg (127.13 Kio) Vu 15447 fois


on peut voir la répartitions des données dans le flux TS qui est envoyé à mon Digilite.

C'est bien beau tout ça mais comment avoir tous ces filtres Directshow disponibles sur son PC?

Pour le filtre MajorUDPsender:http://www.majority.nl/files/majorudpsend.zip
vous décompressez dans un répertoire et vous enregsitrez le filtre en faisant : regsvr32 "C:\...chemin ..\MajorUDPSend\MajorUdpSend.ax" dans la fenêtre de commande
( voir http://www.vivadatv.org/viewtopic.php?f=27&t=197

Pour les filtres Elecard:
Il faut télécharger le SDK elecard:
http://www.elecard.com/en/products/development/sdk/codec-sdk.html
et l'installer.
Puis on va dans le répertoire C:\program files\Elecard\Elecard Codec SDK G4 Eval v2.1\components et on enregistre avec la même méthode regsvr32 ...les 3 filtres suivants:
emac.ax ( elecard audio encoder)
em2venc_hd.ax (Elecard MPEG2 Video encoder HD)
empegmux.ax ( Elecard multiplexer)

Voilà, cela permet déjà de tester et prendre en main la méthode.
Après on peut aussi utiliser d'autres codeurs car ici les codeurs video et audio sont limités au mode démo.
j'ai notamment utilisé il y a 2 ans avec mon Digilite le codec H264 gratuit de ffdshow.
Je vais essayer de retrouver tout cela.

Sinon on peut aussi faire un graphe qui utilise les données d'une carte de capture (hauppauge ou autre) pour les envoyer en UDP.
J'ai aussi beaucoup utilisé au début les données des camera DV ou HDV que l'on peut recoder et multiplexer en TS envoyé par UDP vers Digilite.

Ne pas hésiter à poser des questions ou autre demandes, le forum est fait pour cela. Si vous vous posez des questions, il y en a sûrement aussi d'autres que vous.
Et moi de mon coté il peut y avoir des trucs qui me semblent évidents car je joue souvent avec, mais méritent plus d'explications pour d'autres..
Ou vous voulez d'autre exemples???

J'ai utilisé tout cela avec mon Digilite il y a 2 ans, y compris pas mal de tests en HD/H264. Mais mon Digilite étant prété, je n'ai pas retesté pendant la rédaction de ce texte.

Jean Pierre F6DZP
Dernière édition par F6DZP le Mar 6 Mai 2014 06:29, édité 1 fois.
F6DZP
 
Messages: 724
Inscription: 24 Déc 2010

Re: Transmission UDP vers Digilite

Messagede F6DZP » Lun 5 Mai 2014 05:14

Bonjour,
Je viens de voir que j'avais déjà expliqué la partie du codage et multiplexage ici : http://www.vivadatv.org/viewtopic.php?f=62&t=195&start=10

Donc ce qu'il y a de nouveau c'est surtout le filtre UDP sender ( envoi UDP) qui remplace le filtre File Writer ( écriture dans fichier) que l'on utilisait avant.
Quand on a le flux Ts on l'envoie par UDP.

Jean Pierre F6DZP
F6DZP
 
Messages: 724
Inscription: 24 Déc 2010

Re: Transmission UDP vers Digilite

Messagede F5GQ » Lun 5 Mai 2014 13:02

Merci de nous avoir rafraichi la mémoire. Tout cela fonctionne très bien également en Windows 8. A noter que le mode UDP permet de réaliser simplement avec Tutioune et votre PC un relais automatique. Je reçois sur 435.5 les émissions de F4CJN et je me sers de la sortie UDP pour moduler mon Digilite bibande (version locale avec 2 VFO) soit en 2.3 ou 1.3 GHz. Pourquoi pas bientôt avec le Raspberry qui me permet déjà d'émettre en H264 avec mon Digilite assemblée grâce à mon virtuose complice F5FFN.
Encore merci Jean-Pierre et Evariste pour vos travaux qui nous permettent encore d'avoir le pouvoir de faire travailler nos cervelles vieillissantes pour certains dont je fais parti.
73's. QRO de F5GQ Gérard.
F5GQ
 
Messages: 3
Inscription: 23 Juin 2012

Re: Transmission UDP vers Digilite

Messagede F5GQ » Lun 5 Mai 2014 17:30

Suite à mon précédant message je tiens à préciser que tout fonctionne bien également en Windows 8-32bits seul essais que j'ai fait.
73's F5GQ Gerard.
F5GQ
 
Messages: 3
Inscription: 23 Juin 2012

Forums Statistiques

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Options

Retourner vers DIGILITE