> 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/funktionsblocke/blocks-reference/input-output/image-inputs/video.md).

# Video

Dieser Funktionsblock spielt eine Video-Datei ab und liefert einzelne Frames zur weiteren Verarbeitung. Sie können eine Datei auswählen, den Wiedergabemodus steuern und erhalten zu jedem Frame einen Zeitstempel sowie Informationen zum Loop/Restart.

## 📥 Eingänge

* `Restart`\
  Dieser Eingangs-Socket akzeptiert einen Boolean; wenn `true`, startet die Wiedergabe des Videos von vorne. (Input socket)

## 📤 Ausgänge

* `Image Any`\
  Frame-Bild, das aus dem Video gelesen wurde. (Output socket)
* `Timestamp`\
  Menschlich lesbarer Zeitstempel für den aktuellen Frame innerhalb des Videos. (Output socket)
* `Restarted`\
  Boolean-Flag, das `true` wird, wenn das Video das Ende erreicht und neu startet. (Output socket)

## 🕹️ Controls

* `Select video file`\
  Button zum Auswählen der abzuspielenden Videodatei. (Control)
* `Real-time`\
  Schalter, um die Echtzeit-Wiedergabe ein- oder auszuschalten. Wenn aktiviert, werden Frames so vorgerückt, dass die Wiedergabe der Original-Bildrate des Videos entspricht. (Control)

## 🎨 Features

* Glatte Wiedergabe mit optionaler Real-time-Synchronisation, sodass Frames dem originalen Video-Timing folgen.
* Framegenauer Output mit einem praktischen Zeitstempel-String für jeden Frame.
* Loop-Verhalten und ein Restart-Control zum Zurücksetzen der Wiedergabe auf den Anfang.
* Möglichkeit, Frames zur Vorschau oder zur Weiterverarbeitung an nachgelagerte Blöcke zu senden (z. B. Detections, Logging oder Speicherung).
* Optionale Hintergrund-Frame-Behandlung für Integrationen, die Frames extern hochladen oder protokollieren.

## ⚙️ Ausführungsmechanismus

* Wenn eine Videodatei ausgewählt wird, öffnet der Block diese und bereitet die Wiedergabe vor.
* Ist der `Real-time`-Schalter aktiviert, werden Frames so vorgerückt, dass die Wiedergabegeschwindigkeit der FPS des Quellvideos entspricht. Ist er deaktiviert, werden Frames so schnell wie die Auswertung des Graphen es erlaubt vorgerückt.
* Sendet man `true` an den `Restart`-Eingang, wird die Wiedergabe auf den ersten Frame zurückgesetzt.
* Bei jeder Auswertung liefert der Block das neueste Frame, einen lesbaren Zeitstempel zur Position im Video und einen Boolean, der anzeigt, ob das Video geloopt oder neu gestartet wurde.

## 📝 Nutzungshinweise

1. Klicken Sie auf den `Select video file`-Button und wählen Sie eine unterstützte Videodatei.
2. Schalten Sie `Real-time` ein, wenn die Wiedergabe mit der Originalgeschwindigkeit übereinstimmen soll; schalten Sie ihn aus, um Frames so schnell wie möglich entsprechend der Verarbeitung zu schrittweise voranzutreiben.
3. Optional können Sie `true` an den `Restart`-Eingang senden, um die Wiedergabe zurückzusetzen.
4. Verbinden Sie den `Image Any`-Ausgang mit Visualisierungs- oder Analyseblöcken, um jedes Frame zu verarbeiten.

## 💡 Tipps und Tricks

* Frames zur Entwicklung vorschauen: Verbinden Sie `Image Any` mit `Show Image`, um Frames schnell zu inspizieren.
* Wichtige Frames oder Aufnahmen speichern: Leiten Sie `Image Any` an `Image Logger` oder `Record Video`, um Frames zu speichern oder eine Videodatei zu erzeugen.
* Verarbeitungsaufwand reduzieren: Fügen Sie vor rechenintensiven Analyseblöcken einen `Image Resizer` bzw. `Image Resize`-Block hinzu (z. B. vor `Object Detection` oder `Pose Estimation`), um die Auflösung zu verringern und den Durchsatz zu erhöhen.
* Erkennungsqualität verbessern: Rauschunterdrückung mit `Denoising` vor Modell-basierten Erkennungen kann helfen.
* Background-Subtraction-Workflows: Kombinieren Sie mit `Background Subtractor`, um bewegte Objekte zu erkennen, bevor Sie Ergebnisse an `Object Detection` oder `Blob Detector` senden.
* Bereichsbegrenzte Verarbeitung: Verwenden Sie `Image ROI Select` oder `Image ROI`, um Interessebereiche zuzuschneiden und anschließend `Find Object`, `Mask Detection` oder OCR-Blöcke gezielt einzusetzen.
* Tracking und Analysen: Paaren Sie `Object Detection` (oder `Object Detection - Custom`) mit `Object_Detection_Tracker`, um Erkennungen über Frames hinweg zu verfolgen, und nutzen Sie den Tracker-Output für Analyse-Blöcke wie `Traffic Intersection Analysis`.
* Texterkennung: Verwenden Sie `OCR` oder `OCR (EasyOCR)` auf Frames (optional nach Zuschneiden mit `Image ROI Select`), um gedruckte Labels oder Zeitstempel auszulesen.

(Hinweis) Bei langen Videos empfiehlt es sich, während der Konfiguration und Tests `Real-time` auszuschalten, um schneller iterieren zu können; für zeitgetreue Wiedergabe bei finalen Läufen einschalten.

## 🛠️ Fehlersuche

* Es erscheinen keine Frames: Stellen Sie sicher, dass mit `Select video file` eine gültige Videodatei ausgewählt wurde und die Datei zugänglich ist.
* Wiedergabe zu langsam: Wenn `Real-time` aktiviert ist, das System aber nicht mithalten kann, deaktivieren Sie `Real-time` oder reduzieren Sie die Frame-Größe mit `Image Resizer`.
* Video startet unerwartet neu: Das Dateiende setzt die Restart-Flag; verwenden Sie den `Restart`-Eingang, um die Wiedergabe explizit zu steuern.
* Zeitstempel scheinen falsch: Zeitstempel werden relativ zur Videodauer berechnet; prüfen Sie die Metadaten der gewählten Datei oder versuchen Sie eine andere Datei, wenn Werte inkorrekt erscheinen.

Wenn Sie planen, Frames in Cloud- oder Logging-Services zu streamen, kombinieren Sie den Block mit `Image Logger`, `Record Video` oder anderen Export-Blöcken, um Ergebnisse zu persistieren.
