Outils pour utilisateurs

Outils du site


freebox_multiposte_derriere_un_routeur_openwrt

Freebox Multiposte derrière un routeur OpenWrt

Le problème

Lorsqu'on utilise un routeur entre la Freebox et le réseau local, il est courant que la réception du service vidéo “Multiposte” de Free cesse de fonctionner. Tout dépend des fonctionnalités du routeur.

Dans le service Multiposte, la diffusion des flux vidéo s'appuie sur le protocole rtsp. Or ce dernier n'étant pas conforme au modèle OSI, le routeur doit être équipé de fonctionnalités spécifiques à ce protocole lui permettant d'inspecter le contenu des échanges1) entre clients2) et le serveur de diffusion de Free3). Pas de panique, c'est le cas d'autres protocoles tels que FTP ou BitTorrent. S'il est rare qu'un routeur récent vous fasse des histoires avec FTP c'est simplement parce qu'en version de base, il est équipé de la fonctionnalité nécessaire.

Il existe de très nombreuses versions d'OpenWrt. Dans mon cas, le firmware initial recommandé pour mon routeur matériel gérait intelligemment le protocole FTP mais pas rtps.

Des utilisatrices rencontrent le même problème avec d'autres routeurs open source tel DD-WRT.

La solution

Sources :

Le web regorge de solutions bancales de contournement. Ici, l'objectif est qu'une fois la solution installée sur le routeur, n'importe quel terminal raccordé au réseau local4) puisse utiliser le service Multiposte sans rien avoir à modifier/adapter sur le routeur.

Comme suggéré en intro, la résolution du problème va passer par l'installation de fonctionnalités supplémentaires, sous forme d'extensions. Le problème étant standard, les extensions nécessaires sont déjà présentes dans le dépôt officiel d'OpenWrt : pas besoin d'implanter au cœur d'un équipement névralgique, un “machin” récupéré sur une source inconnue.

Mise en œuvre

J'ai procédé à la mise à niveau du routeur à travers son interface Web (luci) :

  • se connecter en tant que root
  • System > Software > Update lists…
  • dans l'onglet par défaut (Available), filtrer les résultats par “nathelper”
  • installer les packages nécessaires
    • kmod-ipt-nathelper-rtsp
    • kmod-nf-nathelper
    • kmod-nf-nathelper-extra
    • ce qui installera également, du fait des dépendances entre packages
      • kmod-lib-textsearch
      • kmod-ipt-raw
      • kmod-ipt-conntrack-extra
  • rebooter le routeur

Test

Depuis un ordi raccordé au LAN, dans un terminal :

$ mplayer "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=ld"

Une fenêtre devrait afficher le programme diffusé sur chaîne France 2, basse définition.

Cette technique de test permet deux choses. D'un côté, les éventuels messages d'avertissement ou d'erreur seront facilement accessibles dans le terminal d'où on a lancé la lecture du flux avec l'application standard, mplayer. De l'autre, on s'affranchit de problèmes récurrents rencontrés avec VLC qui empêchent de savoir si on débogue VLC ou le routeur :-/

Si la commande mplayer fonctionne mais que VLC coince, c'est que le problème vient de VLC. Si mplayer ne passe pas, inutile d'essayer avec VLC.

Visionnage/écoute des flux

C'est quand même le but ! LOL

Sur ordi

Sur ma station de travail, j'utilise KMplayer. Il suffit d'ajouter un signet pointant sur la liste de lecture de free (“http://mafreebox.freebox.fr/freeboxtv/playlist.m3u”). KMplayer affiche la liste des tous les flux proposés et le flux vidéo sélectionné (s'il est compris dans l'abonnement !).

VLC est très souvent recommandé pour visionner les flux Multiposte. C'est d'ailleurs la préconisation officielle de Free. La version installée sur Debian 11 et Mint 20.3 (Vetinari) s'est avérée incapable d'afficher les flux. Disposant de la solution KMplayer sur ma station et mon but étant de visionner sur un téléviseur, je n'ai pas cherché plus loin à faire fonctionner VLC5).

Sur Box-TV

Prérequis

La box accède à internet à travers la Freebox.

Configuration

Sources :

Le test a été réalisé sur une Box-TV bas de gamme, antique6), équipée d'Android-TV et d'une version antédiluvienne de Kodi.

L'immense majorité des tutos préconise l'utilisation de l'extension PVR Freebox. J'ai préféré utiliser un add-on générique IPTV offrant une plus grande compatibilité de modèles de Freebox et de versions de Kodi que l'add-on dédié.

Mon choix s'est porté sur PVR IPTV Simple Client que l'on installe depuis Kodi lui-même :

  • Kodi > Add-ons > My-add-ons > PVR client > PVR_IPTV_Simple_Client > Install
  • Config > General > Location > Remote path
  • cliquer sur M3u Play List URL
  • saisir l'URL de la liste de flux Free-Multiposte : http://mafreebox.freebox.fr/freeboxtv/playlist.m3u
  • OK et OK pour valider la configuration

Un redémarrage de Kodi est nécessaire pour que la modification soit prise en compte. Au démarrage, Kodi charge la liste de lecture.

Liste de lecture et flux

L'URL de Free Multiposte ne fait que pointer sur une fichier texte que l'on peut parfaitement télécharger et examiner, comme n'importe quel fichier texte disponible sur le web. À titre indicatif, en voici les premières lignes :

#EXTM3U
#EXTINF:0,2 - France 2 HD
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd
#EXTINF:0,2 - France 2 
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd
#EXTINF:0,2 - France 2 (bas débit)
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=ld
#EXTINF:0,3 - France 3 HD
rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=202&flavour=hd
…

C'est là que nous avons trouvé l'URL rtsp utilisée lors du test avec la commande mplayer.

Le fait d'accéder à ce fichier démontre uniquement que l'on bien sur le réseau de Free. C'est peu mais il s'agit une condition nécessaire pour accéder à Free Multiposte !

La capacité à récupérer cette liste de lecture, une simple connexion en http, ne préjuge en rien de la possibilité que nous aurons à faire fonctionner les requêtes en rtsp qui permettent d'accéder au flux. Ainsi, si VLC7) affiche la liste mais s'avère incapable de lire un flux cela ne signifie nullement qu'on est proche du but. Cela montre simplement qu'il est capable de faire (ou sous-traiter un requête http) et de comprendre la structure simplissime du fichier “playlist.m3u”.

1)
On parle de “suivi des connexion”, ou Conntrack.
2)
Les terminaux (ordi, smartphone, box-tv…) raccordés à votre LAN.
3)
En pratique, on ne communique pas vraiment avec “le” serveur mais avec des points de diffusion, ce qui ne change rien pour cette fiche.
4)
Derrière le routeur.
5)
De nombreux posts sur des forums font état de problèmes rencontrés avec rtsp sur cette version. Il pourrait s'agir d'une simple limitation de la version de VLC distribuée par Debian et ses cousines dans laquelle le support du protocole rtsp n'aurait tout bêtement pas été compilé…
6)
Android 4.
7)
Ou un logiciel équivalent.
freebox_multiposte_derriere_un_routeur_openwrt.txt · Dernière modification : 2023/04/26 00:23 de 127.0.0.1