Skip to content

Rkn21/CustomScreenSmallTV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

CustomScreenSmallTV — Tutoriel / exemples SmallTV

Ce dépôt contient un script Python minimaliste pour afficher du contenu sur l’écran SmallTV.

Le principe (souvent utilisé sur ces appareils) est :

  1. Uploader une image JPEG sur l’appareil via doUpload.
  2. Appliquer (afficher) cette image via set?img=....

Le script propose 3 usages :

  • Afficher une image locale
  • Afficher du texte / des données (rendu en image avec Pillow)
  • Afficher une “vidéo” en poussant des frames issues d’un flux MJPEG

Remarque : l’écran SmallTV affiche une image statique. Pour une vidéo, on “simule” en envoyant des images successives.


Pré-requis

  • Windows (fonctionne aussi sur Linux/macOS)
  • Python 3.10+ (testé avec Python 3.13)
  • Accès réseau au SmallTV (IP/host)

Dépendances Python :

  • requests
  • pillow

Installation

Dans un terminal PowerShell, à la racine du projet :

  1. Créer et activer un virtualenv (optionnel mais recommandé)
python -m venv .venv
.\.venv\Scripts\Activate.ps1
  1. Installer les dépendances
pip install -r requirements.txt

Configuration

Vous pouvez fournir l’IP/host du SmallTV :

  • en argument --host, ou
  • via la variable d’environnement SMALLTV_HOST.

Exemples :

$env:SMALLTV_HOST = "192.168.1.208"

Le dossier d’upload peut aussi être configuré (par défaut /image/) :

  • --dir ou
  • SMALLTV_UPLOAD_DIR

Commandes

Afficher l’aide :

python app.py --help

1) Afficher une image locale

python app.py --host 192.168.1.208 image "C:\chemin\vers\photo.png"

Options utiles :

  • --name : nom du fichier sur l’appareil (par défaut image.jpg)

2) Afficher du texte / des données (texte → image)

python app.py --host 192.168.1.208 text --title "Status" --line "Temp: 21C" --line "Hum: 45%" --line "OK"

Notes :

  • Le texte est rendu en image 240×240 et envoyé au SmallTV.
  • Si aucune ligne n’est fournie, le script affiche un exemple avec l’heure.

3) Afficher une “vidéo” via un flux MJPEG

Le SmallTV ne lit pas directement un MP4/RTSP ici : on lui envoie des frames JPEG extraites d’un flux MJPEG.

python app.py --host 192.168.1.208 mjpeg "http://127.0.0.1:8090/stream.mjpeg" --fps 2
  • --fps contrôle la fréquence d’envoi au SmallTV (ex: 2 fps par défaut).

Générer un flux MJPEG avec ffmpeg (exemples)

  1. Convertir un fichier vidéo en MJPEG HTTP local
ffmpeg -re -stream_loop -1 -i "video.mp4" -vf scale=240:240 -q:v 5 -f mjpeg http://127.0.0.1:8090/stream.mjpeg
  1. Convertir un flux RTSP en MJPEG HTTP local
ffmpeg -rtsp_transport tcp -i "rtsp://user:pass@IP/stream" -vf scale=240:240 -q:v 5 -f mjpeg http://127.0.0.1:8090/stream.mjpeg

Selon votre version de ffmpeg, la sortie HTTP MJPEG peut nécessiter une option de serveur dédiée. Si vous préférez une approche robuste, vous pouvez aussi servir des JPEG via un petit serveur Python/Node.


Dépannage

  • Timeout / pas d’affichage : vérifiez l’IP (--host), le réseau, et que les endpoints doUpload et set sont accessibles.
  • Réponse “Réponse inattendue après upload” : certains firmwares ne renvoient pas le nom de fichier. Dans ce cas, on pourra assouplir la validation dans app.py.
  • Qualité / latence : diminuez --fps et/ou ajustez JPEG_QUALITY dans app.py.

Fichiers

  • app.py : script principal (tutoriel + exemples)
  • requirements.txt : dépendances Python

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages