> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/german/function-blocks/input-output/image-inputs/stream-reader.md).

# Stream Reader

Dieser Funktionsblock spielt Netzwerkstreams (YouTube, Twitch, HTTP/RTSP und ähnliche) im Hintergrund ab und hält das jeweils neueste Frame bereit, damit andere Blöcke es verwenden können. Er ist für kontinuierliche Stream-Vorschauen und nachgelagerte Verarbeitung ausgelegt und bietet Steuerungen für Wiedergabegeschwindigkeit, gewünschte Qualität und Begrenzung der Bildrate.

## 📥 Eingänge <a href="#inputs" id="inputs"></a>

Dieser Funktionsblock hat keine Eingänge.

## 📤 Ausgänge <a href="#outputs" id="outputs"></a>

`Image Any`\
Das jeweils zuletzt aus der konfigurierten Quelle abgerufene Frame (wird aktualisiert, während der Stream läuft).

## 🕹️ Steuerungen <a href="#controls" id="controls"></a>

`Status`\
Zeigt den aktuellen Zustand und hilfreiche Meldungen an (z. B. waiting, connecting, live, paused, reconnecting).

`Stream URL`\
Geben Sie die Stream-Adresse oder den Link ein, den Sie abspielen möchten (Beispiele: öffentliche Live-Links, HTTP-Livestreams oder Anbieterlinks).

`Playback speed`\
Passt die Wiedergabegeschwindigkeit an (im UI angezeigter Bereich). Verwenden Sie Werte unter 1.0 für Zeitlupe oder über 1.0 für schnellere Wiedergabe.

`Preferred quality`\
Fordert eine bevorzugte Stream-Qualität an, wenn mehrere Renditionen verfügbar sind (z. B. Best, 1080p, 720p).

`FPS limit`\
Begrenzt die ausgehende Bildrate, die dieser Block erzeugt. Auf 0 setzen, um die native Bildrate der Quelle zu verwenden.

`Pause playback`\
Ein/Aus-Schalter zum Pausieren/Fortsetzen des Streams, ohne die Verbindung zu schließen.

## 🎨 Funktionen <a href="#features" id="features"></a>

* Hintergrund-Streaming: Spielt entfernte Streams in einem Hintergrundprozess ab, sodass die UI reaktionsfähig bleibt und das neueste Frame verfügbar gehalten wird.
* Robuste Verbindungsbehandlung: Zeigt klare Statusmeldungen (connecting, live, paused, reconnecting) und versucht, vorübergehende Fehler zu beheben.
* Wiedergabesteuerung: Steuerung der Wiedergabegeschwindigkeit und Anforderung einer bestimmten Rendition, sofern verfügbar.
* Begrenzung der Bildrate: Reduziert die Last downstream, indem die FPS begrenzt werden.
* Optionales Remote-Frame-Upload: Bei Konfiguration können erfasste Frames an einen Remote-Uploader für Speicherung oder Protokollierung gesendet werden.
* Pausieren ohne Verlust des letzten Frames: Beim Pausieren bleibt das letzte Frame zur Inspektion oder Verarbeitung erhalten.

## 📝 Nutzungshinweise <a href="#usage" id="usage"></a>

1. Geben Sie einen Streaming-Link in `Stream URL` ein.
2. Passen Sie `Preferred quality` an, wenn Sie eine bestimmte Rendition wünschen.
3. Stellen Sie `Playback speed` und `FPS limit` ein, um zu steuern, wie der Stream an nachgelagerte Blöcke geliefert wird.
4. Verwenden Sie `Pause playback`, um Frame-Updates vorübergehend anzuhalten, während die Verbindung bestehen bleibt.
5. Verbinden Sie den Ausgang dieses Blocks `Image Any` mit Visualisierungs- oder Verarbeitungsblöcken, um Live-Frames zu konsumieren.

## 📊 Bewertung <a href="#evaluation" id="evaluation"></a>

Wenn aktiv, holt dieser Funktionsblock kontinuierlich Frames aus dem konfigurierten Stream und liefert das aktuellste Frame über den Ausgang `Image Any`. Die Statusmeldungen werden aktualisiert, um den Verbindungszustand widerzuspiegeln. Bei Pausierung stoppen die Frame-Updates, das letzte Frame bleibt jedoch verfügbar.

## 💡 Tipps und Tricks <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Um den Live-Stream interaktiv zu betrachten, verbinden Sie den Ausgang `Image Any` mit dem `Show Image`-Block, damit Sie den Image Viewer öffnen und Frames inspizieren können.
* Reduzieren Sie CPU-/GPU-Last, indem Sie `Image Any` vor rechenintensiven KI-Blöcken (z. B. `Object Detection (D-FINE)`, `Mask Detection`, `Pose Estimation`) an einen `Image Resizer`-Block anschließen.
* Für Langzeitaufnahmen oder Debugging leiten Sie den Ausgang an `Record Video`, `Image Logger` oder `Image Write` weiter.
* Verwenden Sie `Background Subtractor` auf dem Stream-Output, um Bewegung zu erkennen oder Vordergrundregionen für nachgelagerte Detektoren (z. B. `Object Detection - Custom`) zu extrahieren.
* Wenn Sie sich auf einen bestimmten Bereich der Szene konzentrieren müssen, nutzen Sie `Image ROI`, `Image ROI Select` oder `Image ROI Polygon` vor Erkennungs- oder Messblöcken (wie `Find Object` oder `Histogram On Line`).
* Kombinieren Sie mit `Object_Detection_Tracker` und `Draw Detections`, um erkannte Objekte über Frames hinweg zu verfolgen und zu visualisieren.
* Für OCR in Live-Streams verbinden Sie den Ausgang nach geeigneter Beschneidung (`Image ROI Select`) und Bildverbesserung (`Contrast Optimization` oder `Denoising`) mit `OCR` oder `OCR (EasyOCR)`.
* Wenn die Stream-Quelle groß oder instabil ist, versuchen Sie, die `FPS limit` zu senken oder die `Preferred quality` zu reduzieren, um die Stabilität zu verbessern und Bandbreite zu sparen.

## 🛠️ Fehlersuche <a href="#troubleshooting" id="troubleshooting"></a>

* Wenn der Status "Waiting for stream link" anzeigt, stellen Sie sicher, dass `Stream URL` eine vollständige URL einschließlich Schema enthält (z. B. `http://`, `https://`, `rtsp://`).
* Wenn die Verbindung fehlschlägt oder häufig neu verbindet, versuchen Sie, die angeforderte Qualität zu verringern oder das FPS-Limit zu reduzieren, um Bandbreite und Verarbeitungslast zu senken.
* Wenn Frames nicht mehr aktualisiert werden, obwohl der Status "live" anzeigt, schalten Sie `Pause playback` aus und wieder ein, um eine Aktualisierung zu erzwingen.
* Um Verbindungsfehler zu debuggen, überwachen Sie das `Status`-Label des Blocks auf Texthinweise zum Verbindungsfortschritt oder Fehlern.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.augelab.com/german/function-blocks/input-output/image-inputs/stream-reader.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
