Journal dump freeboxtv

Posté par  (site web personnel) .
Étiquettes : aucune
0
29
déc.
2005
Un script tout bete pour faire un dump freeboxtv. Ca utilise vlc parce que je trouve le resultat meilleur qu'avec mplayer (moins de saccade) :

if [ x$1 != xdirect ] ; then
when=$1 ; shift
secs=`date --date="$when" +%s`
nows=$[`date +%s` + 10]
if [ $secs -lt $nows ] ; then
when=now
fi
# $0 now $*
echo $0 direct $* | at $when
exit 0
fi

shift
START=`date +%s`
STOP=`date --date="$1" +%s` ; shift
STREAM="$1" ; shift
OUTFILE="$1" ; shift
STOP=$[$STOP + 20 * 60]
LENGTH=$[$STOP - $START]

vlc $STREAM --sout "#std{access=file,mux=ts,url=$OUTFILE}" -I dummy &
pid=$!
echo spawned $pid

_trap_kill ()
{
trap "" KILL EXIT QUIT INT TERM
echo killing $pid
kill $pid
sleep 3
sync
exit 0
}
trap _trap_kill KILL EXIT QUIT INT TERM

sleep $LENGTH
exit 0


Ca utilise "at" pour programmer un enregistrement en laissant une marge de 20mn a la fin. Exemple d'utilisation (avec un flim debile) :

./enregistre.sh 20:50 22:30 rtsp://mafreebox.freebox.fr/freeboxtv/373 debilite.mpg

Pour enregistrer en direct :

./enregistre.sh direct 22:30 rtsp://mafreebox.freebox.fr/freeboxtv/373 debilite.mpg


Probleme (de taille) : si je fais atrm, ca supprime pas l'enregistrement, il faut faire killall vlc.
  • # Utiliser autre chose que AT, ou gérer une liste des travaux en cours

    Posté par  (site web personnel) . Évalué à 4.

    Le mieux serait de stocker le (les) pid de tes vlc dans des fichiers (genre dans /var/run/enregistre/`job-id`.pid) et d'avoir un second at qui kill le process. ainsi, ton job de lancement se lance en arrière plan.
  • # A propos

    Posté par  (site web personnel) . Évalué à 5.

    J'ai commencé à écrire un petit script python qui utilise mencoder pour un pote. Il doit permettre de récupérer la liste des chaines disponibles sur la freebox et de choisir une chaine à enregistrer avec un belle GUI GTK. Bon je viens de le faire et comme je suis pas un expert, c'est pas encore génial et ce n'est pas très propre. (pour pas dire que c'est codé comme un bourrin !)

    Si quelqu'un est intéressé:
    http://kephpage.free.fr/prog/tnt-ripper/tnt.tgz

    En conjuguant nos deux scripts, ca doit pouvoir donner quelque-chose de sympa.

    (Si vous souhaitez reprendre le script, allez-y ! Je n'ai même pas la freebox moi donc je n'y troucherai plus trop...)
  • # Freebox sur mythtv ?

    Posté par  (site web personnel) . Évalué à 2.

    Quelqu'un sait-il, si il existe un module pour mythtv ?
  • # Petite question

    Posté par  . Évalué à 1.

    L'url rtsp://mafreebox.freebox.fr/freeboxtv/373 doit être spécifique à chacun n'est ce pas ?

    Comment je peux connaitre la mienne ?

    Merci
    • [^] # Re: Petite question

      Posté par  . Évalué à 1.

      Non la base rtsp://mafreebox.freebox.fr/freeboxtv/ est commune à tout le monde, le numéro qui suit dépend de la chaîne.
      • [^] # Re: Petite question

        Posté par  (site web personnel) . Évalué à 2.

        En fait mafreebox.freebox.fr est l'adresse de la freebox.
        La freebox filtre tous les flux allant vers cette adresse (et peut-être venant de cele-ci).

        C'est facile à vérifier : il suffit de pinger l'adresse. Le serveur distant ne répond pas au ping.
        La freebox y répond.
        Donc si le freeanue arrive a pinger mafreebox.freebox.fr, c'est OK.
  • # frontend

    Posté par  (site web personnel) . Évalué à 2.

    j'ai fait un frontend en python/gtk à ton script :
    http://forum.ubuntu-fr.org/viewtopic.php?pid=158545#p158545

    c'est un début ... j'ai aussi un peu modifié ton script pour reencoder/recompresser le flux ...
    • [^] # Re: frontend

      Posté par  (site web personnel) . Évalué à 1.

      Terrible !

      Le truc qui me gene vraiment, c'est que atrm ne permet pas de virer l'enregistrement en cours s'il y en a un (atrm ne fait que supprimer le script de lancement dans /var). Ce que tu pourrais faire dans ton script, c'est passer en parametre a enregistrer.sh un nom de fichier unique. Quand ton script fait le at, il enregistre le numero du job attribué dans ce fichier (ligne JOBID=... par exemple). Des que enregistrer.sh lance vlc, il enregistre son pid (de enregistrer.sh) dans ce fichier (ligne PID=... par exemple). Ainsi, pour supprimer un enregistrement, ton script regarde atq d'abord, fait atrm si besoin, et s'il voit une entree PID=... dans le fichier unique, il fait un kill dessus.
      • [^] # Re: frontend

        Posté par  (site web personnel) . Évalué à 2.

        suis content que ça te plaise
        moi j'aime bien ton script ;-)

        depuis j'ai fait qques modifs http://forum.ubuntu-fr.org/viewtopic.php?pid=158844#p158844
        la 0.1b, qui permet principalement d'annuler un enregistrement différé futur ...( et corrige qques bugs de la 0.1 )

        si je comprends bien ce que tu me dis ... faudrait pouvoir arreter un enregistrement "en cours", c ça ?
        c la prochaine étape .... normalement ...
      • [^] # Re: frontend

        Posté par  (site web personnel) . Évalué à 3.

        • [^] # Re: frontend

          Posté par  (site web personnel) . Évalué à 0.

          Yes ! Je crois que je vais l'adopter ;) !

          Est-ce que tu pourrais rajouter une liste des enregistrements termines ou interrompus ? Ou alors 3 listes : une liste des enregistrements a venir, une liste des enregistrements en cours, et une liste des enregistrements termines/interrompus (avec possibilite de les supprimer du disque) ? Est-ce que tu pourrais rajouter la possibilite de donner (entrer a la main, recup automatique) des meta-info aux enregistrements (titre de l'emission, appreciation, ...) ?

          Encore une... Tu pourrais juste rajouter un bouton "visionner" qui lance un viewer (configurable : pour moi ca sera xine pour les trucs deja sur disque, vlc pour les rtsp ;) sur le flux quand on clique sur une chaine, ou sur l'enregistrement quand on clique sur un enregistrement en cours ou termine/interrompu ?

Suivre le flux des commentaires

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