> 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/stream-reader.md).

# Stream Reader

Ce bloc fonction joue des flux réseau en arrière-plan (YouTube, Twitch, HTTP/RTSP et similaires) et conserve la dernière image prête à être utilisée par d'autres blocs. Il est conçu pour l'aperçu continu de flux et le traitement en aval, avec des contrôles pour la vitesse de lecture, la qualité demandée et la limitation du nombre d'images par seconde.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

Ce bloc fonction n'a pas d'entrées.

## 📤 Sorties <a href="#outputs" id="outputs"></a>

`Image Any` La dernière image extraite depuis la source de streaming indiquée (se met à jour au fur et à mesure de la lecture du flux).

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Status` Affiche l'état courant et des messages utiles (par ex. waiting, connecting, live, paused, reconnecting).

`Stream URL` Saisissez l'adresse du flux ou le lien à lire (exemples : liens publics live, HTTP livestreams, ou liens fournisseurs).

`Playback speed` Ajuste la vitesse de lecture (plage visible dans l'UI). Utilisez des valeurs < 1.0 pour ralenti ou > 1.0 pour accélérer.

`Preferred quality` Demande une qualité de flux préférée lorsque plusieurs variantes sont disponibles (par ex. Best, 1080p, 720p).

`FPS limit` Limite le débit d'images en sortie produit par ce bloc. Mettre à 0 pour utiliser la fréquence native de la source.

`Pause playback` Basculer pour mettre en pause / reprendre le flux sans fermer la connexion.

## 🎨 Fonctionnalités <a href="#features" id="features"></a>

* Streaming en arrière-plan : lit des flux distants dans un processus de fond afin que l'UI reste réactive tout en gardant la dernière image disponible.
* Gestion robuste de la connexion : affiche des messages d'état clairs (connecting, live, paused, reconnecting) et tente de récupérer des erreurs transitoires.
* Contrôle de lecture : permet de régler la vitesse de lecture et de demander une rendition spécifique si disponible.
* Limitation du framerate : réduit la charge en aval en plafonnant les images par seconde.
* Téléversement optionnel d'images distantes : si configuré, les images capturées peuvent être envoyées à un uploader distant pour stockage ou journalisation.
* Pause sans perdre la dernière image : la mise en pause conserve la dernière image pour inspection ou traitement.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Entrez un lien de streaming dans `Stream URL`.
2. Ajustez `Preferred quality` si vous voulez une rendition spécifique.
3. Définissez la `Playback speed` et la `FPS limit` souhaitées pour contrôler la façon dont le flux est transmis aux blocs en aval.
4. Utilisez `Pause playback` pour interrompre temporairement les mises à jour d'images tout en conservant la connexion.
5. Connectez la sortie `Image Any` de ce bloc à des blocs de visualisation ou de traitement pour consommer les images en direct.

## 📊 Évaluation <a href="#evaluation" id="evaluation"></a>

Lorsque ce bloc est actif, il récupère en continu les images depuis le flux configuré et fournit la dernière image via la sortie `Image Any`. Les messages d'état se mettent à jour pour refléter l'état de la connexion. En mode pause, les mises à jour d'images s'arrêtent mais la dernière image reste disponible.

## 💡 Astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Pour prévisualiser le flux en direct de manière interactive, connectez la sortie `Image Any` au bloc `Show Image` afin d'ouvrir le visualiseur d'images et d'inspecter les images.
* Réduisez la charge CPU/GPU en connectant `Image Any` à un bloc `Image Resizer` avant des blocs IA lourds comme `Object Detection (D-FINE)`, `Mask Detection`, `Pose Estimation`.
* Pour l'enregistrement long terme ou le débogage, redirigez la sortie vers `Record Video`, `Image Logger` ou `Image Write`.
* Utilisez `Background Subtractor` sur la sortie du flux pour détecter le mouvement ou extraire les régions de premier plan pour les détecteurs en aval (par ex. `Object Detection - Custom`).
* Si vous devez vous focaliser sur une zone spécifique de la scène, utilisez `Image ROI`, `Image ROI Select` ou `Image ROI Polygon` avant les blocs de détection ou de mesure (comme `Find Object` ou `Histogram On Line`).
* Combinez avec `Object_Detection_Tracker` et `Draw Detections` pour suivre et visualiser les objets détectés à travers les images du flux.
* Pour de l'OCR sur des flux en direct, connectez la sortie à `OCR` ou `OCR (EasyOCR)` après avoir appliqué un recadrage approprié (`Image ROI Select`) et des améliorations d'image (`Contrast Optimization` ou `Denoising`).
* Si la source du flux est volumineuse ou instable, essayez de réduire la `FPS limit` ou la `Preferred quality` pour améliorer la stabilité et diminuer la bande passante.

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Si le statut affiche "Waiting for stream link", assurez-vous que `Stream URL` est une URL complète incluant le schéma (ex. `http://`, `https://`, `rtsp://`).
* Si la connexion échoue ou se reconnecte fréquemment, essayez de baisser la qualité demandée ou de réduire la limite FPS pour alléger la bande passante et le traitement.
* Si les images cessent de se mettre à jour alors que le statut indique live, basculez `Pause playback` off puis on pour forcer un rafraîchissement.
* Pour déboguer les messages de connexion, surveillez l'étiquette `Status` du bloc pour des indices textuels sur la progression ou les erreurs de connexion.
