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

# Video

Ce bloc de fonction lit un fichier vidéo et émet des images individuelles (frames) pour le traitement. Il vous permet de choisir un fichier, de contrôler le mode de lecture et fournit, pour chaque image, un `Timestamp` lisible ainsi qu'une information de boucle/restart.

## 📥 Entrées

* `Restart`\
  Cette prise accepte un booléen qui, lorsqu'il est vrai, redémarre la lecture de la vidéo depuis le début. (entrée)

## 📤 Sorties

* `Image Any`\
  Image du frame lu dans la vidéo. (sortie)
* `Timestamp`\
  Timestamp lisible indiquant la position du frame dans la vidéo. (sortie)
* `Restarted`\
  Booléen qui devient vrai lorsque la vidéo atteint la fin et redémarre. (sortie)

## 🕹️ Contrôles

* `Select video file`\
  Bouton pour choisir le fichier vidéo à lire. (Contrôle)
* `Real-time`\
  Interrupteur pour activer ou désactiver la lecture en temps réel. Si activé, les frames sont avancés pour respecter le framerate d'origine de la vidéo. (Contrôle)

## 🎨 Fonctionnalités

* Lecture fluide avec synchronisation en option en temps réel pour respecter la cadence d'origine de la vidéo.
* Sortie au niveau du frame avec un `Timestamp` pratique pour chaque image.
* Comportement de boucle et contrôle de redémarrage pour réinitialiser la lecture.
* Possibilité de prévisualiser ou d'envoyer les frames vers des blocs de traitement en aval (par ex. détections, journalisation ou enregistrement).
* Gestion optionnelle des frames en arrière-plan pour les intégrations qui téléversent ou journalisent les images en externe.

## ⚙️ Mécanisme d'exécution

* Lorsqu'un fichier vidéo est sélectionné, le bloc l'ouvre et prépare la lecture.
* Si l'interrupteur `Real-time` est activé, le bloc avance les frames pour que la vitesse de lecture corresponde aux images par seconde de la source. Sinon, les frames avancent aussi vite que l'évaluation du graphe le permet.
* Envoyer un signal vrai à l'entrée `Restart` réinitialise la lecture au premier frame.
* À chaque évaluation, le bloc émet le dernier frame, un `Timestamp` lisible indiquant la position dans la vidéo, et un booléen indiquant si la vidéo a bouclé ou redémarré.

## 📝 Instructions d'utilisation

1. Cliquez sur le bouton `Select video file` et choisissez un fichier vidéo supporté.
2. Activez `Real-time` si vous voulez que la lecture respecte la vitesse d'origine ; désactivez-le pour avancer les frames aussi vite que le traitement le permet.
3. Optionnel : envoyez une valeur vraie à l'entrée `Restart` pour réinitialiser la lecture.
4. Connectez la sortie `Image Any` à des blocs de visualisation ou d'analyse pour traiter chaque frame.

## 💡 Astuces

* Prévisualisez les frames pendant le développement : connectez `Image Any` à `Show Image` pour inspecter rapidement les images.
* Sauvegardez des frames importants ou des enregistrements : orientez `Image Any` vers `Image Logger` ou `Record Video` pour stocker des images ou créer un fichier vidéo.
* Réduisez la charge de traitement : ajoutez un bloc `Image Resizer` ou `Image Resize` avant des blocs d'analyse lourds (par ex. `Object Detection` ou `Pose Estimation`) pour diminuer la résolution et augmenter le débit.
* Améliorez la qualité de détection : débruitez les images avec `Denoising` avant les modèles d'objet/pose.
* Flux de soustraction d'arrière-plan : combinez avec `Background Subtractor` pour détecter les objets en mouvement avant d'envoyer les résultats à `Object Detection` ou `Blob Detector`.
* Traitement limité à une région : utilisez `Image ROI Select` ou `Image ROI` pour recadrer les zones d'intérêt puis exécutez `Find Object`, `Mask Detection` ou des blocs OCR pour une analyse ciblée.
* Suivi et analyses : associez `Object Detection` (ou `Object Detection - Custom`) à `Object_Detection_Tracker` pour suivre les détections à travers les frames et alimentez les sorties du tracker vers des blocs d'analyse (par ex. `Traffic Intersection Analysis`).
* Extraction de texte : utilisez `OCR` ou `OCR (EasyOCR)` sur les frames (éventuellement après recadrage avec `Image ROI Select`) pour lire des étiquettes imprimées ou des timestamps.

(astuce) Lorsque vous travaillez avec de longues vidéos, pensez à désactiver `Real-time` pendant la configuration et les tests pour itérer plus rapidement ; réactivez-le pour la lecture chronométrée lors des runs finaux.

## 🛠️ Dépannage

* Aucun frame n'apparaît : assurez-vous qu'un fichier vidéo valide a bien été sélectionné via `Select video file` et que le fichier est accessible.
* Lecture trop lente : si `Real-time` est activé mais que le système ne suit pas, essayez de désactiver `Real-time` ou de réduire la taille des frames avec `Image Resizer`.
* La vidéo redémarre de manière inattendue : la fin de fichier déclenche le flag de redémarrage en sortie ; utilisez l'entrée `Restart` pour contrôler explicitement la position de lecture.
* Les timestamps semblent incorrects : les timestamps sont calculés par rapport à la durée de la vidéo ; vérifiez les métadonnées du fichier choisi et essayez un autre fichier si les valeurs semblent erronées.

Si vous prévoyez de diffuser les frames vers des services cloud ou de journalisation, combinez ce bloc avec `Image Logger`, `Record Video` ou d'autres blocs d'export pour persister les résultats.
