Wie übertragen Sie Videostreams in einem LAN in Echtzeit?

9

Ich versuche, ein System zu etablieren, das in der Lage ist, die Bildschirmaufnahme eines PCs auf mehrere andere PCs in einem LAN zu übertragen.

Bisher habe ich nginx auf einem Raspberry Pi mit dem rtmp-Modul installiert und kann mit dem Raspberry als RTMP-Server über OBS streamen. Ich benutze VLC, um den Stream zu sehen.

Hier ist das Problem. Der Hauptcomputer, der die Übertragung durchführt, zeigt einen Timer an, der herunter zählt und möglicherweise Kamera-Feeds, so dass es ideal wäre, die Sendeverzögerung auf ein Minimum zu beschränken (Echtzeit?). Ich habe derzeit eine Verzögerung von 4-6 Sekunden zwischen dem, was auf dem Bildschirm und dem Stream passiert und suche nach Möglichkeiten, es weiter zu reduzieren.

  • Gibt es eine Möglichkeit zu bestimmen, wie viel von dieser Verzögerungszeit auf die Codierung zurückzuführen ist und wieviel davon übertragen werden soll?
  • Ich nehme gerade bei 1080p30 auf und probiere Optionen wie Downscaling aus und minimiere Netzwerkauswirkungen ohne Erfolg.
  • Ich habe in diesem Forum andere Themen gelesen, die die LAN-Übertragung betreffen, und jemand hat erwähnt, dass RTMP kein guter Ansatz ist ... Wenn ja, was wäre ein besserer Ansatz?
  • Irgendwelche Vorschläge sind willkommen und geschätzt. Ich bin hauptsächlich an kostenlosen Lösungen interessiert, da ich kein Budget habe und dies für jemand anderen kostenlos mache.
  • Ich habe auch in VLC-Streaming geschaut, aber ich möchte nicht den ganzen Bildschirm des PCs zeigen, da es Kontrollen geben würde, die die Zuschauer nicht sehen müssen. Und das einzige, was VLC tun kann, ist zu spezifizieren, welcher Teil des Bildschirms ausgestrahlt wird, der nicht wie eine großartige Lösung aussieht. Ich habe mich für OBS entschieden, weil es die einzige kostenlose Broadcasting-Software ist, die ein bestimmtes Fenster nach meinem Wissen übertragen kann.

Vielen Dank im Voraus:)

    
Ryuu 25.03.2015, 09:12
quelle

2 Antworten

8

Zuerst denke ich, dass Sie Recht haben, OBS zu verwenden, es ist ein großartiges Projekt, das Ihnen erlaubt, eine Menge Sachen festzuhalten.

Wenn Sie die Videogeschwindigkeit optimieren möchten, gibt es viele Möglichkeiten:

  • Die erste ist ein anderes RTMP-Client zu verwenden, ist VLC gut, aber es verbraucht zu viel Cache, versucht dieses zum Beispiel (einfach die richtige rtmp-URL einstellen, den NetGroup-Eingang löschen und verbinden),
  • Dann können Sie einen anderen Server versuchen, ich habe das folgende Tutorial auf So richten Sie Ihren eigenen RTMFP-Server mithilfe von MonaServer ein ,
  • Und schließlich können Sie Ihre OBS Parameter ändern (I die „Twitch“ Parameter verwenden, die für die Echtzeit optimiert werden).

Bei mir mit OBS + MonaServer + meinem VideoPlayer habe ich eine Verzögerung von 2 Sekunden, das ist nicht Echtzeit, aber das ist schon besser.

Das Letzte, was ist OBS bekannt Latenz auf RTMP-Sitzungen hinzufügen, ich weiß, dass es möglich ist, es zu verbessern, indem sie den Quellcode des OBS zu modifizieren, aber hier ist es ein wenig kompliziert ...

Ich hoffe, es wird dir helfen! Kontaktieren Sie mich, wenn Sie weitere Informationen benötigen.

    
thomas 25.03.2015, 18:29
quelle
2

Sie müssen komprimieren und dekomprimieren. Sie verwenden die gesamte Bandbreite einer Gigabit-Ethernet-Verbindung. Wenn Ihre Gesamtentfernung weniger als 15 Fuß beträgt, funktioniert jedes HDMI-Kabel. Bei Entfernungen von mehr als 15 Fuß erhalten Sie ein zertifiziertes Kabel (einige können bis zu 45 Fuß ohne Signalverstärkung laufen). VGA wird längere Strecken als DVI laufen.

ODER, du könntest auf 720P gehen und genug Bandbreite übrig lassen, um die Aufgabe zu erledigen.

    
MCatCTS 13.03.2018 00:19
quelle