Bobine V3.0.3
La version 3.0.3 apporte des corrections critiques de synchronisation multimédia et de résilience des données pour l'ensemble des plateformes supportées. Elle élimine définitivement les désynchronisations décodeur au saut temporel (seek) sur navigateurs et terminaux mobiles, déverrouille l'accès réseau à la vitrine complète du mode cinéma, sécurise les processus d'encodage via des imports atomiques sans orphelins, et aligne la distribution des flux vidéo sur les standards stricts HTTP Range RFC 7233 et RFC 9110.
Cette même version corrige également une cause racine de lenteur réseau et d'instabilité propre à la version Android (base de données et fichiers à forte fréquence d'accès déplacés vers le stockage interne rapide, accès disque sortis de la boucle d'évènements du serveur), fiabilise durablement la diffusion temps réel vers les écrans et tableaux de bord (y compris sur un Wi-Fi imparfait), ajoute un nouveau thème sombre, et configure correctement les sorties audio dès le premier déploiement de l'installateur headless.
1. Téléchargement des Binaires Officiels (Version 3.0.3)
| Plateforme & Environnement | Format | Architecture | Téléchargement Direct | Profil & Fonctionnalités Clés |
|---|---|---|---|---|
.apk(Paquet natif) | ARM64 (arm64-v8a) | Télécharger Bobine-3.0.3.apk | Tablettes Tactiles & Régie Studio Mobile • Régie autonome complète : remplace tout PC encombrant dans la salle • Double affichage : pupitre coach tactile ( /grid) + diffusion TV grand écran (/cinema)• 100% hors-ligne, fiable même en sous-sol sans Wi-Fi ni 4G | |
.exe(Installeur) | x86-64 | Télécharger Bobine-Setup-3.0.3.exe | PC de Bureau & Ordinateurs Portables Windows • Installation guidée en 1 clic avec raccourci sur le Bureau • Démarrage discret près de l'horloge (icône systray en arrière-plan) • Mode capot fermé (clamshell) : branchez le portable en HDMI à la télé sans mise en veille | |
.deb(Paquet & Dépôt) | x86-64 (amd64) | Dépôt APT apt.bobine.fit bobine_3.0.3_amd64.deb | Postes Linux de Bureau & PC Reconditionnés • Paquet officiel .deb et disponible sur la Logithèque Ubuntu App Center• Mises à jour fluides en 1 clic via le dépôt officiel apt.bobine.fit• Idéal pour recycler un ancien PC de bureau en borne fitness autonome | |
.dmg(Image disque) | Apple Silicon (arm64) | Télécharger Bobine-3.0.3.dmg | MacBook, Mac mini & iMac (Apple Silicon) • Glisser-déposer dans /Applications, prêt à diffuser en 2 secondes• Expérience Mac soignée : icône Retina native et menu discret dans la barre supérieure • Diffusion 4K silencieuse : zéro surchauffe et zéro bruit de ventilateur sur MacBook | |
| Binaire natif | x86-64 (Linux) | Télécharger bobine-assistant | Assistant Graphique de Gestion & Déploiement • Scanner réseau intelligent : détecte automatiquement toutes les bornes Bobine sur le Wi-Fi/LAN • Déploiement et mise à jour des bornes à distance sans toucher au terminal | |
| Script automatisé | x86-64 | curl -sSL https://bobine.fit/install.sh | bash | Appliance Dédiée Headless (Intégrateurs & Geeks) • Déploiement automatisé en 18 étapes sur mini-PC dédié (Wyse 5070, NUC, Tiny) • Kiosque X11 plein écran direct, zéro environnement de bureau superflu • Pilotage HDMI-CEC matériel : allume et éteint automatiquement le téléviseur | |
| Portail Web | Universel | Visiter bobine.fit | Site Officiel & Base de Connaissances | |
| Binaires & Sources | Multi-OS | Voir les Releases Accès anticipé : Bêta | Historique Complet des Versions & Code Source |
2. Élimination Définitive du Gel d'Image au Seek
Sur les décodeurs matériels stricts (MediaCodec sous Android, VA-API sous Linux), un saut temporel à chaud pendant la lecture pouvait provoquer un déphasage entre l'horloge audio et la reconstitution du groupe d'images (GOP) vidéo. L'audio redémarrait immédiatement, tandis que le pipeline vidéo rejetait les frames arrivant en retard, gelant l'affichage sur une frame fixe alors que le son et le compteur continuaient d'avancer.
La version 3.0.3 déploie une stratégie à quatre verrous dans /kiosk et /cinema :
- Pause préalable et reprise sur
seeked: L'élément en lecture est immédiatement mis en pause avant d'assigner la nouvelle position temporelle, figeant l'horloge audio. La lecture ne reprend qu'après confirmation matérielle de calage via l'événementseeked(avec timeout de secours à 1200 ms). - Garde anti-réentrance : Tout nouvel appel de recherche est rejeté tant que
video.seekingest actif, évitant l'écrasement perpétuel du buffer décodeur. - Période de grâce après seek (3 000 ms) : Les micro-recalages périodiques de position émis toutes les 250 ms par le backend sont ignorés pendant 3 secondes sur les kiosques miroirs, laissant le temps aux tampons de se stabiliser.
- Watchdog d'images peintes (
requestVideoFrameCallback) : Surveillance continue du nombre réel de frames présentées à l'écran (presentedFrames). Si un gel effectif de rendu vidéo est détecté pendant la lecture (visualFreeze), un micro-seek de rattrapage (+0,05s) avec relance surseekeddébloque automatiquement la texture d'affichage.
3. Déverrouillage Universel du Mode Cinéma Réseau
- Affichage ciblé : La vue d'attente passive « En attente d'un cours » est désormais strictement réservée à la sortie filaire HDMI de la tablette Android (
data?.deployment_profile === "android" && isWiredDisplay()). - Accès réseau complet : Les postes, tablettes et téléviseurs connectés au réseau local accédant à
http://<IP>:8000/cinema/bénéficient directement de la vitrine complète de cours avec navigation par catégories, héros dynamique et sélection fluide.
4. Normalisation et Imports Vidéo Atomiques
- Zéro fichier résiduel corrompu : Tout import vidéo ou arrière-plan écrit d'abord dans un fichier temporaire dédié
temp_norm_*. Le fichier n'est déplacé vers sa destination finalevideo_*viashutil.movequ'après validation intégrale de la normalisation et de l'extraction des métadonnées. - Purge garantie : En cas d'interruption réseau ou d'arrêt du processus en cours de traitement, le bloc
finallydétruit immédiatement les fichiers temporaires, empêchant l'accumulation de MP4 incomplets sans atomemoov.
5. Streaming HTTP Range Conforme RFC 7233 / 9110
- Prise en charge complète des requêtes avec plages d'octets suffixées (
bytes=-N), indispensables pour les décodeurs demandant les métadonnées de fin de fichier. - Suppression systématique de l'en-tête
Content-Rangelors des réponses complètes HTTP 200, garantissant une conformité stricte aux spécifications et supprimant les erreurs de chargement sur les navigateurs stricts.
6. Cause racine et correctifs de performance (Android)
- Stockage réparti sur deux racines : la base de données SQLite, les miniatures, les journaux techniques et les pochettes radio résidaient sur le stockage externe de l'application (servi par FUSE, significativement plus lent que le stockage interne) — chaque requête à la base pouvait bloquer la boucle d'évènements du serveur pour tous les clients connectés en même temps. Ces fichiers sont désormais placés sur le stockage interne rapide de l'appareil ; les médias volumineux (vidéos, fonds animés, pistes audio) restent sur le stockage externe, adapté à la lecture séquentielle de gros fichiers. Une installation existante est migrée automatiquement, sans risque : copie vérifiée par contrôle d'intégrité, jamais de suppression de l'original.
- Accès disque sortis de la boucle d'évènements : les lectures de la base de données déclenchées par le streaming vidéo et par les commandes de lecture s'exécutent désormais dans un bassin de threads dédié plutôt que directement sur la boucle asynchrone principale du serveur.
- Diffusion WebSocket parallélisée : l'envoi d'un évènement à tous les écrans connectés se fait maintenant en parallèle avec un délai de garde par client, au lieu d'un envoi séquentiel où un seul appareil lent retardait tous les autres.
- Keepalive assoupli : le délai de tolérance avant de considérer une connexion morte est porté de 20 à 60 secondes, adapté aux limitations de minuteurs que les navigateurs appliquent aux pages en arrière-plan ; un signal de vie est également envoyé dès qu'une page redevient visible.
- Cache des vues Web natives revalidé plutôt que désactivé, réduisant le volume de données retéléchargées à chaque affichage d'écran.
6bis. Tableau de bord réseau — gel silencieux corrigé, renforcement Wi-Fi imparfait
Trouvé et corrigé après un premier déploiement de ce lot : le tableau de bord d'administration pouvait geler silencieusement lorsqu'il pilotait un écran sur le canal réseau depuis une connexion Wi-Fi réelle — la position affichée s'arrêtait d'avancer sans qu'aucune erreur ne soit visible, jusqu'à ce que la connexion finisse par se rétablir d'elle-même, donnant une impression de répétition (la position semblant reculer puis rattraper son retard). Cause : un envoi vers un client jugé trop lent était silencieusement abandonné côté serveur sans jamais en informer ce client, qui continuait de croire sa connexion valide. Le serveur informe désormais correctement le client dans ce cas, qui se reconnecte alors en une seconde environ ; le tableau de bord surveille en complément sa propre réception de données et force sa reconnexion s'il ne reçoit plus rien pendant quelques secondes.
Renforcement supplémentaire pour les réseaux Wi-Fi imparfaits (gigue, itinérance entre points d'accès) : chaque évènement de position porte désormais un numéro de séquence croissant propre au canal. Le client compare ce numéro au précédent reçu — un écart signale un évènement perdu en silence et déclenche une resynchronisation REST immédiate de l'état affiché, au lieu d'attendre le prochain cycle du filet de sécurité périodique (15 secondes).
7. Cohérence de la bibliothèque en temps réel
Un import, une modification de titre ou une suppression de vidéo se répercute désormais instantanément sur tous les écrans ouverts (sélection tactile, vitrine cinéma, bibliothèque d'administration) au lieu d'attendre le prochain sondage périodique.
8. Redesign complet des 16 thèmes (8 Clairs & 8 Sombres)
Refonte visuelle et colorimétrique majeure de l'ensemble de la charte graphique :
- Noms en un seul mot percutants : Carmin, Charbon, Miel, Sauge, Azur, Lavande, Lin, Ébène en clair ; Onyx, Graphite, Cuivre, Abysse, Indigo, Rubis, Orchidée, Moka en sombre.
- Variations et nuances chromatiques profondes pour chaque thème sombre au lieu de simples aplats noirs.
- Tokens CSS 100% dynamiques : élimination des couleurs en dur pour une adaptation fluide des fonds, bordures et indicateurs sur tous les écrans.
- Certifié WCAG 2.1 AA / AAA : ratios de contraste validés par script de luminance.
9. Accélération matérielle intégrale multi-OS (Décodage GPU + Encodage GPU)
- Zéro goulot CPU : Le réencodage vidéo à l'importation exploitait jusqu'alors le processeur pour décoder les flux (AV1, HEVC, H.264), provoquant des pics de consommation à 30W et une saturation CPU à plus de 740%.
- Pipeline multi-paliers direct en VRAM :
- Linux (VA-API) : Détection automatique du nœud de rendu DRM, décodage matériel direct et encodage
h264_vaapiviascale_vaapi=format=nv12sans copie RAM-VRAM. - macOS (VideoToolbox) : Décodage matériel
-hwaccel videotoolboxet encodageh264_videotoolbox. - Windows (QuickSync) : Décodage matériel
-hwaccel qsvet encodageh264_qsv. - Android (MediaCodec) : Décodage matériel cadencé à 1000 MHz pour AV1, HEVC, VP9 et encodage
h264_mediacodec. - Repli automatique : Bascule transparente vers le mode hybride puis le mode logiciel CPU (
libx264) si le décodeur matériel ne supporte pas le profil source.
- Linux (VA-API) : Détection automatique du nœud de rendu DRM, décodage matériel direct et encodage
- Performances : Réduction de 93,8% du temps CPU, suppression du pic de puissance à 30W, encodage 4K 60 fps en temps réel et préservation stricte de la résolution 4K / 2K native.
10. Mode d'affichage hybride (Laptops & Tablettes)
- Introduction du réglage
wired_display_mode(dual_screenouheadless) permettant de choisir le comportement de la sortie vidéo HDMI/filaire. - Sur les ordinateurs portables en mode headless, neutralisation de l'affichage vidéo sur l'écran principal (accueil sobre pupitre) avec bouton de bascule directe pour piloter les cours sur grand écran HDMI.
11. Restructuration de la Documentation dans Paramètres
Organisation claire en 3 groupes distincts :
- Accès Local (cette machine) : URLs en boucle locale
127.0.0.1avec liens directs vers/kiosk,/cinema,/coach,/radio(et/gridsur Android). - Accès Réseau (LAN / Wi-Fi) : IP locale, mDNS et liens vers les écrans du réseau.
- Données et Chemins système : Base de données SQLite, répertoires vidéos, fonds animés, cours audio et dossiers surveillés.
12. Installateur headless (Debian)
- Paquets audio installés systématiquement :
alsa-utils,pipewire,pipewire-pulse,wireplumberetpulseaudio-utilsétaient absents de la liste de paquets installée sur un Debian minimal. - Détection de carte son généralisée : détection dynamique de toutes les cartes présentes (HDA et USB).
- Nouvelle étape de vérification (
capabilities, également disponible via--check). - Nouvelle étape d'optimisation système (
tuning) : gouverneur CPU en mode performance, journal système plafonné à 200 Mo.
13. Cache HTTP des fichiers statiques — toutes plateformes
Correction à la source du mécanisme de revalidation ETag et If-Modified-Since pour le frontend statique embarqué, empêchant tout affichage d'interface périmée après une mise à jour.
14. Autres correctifs
- Correction des
ResourceWarninglors des sous-processus FFmpeg (fermeture garantie destdoutetstderr). - Section « Désinstaller » des réglages adaptée dynamiquement au profil Android.
- Liens de zone de notification (systray) reflétant fidèlement le port configuré.
- Ajout du Xiaomi Pad 8 comme tablette de référence validée en conditions réelles dans la liste du matériel supporté.
15. Mise à jour 1-clic multi-OS directement intégrée dans l'application
Le bouton « Mettre à jour » de l'interface d'administration gère désormais l'ensemble des profils applicatifs en toute autonomie :
- Linux de bureau & postes de dev : téléchargement en arrière-plan du paquet
bobine_update.debet déclenchement viapkexec dpkg -i, ou bascule automatiquegit checkout <tag>en environnement de développement. - Windows (.exe) : téléchargement autonome de
Bobine-Setup-update.exedans%TEMP%, écriture d'un script batch de relance et exécution silencieuse/VERYSILENTavec redémarrage transparent deBobineTray.exe. - Android (.apk) : téléchargement de l'APK dans le cache de l'application et ouverture instantanée de la boîte de dialogue système d'installation native Android via
UpdateManager.kt.
16. Contrôle intelligent du capot d'ordinateur portable (Mode Clamshell)
- Ajout de l'interrupteur « Ne pas mettre en veille à la fermeture du capot » dans Paramètres > Sortie câblée pour les laptops hôtes.
- Détection matérielle via
/proc/acpi/button/lid/et configuration dynamique au niveau du système d'exploitation (gsettingssous Linux GNOME,powercfgsous Windows). - Masquage des liens directs
/gridet/cinemadans la section câblée et nettoyage de l'ancienne astuce textuelle statique. - Retrait des parenthèses superflues
(/grid)et(/cinema)dans les libellés de l'interface en français et en anglais.
17. Refonte UI/UX Grille Cinéma & Widget Apple Glassmorphism
- Bannière Héros nette et luxueuse : suppression du dégradé vertical brumeux
to topcréant un voile terne ; transition nette marquée par une bordure subtile. - Widget Apple Glassmorphism : encadrement des métadonnées du héros ("Bobine", "À la une", titre, durée, bouton d'action) dans un conteneur translucide flottant avec flou d'arrière-plan profond (
backdrop-filter: blur(28px) saturate(190%)), bordure fine et ombrage multi-couches adapté au thème actif. - Adoucissement des ombres des miniatures : refonte des ombres de
.cinema-card-thumbet.cinema-all-thumb(ombres diffuses, élimination des angles durs) et élargissement des marges de défilement horizontal pour supprimer tout rognage. - Réactivité instantanée du renommage sans F5 : correction de la mémoïsation de
setVideossur/gridet/cinema, actualisant immédiatement le titre à la modification sans nécessiter de rechargement de page. - Notification de mise à jour thématisée : badge et toast harmonisés avec
var(--accent-primary)et cliquables pour rediriger directement vers la section Mises à jour des paramètres.
18. Mode « Race to Sleep » & Optimisations Réencodage
- Course à la veille (Race to sleep) : débridage complet des threads (
-threads 0) pour laisser FFmpeg etlibx264mobiliser tous les cœurs et pipelines logiques du processeur afin d'achever la tâche le plus rapidement possible et ramener le matériel en veille profonde (C-states). - Profil logiciel
ultrafast: bascule deveryfastàultrafastsur le palier de repli CPU, divisant par 3 à 4 le temps de calcul lors du traitement logiciel. - Parallélisme matériel VA-API accru : ajout de
-async_depth 4surh264_vaapipour traiter simultanément plusieurs trames dans la VRAM des cartes graphiques Intel et AMD. - Conservation audio directe : détection du codec audio pour copier directement les flux AAC compatibles (
-c:a copy), éliminant tout réencodage sonore inutile.
19. Refonte des Téléchargements et de la Documentation Orientée Profils Métiers
- Adaptation fine au public de chaque plateforme :
- macOS / Apple : valorisation de l'élégance, de la simplicité du glisser-déposer dans
/Applicationset du silence de fonctionnement (zéro bruit de ventilateur ni surchauffe sur MacBook). - Android (Tablette) : valorisation de la régie tout-en-un autonome (remplace tout PC encombrant dans la salle), du double affichage tactile + HDMI TV, et de la fiabilité 100% hors-ligne.
- Windows 11 / 10 : valorisation de l'assistant 1-clic, du raccourci Bureau, du démarrage discret en barre des tâches et du mode capot fermé (clamshell).
- Linux Bureau : valorisation du recyclage matériel de PC de bureau existants, intégration logithèque Ubuntu App Center et mises à jour faciles via dépôt APT.
- Bobine Assistant : valorisation de la supervision multi-écrans sans terminal et du scan réseau intelligent.
- Appliance Headless : valorisation des atouts techniques pour intégrateurs (script 18 étapes, allumage HDMI-CEC TV, <8W, 24/7).
- macOS / Apple : valorisation de l'élégance, de la simplicité du glisser-déposer dans
20. Raffinements Visuels Mat & Densité Grille Cinéma / Pupitre
- Fondu rapide gauche-droite & transition horizontale basse : élimination des coupures nettes sur le héros grâce à un masque de découpe rapide de gauche à droite et une transition douce en bas de bannière vers la couleur de fond du thème actif.
- Rendu 100% mat sans reflets ni halos lumineux (Zéro Glowing) : suppression intégrale des halos lumineux (
glow), reflets et ombres de couleur pour un rendu visuel sobre, élégant et conforme à la charte graphique. - Typographie pure sans encadrés : suppression des bordures et pilules autour des mentions "4K Ultra HD", "Stéréo 5.1" et des badges de l'écran de pause pour une lisibilité épurée.
- Grossissement du logo & alignement visuel strict
/gridet/cinema: le logo de marque est agrandi pour s'harmoniser avec la taille de l'écran kiosque, et la présentation visuelle du héros et des rangées de cours sur/gridreproduit fidèlement celle de/cinema. - Densité accrue des rangées de cours : miniaturisation optimisée des cartes et réduction des espacements permettant d'afficher davantage de cours simultanément à l'écran.
- Redémarrage automatique et asynchrone des services post-mise à jour : programmation détachée du redémarrage des services systemd (
bobine-kiosk,bobine-backend) lors du clic de mise à jour, garantissant une relance automatique sans aucune intervention manuelle ni blocage de la réponse HTTP.
21. Référencement & Mots-Clés (GEO)
Bobine est distribué sous licence libre GNU AGPL-3.0. Le code source est public, auditable et disponible sur le dépôt officiel : https://github.com/FantasmaGlad/Bobine.
Mots-clés de référence : application régie vidéo salle de sport, diffusion vidéo tactile tablette android hdmi, alternative open source Les Mills Cinema, alternative Wexer Virtual, réencodage matériel mediacodec videotoolbox vaapi, affichage dynamique 4k natif sans abonnement, double écran indépendant tablette hdmi android, kiosque vidéo autonome open source AGPL-3.0, race to sleep réencodage ffmpeg, mode clamshell sans mise en veille ordinateur portable, mise à jour 1-clic multi-OS sans terminal, écran de pause cinématique dynamique thème, redémarrage automatique services bobine.
