Synchronisez les lecteurs VLC sur deux machines


15

Est-il possible de synchroniser la lecture de VLC sur deux machines différentes? J'aimerais avoir deux PC dans différentes parties de la maison pour lire la même vidéo - toutes les autres suggestions qui pourraient résoudre ce problème sont également les bienvenues!

Réponses:


9

J'utilise la multidiffusion. Cela envoie un flux à tous les récepteurs simultanément.

Le réseau a des segments câblés et wifi.

Avec la multidiffusion, le flux utilise une seule fois sa bande passante sur chaque segment

Cela signifie également que tous les ordinateurs reçoivent le même paquet à peu près au même moment, moins de retards de propagation via mes commutateurs. Les délais de propagation sont négligeables pour le son et la vidéo visible par l'homme (30 ips).

La seule chose qui puisse arriver est que différents ordinateurs fonctionnent à différents endroits de leur cache réseau. Pour les garder aussi près que possible, j'ai refusé la mise en cache jusqu'à ce que le système le plus lent (un ordinateur portable 32 bits sur wifi) commence à se couper parfois, puis je lui donne un peu plus.

Raison: une fois que vlc commence à manger du tampon, il faut beaucoup de temps pour revenir au début du tampon, il semble que le codage ne priorise pas pour revenir à `` zéro tampon '' mais est confortable pour rester là-haut.

J'utilise également sur le «serveur» deux clients vlc: l'un génère le flux et ne s'affiche pas localement. L'autre est le client d'affichage qui écoute le flux comme tous les autres systèmes, avec le même paramètre de cache réseau.

En ligne de commande:

client de génération de flux qui se connecte au flux Internet (celui-ci a un grand cache donc il ne coupe pas et délivre un flux constant dans mon réseau de multidiffusion):

vlc -vvv http://yp.shoutcast.com/sbin/tunein-station.pls?id=154 --sout udp:239.0.0.1 --no-sout-display --sout-keep --ttl 4 (qui est censé être sur une seule ligne)

Comme vous le voyez, --no-sout-display est donné: la sortie du flux est générée, mais pas de sortie locale. Je fais de même, peu importe si je joue des fichiers / DVD locaux ou du contenu réseau.

Et assurez-vous que le paramètre --ttl est> 1 si vous avez un routeur sans fil quelque part. Je le mets toujours à 4 pour ne pas avoir de «surprises». Cependant, si vous avez un réseau multi-routeur et que les hôtes sur un réseau ne peuvent pas voir la multidiffusion, vous devrez peut-être activer ce ttl d'un cran ou deux (ou vérifier si votre routeur laisse passer la multidiffusion, tous les routeurs sans fil ne sont pas tous par défaut).

Sur chaque système, y compris celui qui génère le flux et a le vlc non en sortie, j'ai le vlc suivant:

vlc udp://@239.0.0.1 --network-caching 60 --sout-keep

Cela définit la mise en cache réseau dans mon réseau et avec les performances du système le plus lent à max. .06 secondes de cache.

Pour le son, cela correspond à une distance de propagation d'environ 100 pieds, ce qui signifie que si le cache est consommé au maximum, le système lent sonne comme s'il serait à 100 pieds.

Mon délai réseau est de 0,5 ms ou mieux (pas de ping, c'est un aller-retour de pile de faible priorité et plusieurs ms).

À ma place, où je ne vois ni n'entends jamais simultanément deux systèmes distants de plus de 100 pieds (je ne souffle pas à l'étage et au sous-sol, l'avantage de le faire de cette façon est d'avoir le même partout sans faire exploser l'ampli du salon).

L'ordinateur portable dans la chambre: s'il s'éteint trop souvent, je monte juste sa cache localement, je ne l'entends pas au sous-sol ou à l'étage, et quand j'y suis j'ai probablement éteint les autres :-).

Très important: chaque fois que j'ai besoin de transcodage, j'ai tous les récepteurs sur le même protocole et le même codage, et je fais le transcodage sur le vlc non-sortant qui génère le flux.

Je ne transcode pas sur les clients multicast. Cela entraînerait de mauvais retards car chaque système a des performances différentes.

Pour cet exemple audio, il n'y a pas de transcodage du tout, tous peuvent comprendre les encodages d'origine shoutcast. (en fait, je n'ai pas besoin de transcoder pour la vidéo non plus ... tous ont les jeux de codecs complets).

est-ce que cela aide?

Oui, il y a des exemples sur le net pour faire du vlc synchronisé en utilisant le maître / client de synchronisation de réseau et plusieurs flux de monodiffusion (une chaîne cible de 10 miles de long sur le serveur :-D).

Cependant: le streaming unicast vers n clients sur un segment fait apparaître le flux n fois sur ce segment, et plus vous montez vers le serveur d'origine, plus les multiplications du même flux consomment de la bande passante. Je ne pourrais pas voir ma vidéo 1080p. Mon sans fil peut à peine gérer l'un d'entre eux, pas toujours (56 Mo).

Oh, vous demandez comment dans l'interface graphique:

dans la fenêtre de streaming, cliquez sur «plus d'options» et désélectionnez «lire localement» pour l'instance vlc qui génère le flux (a comme entrée un fichier local, une liste de lecture ou un flux Internet). Laissez la mise en cache par défaut (1000 ms de cache). Si l'un des autres clients ne peut pas comprendre votre codec, choisissez-en un qui le comprendra et transcoderez-le sur ce même système.

Sur les options des destinations, vous laissez la valeur par défaut `` afficher localement '' activée et modifiez la mise en cache: jouez avec cela (commencez à 100 et désactivez-la) jusqu'à ce que votre système le plus lent s'arrête, puis définissez tous les systèmes les plus rapides sur le même. Avec des tampons courts: quand un client démarre, cela prend environ 10 à 15 secondes de pulvérisation jusqu'à ce qu'il «l'obtienne».

Mes clients sont à 100% du temps, chaque fois que j'arrête de diffuser, ils continuent d'écouter l'adresse de multidiffusion.

Aucun port indiqué: la valeur par défaut est 1234 partout, j'exécute un serveur d'origine. Si vous en exécutez plusieurs, vous devez donner un numéro de port comme ceci: ... 239.0.0.1:65535. Mes exemples de numéros: choisissez n'importe quelle adresse de multidiffusion en 239/8. Ports: choisissez n'importe lequel au-dessus de 1024 (oui, 1024, car Microsoft utilise également 1024 sur MC).

Si personne n'écoute, le flux n'apparaît pas du tout sur le réseau, il ne démarre que lorsque le premier écouteur rejoint la session de multidiffusion. Donc, si vous en avez défini dix et que vous n'en écoutez qu'un, vous disposez alors d'un flux consommant de la bande passante. Si vous écoutez différents flux, vous obtenez n fois la bande passante consommée pour n flux.

Multidiffusion: la bande passante utilisée est la même pour un ou 10 000 clients par flux.

Utilisation de la monodiffusion: chaque client saute sur le flux de l'expéditeur à un moment différent, ce qui signifie que vos décalages sont toujours présents même si vous resserrez la mise en cache. Unicast et multicast fonctionnent entièrement différents. C'est pourquoi unicast a la fonction de synchronisation.

Il y a une manière différente si vous diffusez la même chose pour dire un magasin Target entier: alors vous diffusez unicast avec synchronisation vers les clients vlc satellite, et servez ceux qui sont dans la `` portée acoustique '' à partir de là. Dans les bureaux, j'en fais un ou deux par étage, donc tous les étages sont étroitement synchronisés à l'aide de la monodiffusion et de la synchronisation réseau. Dans l'étage, le délai de propagation du réseau est généralement beaucoup plus court que le délai acoustique, et l'acoustique est désactivé pour que vous n'entendiez pas tous les haut-parleurs, mais seulement ceux qui sont près de chez vous.

écrivez-moi à sirhelpsalot@gmail.com si vous avez besoin d'aide, je pourrais aussi mettre cela sur youtube.

:-)


3
Bienvenue à SuperUser, et merci pour votre contribution! Pourriez-vous réduire un peu votre réponse en supprimant les commentaires inutiles? En ce moment, c'est un véritable mur de texte et la réponse réelle est assez difficile à saisir.
Indrek

1
Quelle est la fiabilité du streaming / multidiffusion pour synchroniser la vidéo? Si j'ai un bureau hexadécimal exécutant VLC et un raspberry pi exécutant omxplayer, quelle garantie ai-je que omxplayer ne prendra pas 3 s de plus pour ouvrir le flux?
puk

4

VLC peut diffuser la sortie sur un réseau ainsi que la lire localement, je suggère donc que vous ayez une machine pour diffuser la sortie sur le réseau, mais cochez l'option "afficher localement" dans l'onglet "destinations".

Voici une toute petite description des paramètres à utiliser pour le streaming.


1

VLC utilise (ou fait, la documentation n'est jamais mise à jour) un module appelé netsync mais comme la plupart des modules VLC inhabituels, il est bogué, à peine documenté et négligé. Je ne l'ai jamais fait fonctionner.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.