Forum général.cherche-logiciel librairie python pour découper du flac

Posté par  .
Étiquettes : aucune
2
28
fév.
2011

Bonjour,

Après quelques recherche sur internet, je ne trouve pas de librairie python qui me permette de découper un fichier flac pour en extraire des... extraits.

Mon besoin réel :

  • En entrée un morceau de musique entier (du début à la fin) en flac.
  • Au milieu avoir une fonction python (utilisable dans django)
  • En sortie, pouvoir proposer les extraits d'une chanson en flac et en mp3.

Mon envie : tout faire en python ou du moins en utilisant des libs python tierces qui gère les éventuels bindings.

Mes positions de repli (que je souhaite éviter) :

  • utiliser un utilitaire en ligne de commande appelé depuis le python.
  • avoir une source en wav.

Actuellement je fais ça à la mano dans audacity. Mais je souhaiterai donner la main à l'utilisateur qui ne saura jamais utiliser audacity. Je voudrais lui proposer un petit jquery-ui slider sur chacun de ses morceaux afin qu'il puisse extraire lui-même en ligne depuis une copie (sur le serveur) de son CD audio.

Si vous aviez des idées ce serait le pied.

Je me dis que j'ai du rater un truc énorme car je n'ai vraiment rien trouvé qui corresponde. Il y a plein de lib qui gère les tags mais rien (en python) pour le contenu.

  • # GStreamer

    Posté par  . Évalué à 2.

    Avec gstreamer tu dois pouvoir faire ça pas trop difficilement en python.

    • tu as filesrc / filesink qui permettent de lire et écriredes fichiers
    • tu as 150 décodeurs et encodeurs différents (vorbisenc, oggmux et all)
    • tu as le plugin gnlcomposition (de gnonlin) qui permet entre autres de faire des découpes

    Y'a pas mal de documentation sur comment utiliser pygst (les bindings python), et y'a du code pour s'inspirer dans jokosher ou pitivi. Y'a aussi man gst-launch qui est bien fait sur comment créer sa pipeline.

    Le point négatif évidemment c'est que tu dépends d'une lib en C, mais je doute que tu trouves un équivalent en pur python qui soit un tant soit peu efficace.

    Tu peux par ailleurs aussi utiliser gst-launch pour tester ou faire cela en ligne de commande. Mais si tu veux de la ligne de commande brute, tu peux aussi regarder du côté de sox.

    • [^] # Re: GStreamer

      Posté par  . Évalué à 1.

      And the obligatory example, for inspiration:
      http://www.0d.be/2007/07/01/introducing-mrcut/

      • [^] # Re: GStreamer

        Posté par  . Évalué à 1.

        Je répond tardivement. ça va me permettre de tester les nouveaux délais du nouveau dlfp ;)

        J'ai utilisé :

        • flac pour décoder mes flac en wav.
        • sox pour découper le wav en petit bout.
        • flac (encore) pour réencoder le petit bout.
        • lame pour réencoder le petit bout en mp3.

        Et pour suivre ton bon exemple d'exemplarité...

        Voici une version simplifiée de mon script :

        #!/bin/bash
        # $0 entrée_entier base_sorties debut fin
        flac -d $1 $2.wav
        sox $2.wav $2.cut.wav trim $3 $4
        rm -f $2.mp3 $2.flac
        flac $2.cut.wav $2.flac
        lame $2.cut.wav $2.mp3
        
        • [^] # Re: GStreamer

          Posté par  . Évalué à 1.

          C'est du python ça ? ;-)

          • [^] # Re: GStreamer

            Posté par  . Évalué à 2.

            Et bien non comme tu le vois j'ai utilisé une solution de repli '(

            Je préfère faire du bash que d'installer un serveur X.
            Et comme j'ai pas besoin de "temps réel"...

    • [^] # Re: GStreamer

      Posté par  . Évalué à 1.

      gstreamer ne convient pas car je veux lancer tout ça depuis un serveur (c'était implicité par le django).

      En l'occurence une dédibox.

      • [^] # Re: GStreamer

        Posté par  . Évalué à 2.

        Euh, gstreamer ne nécessite pas de X11, sauf pour certains modules optionnels genre affichage sur l'écran.

        • [^] # Re: GStreamer

          Posté par  . Évalué à 2.

          Effectivement tu as bien raison :P

          Je sais pas ce que j'avais fumé ce jour là. Et il devait être tard.

          Donc en utilisant gst-launch on peut faire de la ligne de commande gstreamer.

          Packet debian : gstreamer-tools.

          Du coup même si gst-python ne semble pas présent de base sur la debian dedibox je vais plutôt regarder ça.

          Merci beaucoup, ça m'empêchera peut-être de me fourvoyer en bash.

Suivre le flux des commentaires

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