Forum Astuces.divers Enregistrement streamings Freebox avec un firewall PF

Posté par .
Tags : aucun
4
14
fév.
2009
Bonjour,

Récemment j'ai souhaité programmer dans un cron l'enregistrement d'un flux de ma FREEBOX, sur une machine de mon réseau derrière mon firewall OpenBSD.
Le problème s'est vite posé avec le protocole RTP/RTMP, comment faire pour que le firewall sache sur quelle machine diriger le flux ?


J'ai trouvé deux solutions à au problème:

solution 1: rtspproxy
je ne développe pas car je n'ai pas réussi à faire fonctionner !

solution 2: vlc, routage et port forwarding
les streamings de la Freebox sont fait à base de VLC, un des développeurs de VLC travaille d'ailleurs chez Free.fr pour toute cette partie. Donc VLC évolue aussi en fonction des besoins de Free.fr ... il est donc l'outil idéal pour enregistrer les flux de la Freebox.
La solution vient du fait que nous puissions choisir le port source du client.
Donc sur mon poste de travail (Zeus) j'ai configuré le port 35000: dans vlc paramètres, préférences, Lecture / Codecs, Démultiplexeurs, RTP/RTSP, Port client 35000).
Puis j'ai ajouté les règles suivantes dans mon PF:
rdr on $Ext1 proto UDP from mafreebox.freebox.fr to $Ext1 port 35000 -> $Zeus
rdr on $Ext1 proto UDP from mafreebox.freebox.fr to $Ext1 port 35002 -> $Hera
(TCP,UDP sont ouverts en sortie sur ce fw)

Enfin sur Hera machine qui enregistrera mes émissions j'ai dans cron:
55 17 * * 6 /usr/bin/radio-freebox-worldwide 130

et le script suivant : cat /usr/bin/radio-freebox-worldwide:
#!/bin/bash
# Free.fr Radio Ripper of Worldwide set
# Rip a streaming, and archivate
#
# param $1 Time in min
#
TIME=$1
DIR='/mnt/Upload/Radio_Scheduled_RIP'
DATE=$(/bin/date +%Y%m%d)
NAME='Gilles Peterson - Worldwide - Radio Nova - '$DATE'_TOCUT'
LOG=/tmp/radio.log
echo URL : $URL >$LOG
echo TIME : $TIME >>$LOG
echo DIR : $DIR >>$LOG
echo NAME : "$NAME" >>$LOG
vlc --rtp-client-port=35002 --no-video 'rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&ser(...) --sout '#standard{access=file,mux=mp4,url=/mnt/Upload/Radio_Scheduled_RIP/tmp.mp3}'-I dummy --daemon
sleep "$TIME"
/usr/bin/killall vlc
mkdir "$DIR/$NAME"
mv "$DIR/tmp.mp3" "$DIR/$NAME/$NAME.mp3"

A noter surtout la commande vlc pour enregistrer ici un flux radio (radio Nova sur cette fréquence fonctionnant le 02/2009), les paramètres sont à récupérer dans votre liste
http://mafreebox.freebox.fr/freeboxtv/playlist.m3u
Le script est améliorable à souhait...

Chaque machine sur le réseau naté devra être ajoutée dans le firewall et configurer son port source vlc.

Le plus simple serait de faire fonctionner osrtspproxy-2.0, si quelqu'un sait faire ça m'intéresse.

Merci à Free pour la qualité de sa solution ouverte en ce qui concerne ses flux, à l'époque tumultueuse des Hadopi et autres amendements 138, que les solutions restent libres : c'est la source de l'innovation à la portée de tous.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.