Forum général.cherche-logiciel Decoupe de flux Ogg en fichiers de x minutes

Posté par  .
Étiquettes : aucune
0
7
déc.
2006
Bonjour à tous,

Je suis à la recherche d'un logiciel ou éventuellement de tutos ou des scripts permettant de découper un flux en fichiers de 5min par exemple.

Pour info, je résume le contexte : je suis admin d'une petite radio locale et je suis en train de mettre en place un système de diffusion sur internet via vlc. L'idée est de pouvoir réécouter n'importe quel moment de la journé en podcast d'où l'idée de découper le flux ogg provenant de la radio en fichier de 5min par exemple, ainsi pour écouter une émission de demi-heure, je créé une playlist avec 6 fichiers de 5min.
  • # Non testés par manque de temps...

    Posté par  . Évalué à 3.

    En cherchant un peu avec mon ami gogole, j'ai trouvé, entre autres :
    mp3split qui semble supporter l'ogg-vorbis
    http://mp3splt.sourceforge.net/mp3splt_page/news.php

    Sinon, j'ai retrouvé des traces d'un projet nommé oggsplit, mais pas moyen d'en télécharger quoi que ce soit. Dans certains cas, ce sont des pages qui n'existent plus, dans d'autres, ce sont des liens vers des pages qui me sont interdites par DansGuardian.
    Bonne chance si tu trouves des liens qui fonctionnent chez toi....
    En espérant que ces pistes te seront quand même utiles.
    • [^] # Re: Non testés par manque de temps...

      Posté par  . Évalué à 2.

      Merci pour ton aide

      Le prob c'est que ces logiciels travaillent sur des fichiers physique et pas sur des flux...
      En gros le truc c'est de dire à l'appli, ecoute ce flux et toutes les 5min enregistre le dans un fichier different

      C'est sur qu'il y aurait la solution de dire, je fait un script qui me lance et me ferme vlc toutes les x secondes et à chaque instance je créé un nouveau fichier... mais bon je suis pas convaincu de cette technique lol.

      Mais je sens que si je trouve pas, je vais me lancer dans du code et me le faire.. mais bon, si on pouvait éviter... :)
  • # Avec ffmpeg

    Posté par  . Évalué à 2.

    FFmpeg permet de spécifier la durée que l'on souhaite encoder, avec l'options -ss.
    Donc je ferais en sorte qu'il encode cinq minutes du flux, et qu'au bout de ces cinq minutes, il reprenne à l'aide d'une boucle, en incrémentant le nom du fichier.

    Ça donnerait :

    i=0
    while true
    do
    i=$(($i+1))
    ffmpeg -i "flux" -ss 00:05:00 -abitrate "le bitrate voulu" "fichier-$i.ogg"
    done

    Bon, c'est qu'un début, mais je partirais de là.
    Par contre, je ne sais pas si FFmpeg est capable de lire un flux radio.

    PS : comment on tape du code dans un commentaire ?

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Avec ffmpeg

      Posté par  . Évalué à 1.

      C'est aussi ce que je pensais faire, mais le hic, c'est que le temps d'arreter un processus et d'en créer un nouveau, le flux va se couper une 1ou 2secondes, donc il faudrai les lancer en decalage de 1secondes, en gros, on lance le suivant avant la fin de l'autre.
      Merci pour la piste..je me renseignerai pour ffmpeg et le stream..

      Pour l'instant je me bouffe de la super doc de vlc pour reprendre les libs et m'en faire une petite appli.. je m'éclate :-/

      ça pourrait être interessant de se lancer dans un projet de logiciel de podcast libre pour les radio... mais bon faudrai que je finissent mes 4 ou 5 projets en cours dabord.. lool
      • [^] # Re: Avec ffmpeg

        Posté par  . Évalué à 2.

        Je m'suis trompé, c'est pas -ss pour définir la durée mais -t.
        -ss c'est pour définir la position de départ de l'encodage.

        Du coup, y'a moyen de faire autrement : tu enregistres le flux en continu dans un fichier et toutes les cinq minutes, tu extrais avec ces options en prenant comme position de début celle de la fin de l'extrait précédent.
        Avec ça tu ne perds rien.

        Un début :

        i=0
        position=0
        while true
        do
        sleep 300
        i=$((i+1))
        ffmpeg -i "fichier_flux.ogg" -acodec copy -t 300 -ss $position "fichier${i}.ogg"
        position=$((position+300))
        done

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Avec ffmpeg

          Posté par  . Évalué à 1.

          Le fichier de flux va grandir indéfiniment.....
          Il faut donc trouver une solution à un moement donné pour arrêter le massacre et repartir sur un fichier de flux neuf.
          • [^] # Re: Avec ffmpeg

            Posté par  . Évalué à 1.

            lool bonne idée, mais est-ce que je vais pouvoir au moins lire un fichier en cours de perpetuelle écriture?
            • [^] # Re: Avec ffmpeg

              Posté par  . Évalué à 2.

              Ça dépend. Si c'est un système Linux/Unix, il n'y aura pas de problème, tu peux lire le fichier alors qu'il est occupé (tu peux même le supprimer). Par contre, si c'est Windows, ça ne marchera pas.

              C'est vrai aussi que le fichier grandit indéfiniment, je n'y avais pas pensé. Ta radio tourne 24h sur 24h ? Si ce n'est pas le cas, il suffit de le purger à la fin des émissions (après avoir découpé le flux en morceaux de cinq minutes) et de reprendre plus tard.

              Mais si ça tourne en continu, faut trouver autre chose : par exemple, au bout d'un certain laps de temps, l'enregistrement continue sur un second fichier, ce qui libère le premier et permet de le purger. Pour ne rien perdre, tu enregistres le flux sur les deux fichiers pendant quelques secondes, puis tu arrêtes le premier.
              Au bout du même laps de temps, tu reviens sur le premier et purge le second, et ainsi de suite.
              Faudra aussi adapter le script pour qu'il découpe le bon fichier en cours.

              Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

              • [^] # Re: Avec ffmpeg

                Posté par  . Évalué à 1.

                Ok, merci,
                De mon coté, j'ai reussi a bien dompter le ffmpeg, sauf que problème, il ne connait pas le format ogg... et personnellement je l'aurait en travers de diffusé en wma ou en asf, je me suis depuis peu sortie du monde du propriétaire, c'est pas pour m'y replonger dedans...

                Bon pour gérér mon truc, j'ai plusieurs solution :
                Premièrement, je créé du fichier de 5 min que je supprime toutes les semaines en ne gardants que les émissions.

                Deuxièment je n'enregistre que les emissions.

                La deuxième est la plus simple, mais la seconde me permettrait durant une semaine d'écouter la radio en différé voire meême écouter un émission du début alors que ça ne fait que 15min qu'elle vient de commencer, mais pour l'ecoute de diffusion en différé de quelque minutes, si on peut faire de la lecture et de l'écriture en même temps, je pense que je vais pas m'embeter et que je prendrait la seconde solution..
                puis je vérais l'autre plus tard..

                Par contre je rappelle, pas de format ogg avec ffmpeg, que me conseillez-vous comme autre formats?
                • [^] # Re: Avec ffmpeg

                  Posté par  . Évalué à 2.

                  Pour ffmpeg, c'est étrange. C'est en entrée ou en sortie qu'il ne supporte pas le ogg ? C'est normalement supporté dans les deux cas... Et à part le ogg, il y a peut-être le format rm, mais je ne sais pas si ffmpeg le gère bien. Et puis c'est pas plus libre que l'asf...

                  Sinon, tu peux essayer mencoder à la place de ffmpeg, qui gère normalement le format ogg et qui est un peu différent à utiliser :

                  mencoder input -oac copy -ss position_début -endpos position_fin -o output

                  Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

Suivre le flux des commentaires

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