Reduzieren Sie Latenz mit FFplay für HDMI-Encoder | Exvist Support

FAQs: Reduzieren Sie die Latenz mit FFplay für Encoder

Schritt-für-Schritt-Anleitung zur Reduzierung der Latenz mit FFplay

1. 1. Installieren Sie FFmpeg und FFplay

Stellen Sie sicher, dass FFmpeg (einschließlich FFplay) auf Ihrem System installiert ist. Sie können überprüfen, ob es installiert ist, indem Sie:
  1. ffplay -version
Wenn es nicht installiert ist, können Sie FFmpeg von deroffizielle Seiteoder verwenden Sie einen Paketmanager wieapt,oderbrauenbasierend auf Ihrem Betriebssystem.

2. 2. Öffnen Sie FFplay mit RTSP Stream

FFplay mit Ihrer RTSP-Stream-URL ausführen:
  1. ffplay rtsp://192.168.1.120:554/live/1_0
Ersetzenrtsp://192.168.1.120:554/live/1_0mit der tatsächlichen RTSP URL Ihres Video-Encoder.

3. Puffergröße anpassen

Reduzieren Sie die Standardpuffergröße, um die Verzögerung zu minimieren. Wählen Sie das Flag -rtsp_transport, um das Transportprotokoll (TCP oder UDP) auszuwählen. UDP führt in der Regel zu einer geringeren Latenz.
Beispielbefehl:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analyse 0 -Probesize 32 rtsp://192.168.1.120:554/live/1_0
Erläuterung:
  1. -rtsp_transport udp: Zwingt UDP-Transport, der im Allgemeinen geringere Latenz als TCP ist.
  2. -fflags nobuffer: Deaktiviert Pufferung, um die Latenz zu reduzieren.
  3. -Analyse 0: Begrenzt die Zeit, die FFplay mit der Analyse des Streams verbringt und hilft, die Wiedergabe schneller zu starten.
  4. -Sondengröße 32: Begrenzt die Datenmenge, die zur Untersuchung des Streams verwendet werden, was auch die Latenz reduziert.

4. 4. Videoausgabeverzögerung anpassen

Verwenden Sie das Flag -sync, um die Videosynchronisation anzupassen. Wenn Sie es auf Video setzen, zwingt FFplay mit dem Videostream zu synchronisieren, was bei der Reduzierung der Latenz helfen kann.
Beispielbefehl:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analysen 0 -Probesize 32 -synchronisieren Video rtsp://192.168.1.120:554/live/1_0

5. Reduzieren Sie Video- und Audio-Pufferung

Deaktivieren oder minimieren Sie die Audiowiedergabe mit -vn (kein Video) oder passen Sie Audio-Puffergrößen mit -an (kein Audio) an, wenn Audio für den Test nicht erforderlich ist.
Beispiel::
  1. ffplay -rtsp_transport udp -fflags nobuffer -analysen 0 -Probesize 32 -synchronisieren Video -an rtsp://192.168.1.120:554/live/1_0

6. Dekodierungsoptionen optimieren

Fügen Sie Optionen hinzu, um die Decodierungsleistung zu optimieren und die Latenz zu minimieren. Zum Beispiel:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analysen 0 -Probesize 32 -Synchronisieren Video -an -flags low_delay rtsp://192.168.1.120:554/live/1_0

7. Zusätzliche Optimierungen (optional)

Sie können FFplay weiter abstimmen, indem Sie -x und -y Flags verwenden, um die Größe des Videofensters anzugeben, und -framedrop, um Frames abzuwerfen, wenn sie nicht schnell genug verarbeitet werden können:
  1. ffplay -rtsp_transport udp -fflags nobuffer -analysen 0 -Probesize 32 -Synchronisieren Video -an -framedrop -flags low_delay -x 640 -y 360 rtsp://192.168.1.1.120:554/live/1_0
Erläuterung:
  1. -gerahmtrop: Frames fallen, wenn das System nicht mit der Decodierung Schritt halten kann, wodurch Pufferung reduziert wird.
  2. -x 640 -y 360: Gibt die Auflösung an, um das Video abzuspielen, wodurch der Decodierungsaufwand reduziert wird.

Beispiel für Endbefehl

  1. ffplay -rtsp_transport udp -fflags nobuffer -analysen 0 -Probesize 32 -Synchronisieren Video -an -framedrop -flags low_delay -x 640 -y 360 rtsp://192.168.1.1.120:554/live/1_0

8. Überwachen Sie Latenz

Überwachen Sie nach der Einrichtung die Wiedergabe, um die Latenzreduzierung zu beobachten. Sie können Tools wie FFprobe verwenden, um die Latenz in Echtzeit zu messen, indem Sie Streamdetails inspizieren.
Beispiel FFprobe Befehl, um die Statistiken des Streams zu überprüfen:
  1. ffprobe -v quiet -print_format json -show_streams - v quiet -print_format json - v quiet -print_format - v quiet - v quiet - v quiet - v quiet - v quiet - v quiet - v quiet
Durch die Verwendung der oben genannten Befehle und Optimieren der verschiedenen Flags können Sie die Latenz beim Testen des RTSP-Streams von Ihrem Video-Encoder effektiv reduzieren.

Schritt-für-Schritt-Anleitung zur Reduzierung der Latenz mit FFplay

Wenn Sie nach Befolgen der bereitgestellten Anweisungen eine erhöhte Latenz haben, kann es mehrere Gründe geben, warum das geschieht. Hier sind einige mögliche Ursachen und Möglichkeiten, sie anzugehen:

1. 1. Puffereinstellungen (Inkorrekte Pufferanpassung)

Die-fflags nobufferflag soll Pufferung minimieren, aber in einigen Fällen kann dies zu Instabilität oder erhöhter Latenz führen, insbesondere wenn die Netzwerkbedingungen nicht ideal sind. FFplay kann Schwierigkeiten haben, Frames reibungslos ohne ausreichenden Puffer zu verarbeiten, was zusätzliche Verzögerungen bei der Wiedergabe führt.

Lösung: Versuchen Sie, die Pufferstrategie anzupassen. Anstatt Pufferung vollständig zu deaktivieren, können Sie eine konservativere Puffereinstellung verwenden oder die entfernen-fflags nobufferFlagge:

  1. ffplay -rtsp_transport udp -Analyse 0 -Probesize 32 -video synchronisieren rtsp://192.168.1.120:554/live/1_0

2. 2. RTSP Transportprotokoll (UDP vs TCP)

Umschalten zuUDP-Anleitungist in der Regel schneller als TCP für RTSP-Streaming, kann aber unter bestimmten Netzwerkbedingungen zu Paketverlust oder Jitter führen, was dazu führt, dass der Decoder die Verarbeitung verzögert. Wenn das Netzwerk nicht stabil ist,UDP-Anleitungkann versehentlich die Latenz erhöhen, da FFplay versucht, verlorene oder beschädigte Pakete auszugleichen.

Lösung: Testen mitTCP-KartenTransport und sehen, ob die Latenz verbessert. Verwenden Sie die-rtsp_transport tcp_transport tcpFlagge, um TCP zu erzwingen:
ffplay -rtsp_transport tcp -analysen 0 -Probesize 32 -video synchronisieren rtsp://192.168.1.120:554/live/1_0

3. Rahmenabfall

Die-gerahmtropflag weist FFplay an, Frames abzuwerfen, wenn es nicht rechtzeitig entschlüsseln kann, was die Latenz verringern sollte. Wenn jedoch zu viele Frames fallen gelassen werden, kann dies zu erhöhten Verzögerungen führen, da FFplay länger dauern kann, um sich wiederherzustellen und wieder synchronisiert wird.

Lösung: Wenn das Fallen fallen übermäßig ist, versuchen Sie, die-gerahmtropFlagge oder reduzieren Sie seine Wirkung:
  1. ffplay -rtsp_transport udp -Analyse 0 -Probesize 32 -video synchronisieren rtsp://192.168.1.120:554/live/1_0
Alternativ können Sie versuchen, das -framedrop-Verhalten anzupassen, um zu sehen, ob es bei der Verringerung der Verzögerung hilft:
  1. ffplay -framedrop 0 -rtsp_transport udp -analysen 0 -Probesize 32 -synchronisieren Video rtsp://192.168.1.120:554/live/1_0

4. 4. Netzwerkbedingungen und Jitter

DieUDP-AnleitungTransport ist möglicherweise nicht ideal in einem hochlatenz oder instabilen Netzwerk. UDP garantiert keine Paketlieferung, was zu Jitter- und Pufferverzögerungen auf Kundenseite führen kann. Obwohl UDP die Latenz unter perfekten Netzwerkbedingungen reduzieren kann, verursacht dies oft mehr Probleme, wenn Netzwerkinstabilitäten oder Staus auftreten.

Lösung: Testen Sie mit einem stabilen und weniger überlasteten Netzwerk oder kehren Sie zuTCP-Kartenwenn Ihr Netzwerk einen hohen Jitter oder Paketverlust hat.

5. Decoder-Überlastung

Wenn die-Flaggen niedrig_verzögerungflag wird zusammen mit großen Videostreams oder höheren Auflösungen verwendet, es kann zu einer Decoderüberlastung führen, bei der FFplay versucht, Frames zu schnell zu entschlüsseln, was mehr Verarbeitungsverzögerungen führen kann.

Lösung: Reduzieren Sie die Auflösung des Videos, um die Belastung des Decoders zu erleichtern oder Flags mit niedriger Latenz auszuschalten, wenn es Probleme verursacht:
  1. ffplay -rtsp_transport udp -Analyse 0 -Probesize 32 -video synchronisieren -an rtsp://192.168.1.120:554/live/1_0

6. Übermäßige Analyse und Prüfung

Die Flaggen-Analyse 0und-Sondengröße 32sollen die Zeit begrenzen, die FFplay die Analyse des Streams und die Größe der ursprünglichen Paketsonde verbringt, was den Start beschleunigen sollte. Wenn diese Werte jedoch zu restriktiv sind, könnte es FFplay zwingen, mit unvollständigen Informationen zu arbeiten, was zu Synchronisationsverzögerungen oder einer erhöhten Gesamtlatenz führt, da es versucht, sich von fehlenden Daten wiederherzustellen.

Lösung: Erhöhen Sie die-Analyseund-SonbengrößeWerte leicht, damit FFplay während des Starts mehr Daten sammeln kann, ohne die Latenz signifikant zu erhöhen:
  1. ffplay -rtsp_transport udp -Analyse 5000000 -Probesize 5000000 -synchronisieren Video rtsp://192.168.1.120:554/live/1_0

7. Videosynchronisationsmodus

Die-video synchronisierenflag weist FFplay an, Videoframes präzise zu synchronisieren, was zu Verzögerungen führen kann, wenn es auf den nächsten Frame warten muss. Wenn die Ausgaberate des Encoders nicht gut mit den Synchronisationserwartungen von FFplay übereinstimmt, kann dies zu unnötigen Verzögerungen führen.

Lösung: Sie können mit Synchronisation experimentieren mitAudio-AnleitungoderZeitstempelstatt Video:
  1. ffplay -rtsp_transport udp -Analyse 0 -Probesize 32 -synchronisieren Audio rtsp://192.168.1.120:554/live/1_0
Alternativ kann das Entfernen des -sync-Flags ganz helfen:
  1. ffplay -rtsp_transport udp -Analyse 0 -Größe 32 rtsp://192.168.1.120:554/live/1_0

Fazit:

Um die Latenz zu reduzieren, experimentieren Sie mit dem Ausgleich der Pufferstrategie, des Transportprotokolls und der Decodierungseinstellungen. UDP bietet normalerweise eine geringere Latenz, erfordert aber ein stabiles Netzwerk, während TCP zuverlässiger sein könnte, wenn die Netzwerkqualität inkonsistent ist. Das Anpassen von Puffergrößen, das Sondierungsverhalten und das Fallenabfalleinstellungen kann auch dazu beitragen, übermäßige Latenz zu mildern. Testen Sie verschiedene Konfigurationen, um das optimale Setup für Ihren spezifischen Anwendungsfall zu finden.
    • Related Articles

    • FAQs: Hikvision's NVR mit Encoder

      Wie kann man diesen Encoder mit Hikvision's NVR verbinden? Stellen Sie zunächst sicher, dass sich der Encoder und der NVR (Network Video Recorder) im selben Netzwerksegment befinden. Das bedeutet, dass beide Geräte IP-Adressen innerhalb desselben ...
    • FAQs: Dahuas NVR mit Encoder

      Wie kann man diesen Encoder mit Dahuas NVR verbinden? Stellen Sie zunächst sicher, dass sich der Encoder und NVR im selben Netzwerksegment befinden. Befolgen Sie dann diese Schritte, um das Gerät hinzuzufügen: RechtsklickMaus und wählen ...
    • FAQs: Video von Encoder

      Video: Main Stream / Sub Stream Was ist der Unterschied zwischen Mainstream und Substream und wie soll ich zwischen ihnen wählen? Videoeinstellungen im Encoder umfassen typischerweise zwei Streamtypen:Main StreamundSub Stream. . Main Stream: Dieser ...
    • FAQs: RTSP von Encoder

      Was ist RTSP-Stream? RTSP (Real Time Streaming Protocol) ist ein Netzwerkkontrollprotokoll, das zur Steuerung der Bereitstellung von Multimediadaten wie Audio und Video über ein Netzwerk entwickelt wurde. Es ermöglicht die reibungslose Übertragung ...
    • FAQs: Audio von Encoder

      Audio Eingang Welche Audioeingangsoptionen stehen für HDMI Encoder zur Verfügung? HDMI-Encoder bieten in der Regel drei Audioeingangsoptionen, darunter: HDMI Audio EingangDies ermöglicht es dem Encoder, Audio direkt aus dem HDMI-Eingangssignal zu ...