Journal : fricorder : magnetoscope pour flux freebox

Posté par manatlan (Jabber id, page perso, ) le 06 janvier 2006
0
Voilà, ça ne concerne que les linuxiens qui possèdent une freebox, et qui ont le multiposte d'actif ...
Ce n'est pas de la pub (d'ailleurs peut on parler de pub pour un produit gpl ?!), mais c'est le genre de journal que j'aurai voulu voir icc bas ... ça m'aurait évité de devoir le developper moi même ;-)

comme le dit le titre : c'est une magnetoscope numerique, réalisé en python/gtk, qui permet de programmer des enregistrements de flux freebox (rtsp) sur son ordinateur.
C'est une sorte de frontend à "at", qui lance un script (de ce genre http://linuxfr.org/%7E11010010/20437.html), pour enregistrer le flux via un vlc qui bien ... (merci à David Decotigny pour l'idée du script)

tout est dispo là :
http://manatlan.online.fr/fricorder.php
(plus d'infos sur la pauvre page)

ça existait, assez rapidement pour les plateformes win32, et en voilà un pour gnu/linux (gtk) ... et qui permet, en plus, d'utiliser un guide tv (fichier xmltv, issu de tv_grab_fr), pour faciliter la saisie des enregistrements ... (je crois savoir qu'il y en a aucun sous win qui possède déjà cette fonctionnalité) ...

ça marche plutôt bien ;-), et c'est la version 0.5 (avant ça se nommait freecorder) ...

si ça peut servir à d'autres ... j'accepte aussi les patchs ...
et si il y a des gens qui arrivent à enregistrer dignement en mpeg4 avec VLC : je suis également prenneur (les tests que j'ai fait, il était le plus souvent illisible par autre chose que vlc, sous sans son, ou sans video, et quand il y avait les 2 : c'était souvent décalé) ...

Il y aura bientôt, une interface web, pour un pilotage distant, en utilisant l'excellent nouveau web.py ( http://webpy.org/ ) ... et qques menus corrections (nom de l'emission enregistré, ...)

> Lire le journal (40 commentaires, moyenne: 1,8).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

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

:)

Posté par jm trivial (page perso, ) le 06/01/2006 à 08:41. (lien). Évalué à 2.

Plutôt sympa, cette idée... Je testerais un de ces 4, même si je n'ai pas l'occasion de regarder souvent la TV...

merci

  • [^]Re: :)

    Posté par Tibo () le 06/01/2006 à 09:20. (lien). Évalué à 3.

    Excellent ! Je vais tester ça ce we, merci ! :-)

J'ai une erreur au lancement

Posté par Carbon Kid () le 06/01/2006 à 09:25. (lien). Évalué à 1.

File "./fricorder.py", line 99
@staticmethod
^
SyntaxError: invalid syntax

J'ai pourtant bien installé les dépendances précisées dans le lisez-moi.

  • [^]Re: J'ai une erreur au lancement

    Posté par David Douard () le 06/01/2006 à 09:35. (lien). Évalué à 2.

    C'est parceque tu n'est pas en Python 2.4...
    Cette nouveauté (l'utilisation du '@') est apparue à la version 2.4 du langage, pour permettre facilement de "décorer" une fonction (ce sont des decorators en anglais).
    En gros, c'est (pour reprendre la doc de Python) :

    @A @B @C
    def f ():
    ...

    It's equivalent to the following pre-decorator code:
    [ est équivalent au code suivant (en python 2.3)]

    def f(): ...
    f = A(B(C(f)))

    • [^]Re: J'ai une erreur au lancement

      Posté par Carbon Kid () le 06/01/2006 à 09:39. (lien). Évalué à 1.

      Merci de la réponse.
      J'ai python2.3 et python2.4 d'installés. Comment faire pour que fricorder utilise la version 2.4 ?

      • [^]Re: J'ai une erreur au lancement

        Posté par David Douard () le 06/01/2006 à 10:02. (lien). Évalué à 2.

        2 possibilités :

        si tu lances le soft en ligne de commande (en supposant que python24 est le nom de l'executable Python 2.4) :
        python24 fricorder.py

        Sinon, modifier le fichier fricorder.py, première ligne, remplacer :
        #!/usr/bin/env python

        par
        #!/usr/bin/python24

        Bien sûr, adapter "/usr/bin/python24" à ton install...

        David

        • [^]Re: J'ai une erreur au lancement

          Posté par Carbon Kid () le 06/01/2006 à 10:21. (lien). Évalué à 1.

          Je n'ai plus d'erreur.
          Bon le logiciel ne se lance pas non plus, mais je pense que ca vient du fait qu'il ne trouve pas la playlist, et qu'il reste bloqué en attendant. Je testerais ca ce soir en rentrant.

          Merci du coup de main.

        • [^]Re: J'ai une erreur au lancement

          Posté par jpq () le 08/01/2006 à 09:59. (lien). Évalué à 1.

          Bonjour,

          j'ai suivi tes conseils en modifiant fricorder.py pourutiliser python2.4

          je passe lepb de @...

          mais j'obtiens l'erreur suivante:

          Traceback (most recent call last):
          File "./fricorder.py", line 514, in ?
          main()
          File "./fricorder.py", line 505, in main
          window1 = Window1()
          File "./fricorder.py", line 167, in __init__
          SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
          File "/home/jpq/fricorder/SimpleGladeApp.py", line 108, in __init__
          self.new()
          File "./fricorder.py", line 226, in new
          self.fillAt()
          File "./fricorder.py", line 267, in fillAt
          for code,chaine,deb,duree in getAtList():
          File "./fricorder.py", line 55, in getAtList
          buf=run(["atq"])
          File "/home/jpq/fricorder/libs/common.py", line 9, in run
          p = Popen(cmds, shell=False,stdout=PIPE,stderr=PIPE)
          File "/usr/lib/python2.4/subprocess.py", line 542, in __init__
          errread, errwrite)
          File "/usr/lib/python2.4/subprocess.py", line 975, in _execute_child
          raise child_exception
          OSError: [Errno 2] Aucun fichier ou répertoire de ce type

          Merci pour ton aide

          jpq

je vais jouer les gros lourd

Posté par fearan () le 06/01/2006 à 09:33. (lien). Évalué à 0.

sisi...
Mais est-ce qu'il y a une version style ligne de commande pour les gros boulets comme moi ( c'est pour ca que je suis lourd ) qui sont partit trop vite le matin, permettant de tout faire dans un terminal ( à la xawdecode_record.sh quoi... ) ?
Bon si y a pas, je peux toujours recup les deux scripts et faire un mix...

--
Kids in the backseat cause accidents
Accident in the backseat cause kids
  • [^]Re: je vais jouer les gros lourd

    Posté par olivier esver (page perso, ) le 06/01/2006 à 09:44. (lien). Évalué à 1.

    D'après le journal c'est un frontend à http://linuxfr.org/~11010010/20437.html donc il te suffit d'utiliser le script de cette page

    • [^]Re: je vais jouer les gros lourd

      Posté par manatlan (Jabber id, page perso, ) le 06/01/2006 à 10:19. (lien). Évalué à 4.

      oui, mais ce n'est plus du tout ce script ...
      cependant, je prévois de faire un frontend web ...

      donc, en ssh ... il suffira de lancer le bousin ... et de tuneller le futur port de l'interface web ... et de clic clic clic ...

      sinon si tu feux utiliser la ligne de commande de fricoder tu peux toujours faire :

      echo ./frecord.sh rtsp:/.... 60 haute ~/fichier.mpg | at 15:00
      (60: minute ... à 15h, en qualité "haute" ...)

Merci beaucoup

Posté par Julien Damon (page perso, ) le 06/01/2006 à 09:53. (lien). Évalué à 4.

C'est tout à fait le genre de chose qui me falait.

Je vais l'essayer, mais j'ai déjà quelques remarques/suggestions :
- Permettre de spécifier l'heure de fin plutot que le durée.
- Pouvoir utiliser mencoder au lieu de vlc.
- Quel est la marge (si il en a une) prise autour des horaires donnés par xmltv ?
- Fournir un fichier de config adequat pour xmltv.
- Permettre de lancer automatiquement un programme après que l'enregistrement soit achevé (par exemple pour réencoder en mpeg4 avec 2 passes)
- Ajouter les logos des chaines (si, si !)

Sinon tu devrais proposer ton soft sur la page suivante :
http://www.freeplayer.org/portal.php?article=3182&pid=1
Histoire de montrer qu'il existe aussi des logiciel pour commander le magnetoscope freeboxtv sous linux.

  • [^]Re: Merci beaucoup

    Posté par Séverin Tagliante-Saracino () le 06/01/2006 à 12:35. (lien). Évalué à 3.

    Snif. Moi qui avait décidé de ne pas racheter de télévision, je viens de découvrir Free Multiposte à cause de ton journal.

    Au moins ton logiciel me permettra d'avoir une utilisation plus intelligente du bidule... Waouhhh y'a les simpsons ! A+

Enregistrement

Posté par Jérôme Audu () le 06/01/2006 à 10:01. (lien). Évalué à 2.

Pour le transcodage (en regardant ou non), j'obtiens de
bon résultat (pas de décalage audio/video, et regardable partout (totem, xine, ...) en faisant:

Méthode d'encapsulation: ogg
Option de transcodage:
Codec Video: mp4v, 512kps, echelle 0.75
Codec Audio: vorb, 64kps

Ce qui donne:
:sout=#transcode{vcodec=mp4v,vb=512,scale=0.75,acodec=vorb,ab=64,channels=2}:duplicate{dst=display,dst=std{access=file,mux=ogg,url="essai.ogg"}}

j'aurrai bien mit theora comme codec Video, mais chez moi, ca plante... seg. fault...

sinon, je test ton soft dès ce soir! y-a-t il un témoin visuel qui indique
l'enregistrement en cours ?

  • [^]Re: Enregistrement

    Posté par manatlan (Jabber id, page perso, ) le 06/01/2006 à 10:15. (lien). Évalué à 2.

    > sinon, je test ton soft dès ce soir! y-a-t il un témoin visuel qui
    > indique l'enregistrement en cours ?

    oui, une progressbar (zenity), permettant d'annuler ....

    sinon, merci pour tes params vlc ...
    suis vraiment curieux de tester ça ce soir !!!! (mais il me semble que j'avais aussi essayé cette combi)

    • [^]Re: Enregistrement

      Posté par mpeponas (page perso, ) le 06/01/2006 à 19:43. (lien). Évalué à 2.

      oui, une progressbar (zenity), permettant d'annuler ....

      Chez moi, Lorsque l'enregistrment ce lance, zenity (d'apres top en tout cas) prend 100% du cpu, ce qui est assez genant.
      Des idées sur la cause de ce problème?

      • [^]Re: Enregistrement - problème sur zenity

        Posté par Julien Damon (page perso, ) le 09/01/2006 à 18:59. (lien). Évalué à 1.

        L'appel fait à zenity consomme tout le temps cpu restant.
        Pour éviter cela, on peut (par exemple) remplacer la ligne contenant "zenity" du fichier fricord.sh par le code suivant :

        (
        echo "0"
        sleep $LENGTH
        ) | zenity --display=:0.0 --progress --pulsate --title "FriCorder: Enregistrement de" --text `basename $OUTFILE` --auto-close &

  • [^]Re: Enregistrement

    Posté par manatlan (Jabber id, page perso, ) le 06/01/2006 à 16:40. (lien). Évalué à 2.

    avec tes params ... j'ai uploadé une version 0.5b maintenant
    2 possibilité d'enregistrement :
    - direct : qualité direct du flux (mpeg2)
    - OGM : compression mpeg4 comme tes params ...

    • [^]Re: Enregistrement

      Posté par Jérôme Audu () le 06/01/2006 à 17:58. (lien). Évalué à 1.

      Un rapide benchmark permet de mettre en lumiere que le format TS (qui possede des paquet de seulement de 188bytes) est loin d'être optimal dans le cas d'un sauvegarde sur disque.

      Voici le resultat des different format d'encapsulation pour un même stream

      -rw-r--r-- 1 ja ja 5948161 jan 6 18:31 foo.asf
      -rw-r--r-- 1 ja ja 5896185 jan 6 18:32 foo.mpg
      -rw-r--r-- 1 ja ja 5945568 jan 6 18:30 foo.ogg
      -rw-r--r-- 1 ja ja 5898192 jan 6 18:31 foo.ps
      -rw-r--r-- 1 ja ja 6144592 jan 6 18:29 foo.ts

      la packetisation de type MPEG semble la plus efficace dans ce cas.
      Il serait donc souhaitable que tu changes ton foramt de sauvegarde "direct"
      du format MPEG TS vers MPEG1

      donc, de "#std{access=file,mux=ts,url=$OUTFILE.mpg}"
      vers "#std{access=file,mux=mpeg1,url=$OUTFILE.mpg}"

    • [^]Re: Enregistrement

      Posté par humfred () le 09/01/2006 à 11:44. (lien). Évalué à 1.

      salut

      j'avais essayé une version précédente et c'est vrai que l'enregistrement en basse qualité était plutot mauvaise.
      Maintenant avec OGM l'image est meilleur mais j'ai pas le son!

      Je n'arrive pas non plus à faire fonctionner le guide avec un fichier xmltv (j'ai rajouté le chemin du fichier dans .fricorder): j'ai l'erreur ,en lançant progtv.py,
      "Vous n'avez pas specifier de cle 'xmltv' dans la section 'common' de votre ~/.fricorder"

      Humfred

      • [^]Re: Enregistrement

        Posté par manatlan (Jabber id, page perso, ) le 09/01/2006 à 11:56. (lien). Évalué à 2.

        bah, je crois que c'est clair ...
        (soit c pas bien configuré, soit le fichier existe pas)

        il faut qqchose du style, dans le fichier ~/.fricorder :
        -------------------------------------------------------------------
        [common]
        ...
        xmltv=/path/vers/un/fichier/qui/existe

        • [^]Re: Enregistrement

          Posté par humfred () le 09/01/2006 à 13:29. (lien). Évalué à 1.

          Mon fichier ~/.fricoder:

          --------------
          [config]
          minutes = "30"
          destination = /home/humfred/Video
          quality = 1


          [common]
          xmltv = /home/humfred/guide
          ------------------

          Et le fichier "guide" existe bien!
          Je comprends pas pourquoi ça marche pas.

          Humfred

          • [^]Re: Enregistrement

            Posté par Carbon Kid () le 09/01/2006 à 15:41. (lien). Évalué à 1.

            En fait, c'est dans [config] qu'il faut ajouter la ligne, pas dans [common] comme indiqué.

            • [^]Re: Enregistrement

              Posté par humfred () le 09/01/2006 à 17:31. (lien). Évalué à 1.

              Exact, merci ça marche ... presque!

              Maintenant j'ai une erreur avec de codage UTF8

              ./fricorder.py
              Traceback (most recent call last):
              File "./fricorder.py", line 514, in ?
              main()
              File "./fricorder.py", line 505, in main
              window1 = Window1()
              File "./fricorder.py", line 167, in __init__
              SimpleGladeApp.__init__(self, path, root, domain, **kwargs)
              File "/home/fred/usr/local/fricorder/SimpleGladeApp.py", line 108, in __init__
              self.new()
              File "./fricorder.py", line 191, in new
              if not progtv.isPresent(chaineTV):
              File "/home/fred/usr/local/fricorder/libs/progtv.py", line 81, in isPresent
              if chaine in __progs.keys():
              UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-11: invalid data

              Dommage, bon programme en tout cas :)

              Humfred

Bugs

Posté par Narishma Jahar () le 06/01/2006 à 12:54. (lien). Évalué à 1.

J'ai deux gros bugs avec ton logiciel qui le rendent inutilisable :
- Une fois l'enregistrement lancé il ne s'arrête jamais, même passée la durée spécifiée. Quand je l'arrête manuellement avec le bouton cancel, le script s'arrête mais vlc continue de tourner à moins d'un kill sauvage.
- Les fichiers produits ne sont pas lisible (j'ai testé avec vlc, mplayer et xine).

  • [^]Re: Bugs

    Posté par Narishma Jahar () le 06/01/2006 à 12:58. (lien). Évalué à 1.

    Pour préciser le deuxième point, je viens de faire plus de tests et c'est seulement les fichiers produits avec l'option basse qualité que je n'arrive pas à lire.

  • [^]Re: Bugs

    Posté par Nicolas Aupetit (Jabber id, page perso, ) le 06/01/2006 à 19:58. (lien). Évalué à 2.

    > - Une fois l'enregistrement lancé il ne s'arrête jamais, même passée la durée spécifiée. Quand je l'arrête manuellement avec le bouton cancel, le script s'arrête mais vlc continue de tourner à moins d'un kill sauvage.

    Il faut créer un répertoire "tmp" dans le dossier ou se trouve ton fricorder. C'est dans ce dossier que vont être enregistrés les pid des programmes lancés pour l'enregistrement. Pour pouvoir les killer (en -9, un peu bourrin ^^) après.

    --
    ebzao
    • [^]Re: Bugs

      Posté par manatlan (Jabber id, page perso, ) le 07/01/2006 à 08:23. (lien). Évalué à 2.

      oui ...

      mais la 0.5b répare tout ça ....
      elle vient avec le rep

      mais bientot y aura un deb

Un autre bug

Posté par Carbon Kid () le 06/01/2006 à 21:22. (lien). Évalué à 1.

Je ne suis pas sur que ca vienne de ton programme ou de at, mais j'ai un bug.

Si je fais at -c N° du job, j'ai tout un tas de ligne avant la commande en derniere ligne. Je pense que c'est normal que at me mette tout ca, et c'est pourquoi il y a une recherche avec une expression rationnelle dans ton source ( si ce n'est pas le cas, alors at bug dans mon environnement ).

Là ou ca coince, c'est que si fricorder ( et donc la commande at ) est lancé depuis mon shell bash non configuré, l'expression rationnelle fonctionne, mais depuis mon shell zsh, ca coince.

Résultat : le résumé des enregistrement affiche n'importe quoi, mais bon l'essentiel est là : ca enregsitre.
Merci pour ce programme !

Voici la fin de la commande at -c.
Je pense que ca coince sur la ligne PS1, mais je n'y connais pas suffisament en python et expressions rationnelles pour corriger :

EDITOR=vim; export EDITOR
LESSCHARSET=latin1; export LESSCHARSET
PS1=%{\[33\;36\;1m%}%T%{\%}\ %{\[33\;31\;1m%}%n%{\\[33\;33\;1m%}@%{\[33\;37\;1m%}%m\ %{\[33\;32\;1m%}%\~%{\\[33\;33\;1m%}%#%{\%}\ ; export PS1
HISTORY=100; export HISTORY
SAVEHIST=100; export SAVEHIST
HISTFILE=/home/laurent/.history; export HISTFILE
cd /home/laurent/Desktop/fricorder || {
echo 'Execution directory inaccessible' >&2
exit 1
}
./frecord.sh rtsp://mafreebox.freebox.fr/freeboxtv/201 60 direct "/home/laurent/Desktop/[France_2][2006.01.07_22:17][1]"

Freevo

Posté par Sébastien Munch (page perso, ) le 07/01/2006 à 09:49. (lien). Évalué à 1.

Le truc vraiment génial, ce serait de pouvoir intégrer ça à Freevo (sur mon poste qui a Freevo, je n'ai pas de carte d'acquisition TV).

Excellent !

Posté par pacman () le 07/01/2006 à 18:05. (lien). Évalué à 2.

J'ai testé l'enregistement de 2 chaines en simultané, ça marche impec :)

problème avec glade :

Posté par maston28 (page perso, ) le 07/01/2006 à 19:47. (lien). Évalué à 2.

bonjour, merci pour ce petit logiciel...mais il y a un problème chez moi :

$ ./fricorder.py
Traceback (most recent call last):
File "./fricorder.py", line 30, in ?
from SimpleGladeApp import SimpleGladeApp
File "/home/maston28/Desktop/fricorder/SimpleGladeApp.py", line 28, in ?
import gtk.glade
ImportError: No module named glade

j'ai bien installé python-gtk-glade, mais ca ne amrche toujours pas...
quelqu'un a le même problème ? p-e un problème de path pour trouver glade (mdv2005LE ici).

si quelqu'un a une idée...

Erreur de segmentation vlc $STREAM

Posté par Sébastien Gardé () le 08/01/2006 à 10:38. (lien). Évalué à 1.

Pour ma part j'ai téléchargé l'archive hier après midi .... La phase de configuration de l'enregistrement se passe sans problème mais lors de l'enregistrement j'ai le message suivant:

VLC media player 0.8.4-svn20040920 Janus
Warning: option --filter is deprecated. You should use --vout-filter instead.
[00000269] dummy interface: Using the dummy interface module...
./frecord.sh: line 76: 11523 Erreur de segmentation  vlc $STREAM --filter deinterlace:bob --sout "#std{access=file,mux=ts,url=$OUTFILE.mpg}" -I dummy
./frecord.sh: line 22: kill: (11523) - Aucun processus de ce type
./frecord.sh: line 71: 11531 Processus arrêté      sleep $LENGTH
./frecord.sh: line 60: 11528 Processus arrêté      zenity --display=:0.0 --progress --pulsate --title "FriCorder: Enregistrement de" --text `basename $OUTFILE`
Alors si quelqu'un à une idée, ce serait cool ! En tout cas chapeau à Manatlan

  • [^]Re: Erreur de segmentation vlc $STREAM

    Posté par manatlan (Jabber id, page perso, ) le 09/01/2006 à 10:15. (lien). Évalué à 2.

    mauvais vlc ...
    faut changer de vlc en prendre un compatible "multiposte"
    (si t sur ubu : cf forum ubu)

  • [^]Re: Erreur de segmentation vlc $STREAM

    Posté par pacman () le 09/01/2006 à 17:44. (lien). Évalué à 1.

    Pareil chez moi sous Ubuntu.

    Solution : dans frecord.sh j'ai changé le mux=ts par mux=ps

Revenir en haut de page