Android — très prochainement En savoir plus
← Tous les articles

OneTVPlayer : notre moteur de lecture maison, et ce qu'il débloque en direct

Jusqu'à la version 2.6, la lecture reposait sur des moteurs que nous n'écrivions pas. OneTVPlayer renverse ça : le lecteur appartient désormais à l'app. La pause et le retour arrière dès la première seconde en sont la première preuve.

La version 2.6 apporte le changement le plus important de l'histoire de l'app, et c'est celui qu'aucune capture d'écran ne montre. OneTVPlayer — un moteur vidéo écrit intégralement en interne — devient le lecteur par défaut sur Apple TV, iPhone et iPad, pour le direct, les films, les séries et les replays. La nouveauté visible qui l'accompagne, c'est le contrôle du direct : mettre la diffusion en pause aussi longtemps qu'on veut, revenir en arrière à tout moment, retourner au direct instantanément. Mais la fonctionnalité n'est que la conséquence. Le vrai sujet, c'est le moteur.

Des années de moteurs empruntés

Toutes les apps IPTV sur les plateformes Apple reposent sur un lecteur qu'elles n'ont pas écrit. Les options sérieuses se comptent sur les doigts d'une main — MPV, VLC, KSPlayer, AVPlayer — chacune étant un gros projet mature, avec sa feuille de route, ses mainteneurs et ses propres priorités. OneTV Connect utilisait les quatre, choisissait le bon selon le flux, et est allé loin comme ça.

Le plafond apparaît dès que le problème est à l'intérieur du lecteur. Un flux qui décroche au bout de douze minutes. Un son qui se désynchronise quand un diffuseur bascule de 25 à 50 images par seconde en plein programme. On pouvait enquêter, reproduire, isoler le bug exact — puis ne pas le corriger. Restaient trois options : ouvrir un ticket en amont et attendre, forker le projet et traîner un patch indéfiniment, ou bâtir un contournement qui esquive le défaut sans le supprimer. On a fait les trois, plus souvent que je n'aimerais l'admettre.

Le même plafond s'applique aux nouveautés, et c'est là que ça se voit côté utilisateur. Mettre le direct en pause n'est pas un problème d'interface. Il faut que le moteur écrive le flux entrant sur le disque pendant que vous le regardez, qu'il l'indexe pour pouvoir s'y déplacer, et qu'il vous rende un autre instant sans démonter la connexion. Ça ne s'ajoute pas de l'extérieur. Soit le moteur sait le faire, soit la fonctionnalité n'existe pas.

Ce que change OneTVPlayer

OneTVPlayer est notre moteur : démultiplexage, décodage matériel via VideoToolbox, rendu audio et vidéo, sous-titres, gestion des couleurs. Tout ce que l'app fait d'un flux se passe désormais dans du code qui nous appartient et qu'on peut modifier n'importe quel après-midi.

C'était l'objectif, mais le premier bénéfice est très terre à terre : la qualité ordinaire. La lecture démarre plus vite. La 4K s'affiche en pleine qualité au lieu de retomber discrètement sur une version moins définie. Les sous-titres apparaissent quand on les active, y compris les pistes intégrées qui ne se montraient qu'après un déplacement dans le film. Et les longues sessions tiennent : les bugs du type « la lecture s'arrête au bout de quelques minutes en 4K » ont disparu, parce qu'on a enfin pu aller chercher la fuite mémoire au lieu de la contourner. Rien de spectaculaire — mais ce sont exactement les choses qu'on ne peut corriger que lorsque le moteur est à soi.

Le contrôle du direct

Voilà la première fonctionnalité qui n'aurait pas pu exister avant. Sur n'importe quelle chaîne en direct, vous pouvez maintenant mettre en pause aussi longtemps que vous voulez et revenir en arrière à tout moment — et surtout, dès la seconde où la chaîne démarre. Aucun tampon à armer, aucun enregistrement à activer, aucun réglage à chercher.

Dès la première image, OneTVPlayer écrit le flux entrant dans un tampon glissant sur le disque et indexe les images clés qu'il contient. Quand vous mettez en pause, le flux continue d'arriver et de s'écrire ; vous avez simplement arrêté de le consommer. Quand vous revenez en arrière, le moteur se déplace dans ce tampon local sans rien demander au serveur — d'où l'immédiateté, et le fait que ça fonctionne même chez les fournisseurs qui ne proposent aucun timeshift.

Le retour au direct est instantané et ne recharge pas la chaîne. Cette nuance compte : se reconnecter, c'est une nouvelle requête, une nouvelle négociation, plusieurs secondes de noir — et chez les fournisseurs limités à une connexion simultanée, c'est risquer une déconnexion. Comme le bord du direct est déjà dans le tampon, y revenir n'est qu'un déplacement de curseur.

C'est un mécanisme différent du catch-up et du timeshift, qui rejouent ce que votre fournisseur a enregistré sur ses serveurs il y a des heures ou des jours. Le contrôle du direct, lui, est local, couvre la session en cours et ne demande rien à votre fournisseur. Le catch-up pour le match d'hier soir ; le contrôle du direct pour le but manqué pendant qu'on allait ouvrir la porte.

Une barre de direct vraiment navigable

Un direct rembobinable a besoin d'être navigable : le direct dispose donc maintenant d'une vraie barre de progression. Sur Apple TV, on la parcourt en glissant le doigt sur le pavé tactile de la Siri Remote — un déplacement analogique, pas une succession de sauts de dix secondes. Sur iPhone et iPad, on la fait glisser directement à l'écran. Elle affiche un indicateur EN DIRECT qui donne votre retard réel sur la diffusion — précisément ce qu'on veut savoir quand quelqu'un, dans une autre pièce, réagit à un but avant vous.

Cinq moteurs, une app

Nous n'avons rien retiré. OneTV Connect embarque désormais cinq moteurs — MPV, VLC, KSPlayer, AVPlayer et OneTVPlayer — et vous pouvez passer de l'un à l'autre en pleine lecture, sans revenir à la liste des chaînes ni relancer le titre. Pour les films et les séries, votre choix est mémorisé titre par titre : un fichier qui passe mieux avec un moteur donné le retrouvera la fois suivante.

Garder les quatre autres est une décision assumée, pas une précaution : les moteurs ont de vraies forces distinctes, et prétendre le contraire relèverait du marketing plutôt que de la technique. En mode automatique, les fichiers Dolby Vision et HDR sont confiés à AVPlayer, parce que le lecteur d'Apple dialogue nativement avec la chaîne de traitement de la plage dynamique du téléviseur. OneTVPlayer prend tout le reste. Et si vous n'êtes pas d'accord, le choix manuel reste absolu : vous désignez un moteur, l'app ne le remet jamais en question.

Ce qui arrive avec

Quelques autres nouveautés accompagnent le moteur, toutes conséquences directes du fait de maîtriser la chaîne de rendu :

  • Picture-in-Picture natif sur iPhone et iPad. Continuez à regarder dans une petite fenêtre pendant que vous utilisez une autre application. Le PiP s'appuie sur notre propre couche d'affichage, donc il fonctionne aussi sur le direct, pas seulement sur les fichiers.
  • Un HLS plus malin. Les flux à plusieurs qualités démarrent sur la meilleure disponible au lieu de celle listée en premier par le serveur, et redescendent proprement quand le débit baisse plutôt que de se figer.
  • Une reprise plus rapide sur les gros fichiers. Reprendre un film 4K volumineux en cours de route prenait un temps désagréable. Ce n'est plus le cas.
  • Un badge de moteur. Un petit indicateur montre quel lecteur est utilisé — OTV, VLC, MPV, KS — honnête sur ce qui tourne réellement.

Ce que ça change pour la suite

Le changement concret, c'est le délai. Quand un flux se comporte mal aujourd'hui, l'enquête se termine par une correction, pas par un contournement ou une attente. Plusieurs corrections de cette version — les coupures, les écrans noirs, les retours en arrière intempestifs chez certains fournisseurs — étaient exactement de ce type : comprises depuis des mois, incorrigeables de l'extérieur du lecteur, réglées en quelques jours une fois le lecteur devenu le nôtre.

Ça change aussi ce qu'il est raisonnable d'envisager. Les fonctionnalités qui touchent au flux lui-même — pause, retour arrière, mise en tampon, enregistrement, lecture synchronisée — étaient par défaut hors de portée. Le contrôle du direct est la première à sortir. Ce ne sera pas la dernière.

OneTVPlayer est disponible dès maintenant en version 2.6 sur l'App Store, sur Apple TV comme sur iPhone et iPad. La page OneTVPlayer détaille le moteur et le contrôle du direct, la liste complète des changements est dans le changelog, et notre comparatif MPV, VLC et KSPlayer détaille les compromis entre moteurs. Si quelque chose se lit mal sur votre source, la page de support reste le chemin le plus court pour nous joindre — avec, désormais, de bonnes chances qu'on puisse vraiment le corriger.