web-dev-qa-db-fra.com

Comment diffuser un flux vidéo sur un LAN en temps réel?

J'essaie d'établir un système capable de diffuser la capture d'écran d'un PC vers plusieurs autres PC sur un LAN.

Jusqu'à présent, j'ai réussi à installer nginx sur un Raspberry Pi avec le module rtmp et je peux diffuser en utilisant le Raspberry comme serveur RTMP via OBS. J'utilise VLC pour regarder le flux.

Voici le problème. Le PC principal effectuant la diffusion affichera une minuterie qui compte à rebours et potentiellement des flux de caméra, il serait donc idéal de garder le délai de diffusion au minimum (en temps réel?). J'ai actuellement un délai de 4 à 6 secondes entre ce qui se passe à l'écran et le flux et je cherche des moyens de le réduire davantage.

  • Existe-t-il un moyen de déterminer quelle proportion de ce délai est due à l'encodage et quelle proportion est due au transfert?
  • Je capture actuellement en 1080p30 et j'ai essayé des options telles que la réduction d'échelle et minimiser l'impact du réseau en vain.
  • J'ai lu d'autres sujets concernant la diffusion LAN sur ce forum et quelqu'un a mentionné que le RTMP n'était pas une bonne approche ... Si oui, quelle serait une meilleure approche?
  • Toutes les suggestions sont les bienvenues et appréciées. Je suis surtout intéressé par les solutions gratuites car je n'ai pas de budget et je le fais gratuitement pour quelqu'un d'autre.
  • J'ai également étudié le streaming VLC, mais je ne veux pas afficher tout l'écran du PC car il y aurait des contrôles que les téléspectateurs n'auraient pas à voir. Et la seule chose que VLC peut faire à ce sujet est de spécifier quelle partie de l'écran à diffuser, ce qui ne semble pas être une excellente solution. J'ai choisi OBS car c'est le seul logiciel de diffusion gratuit capable de diffuser une fenêtre spécifique à ma connaissance.

Merci d'avance :)

9
Ryuu

Tout d'abord, je pense que vous avez raison d'utiliser OBS, c'est un excellent projet vous permettant de capturer beaucoup de choses.

Si vous souhaitez optimiser la vitesse de la vidéo, vous pouvez essayer de plusieurs façons:

  • La première consiste à utiliser un autre client RTMP, VLC est bon mais il utilise trop de cache, essayez celui-ci par exemple (il suffit de définir l'URL rtmp appropriée, d'effacer l'entrée NetGroup et de se connecter),
  • Ensuite, vous pouvez essayer un autre serveur, j'ai écrit le tutoriel suivant sur Comment configurer votre propre serveur RTMFP en utilisant MonaServer ,
  • Et enfin vous pouvez modifier vos paramètres OBS (j'utilise les paramètres "Twitch" qui sont optimisés en temps réel).

Pour moi avec OBS + MonaServer + mon VideoPlayer j'ai un délai de 2 secondes, ce n'est pas en temps réel mais c'est déjà mieux.

Dernière chose, OBS est connu pour ajouter de la latence sur les sessions RTMP, je sais qu'il est possible de l'améliorer en modifiant le code source d'OBS mais ici c'est un peu délicat ...

J'espère que cela vous aidera! Contactez-moi si vous avez besoin de plus d'informations.

9
thomas

Vous devez compresser et décompresser. Vous utilisez toute la bande passante sur une connexion Gigabit Ethernet. Si votre distance totale est inférieure à 15 pieds, tout câble HDMI fonctionnera. Pour des distances supérieures à 15 pieds, assurez-vous d'obtenir un câble certifié (certains peuvent fonctionner jusqu'à 45 pieds sans amplification du signal). VGA parcourra de plus longues distances, tout comme DVI.

OU, vous pouvez passer à 720P et laisser suffisamment de bande passante pour faire le travail.

2
MCatCTS