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 :
- Uploader une image JPEG sur l’appareil via
doUpload. - 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.
- 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 :
requestspillow
Dans un terminal PowerShell, à la racine du projet :
- Créer et activer un virtualenv (optionnel mais recommandé)
python -m venv .venv
.\.venv\Scripts\Activate.ps1- Installer les dépendances
pip install -r requirements.txtVous 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/) :
--dirouSMALLTV_UPLOAD_DIR
Afficher l’aide :
python app.py --helppython app.py --host 192.168.1.208 image "C:\chemin\vers\photo.png"Options utiles :
--name: nom du fichier sur l’appareil (par défautimage.jpg)
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.
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--fpscontrôle la fréquence d’envoi au SmallTV (ex: 2 fps par défaut).
- 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- 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.mjpegSelon 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.
- Timeout / pas d’affichage : vérifiez l’IP (
--host), le réseau, et que les endpointsdoUploadetsetsont 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
--fpset/ou ajustezJPEG_QUALITYdansapp.py.
app.py: script principal (tutoriel + exemples)requirements.txt: dépendances Python