IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Diviser un fichier vidéo


Sujet :

Python

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut Diviser un fichier vidéo
    Bonjour,
    Je rechercherai un module ou une technique pour diviser un fichier vidéo (au moins l'un des formats les plus répandus) en plusieurs fichiers qui font en gros, additionnés un petit peu plus que le fichier d'origine. Le but est bien entendu de pouvoir lire les 2 fichiers séparément.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonjour,

    Peut-être une solution ici.

    Bonne continuation...

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Merci, donc si j'ai bien compris je dois utiliser le module cv qui me permettra de gérer les fichiers vidéos, il me faut comprendre les différentes fonctions et tout...

    Voilà le code trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import cv
     
    capture = cv.CaptureFromFile(filename)
    while Condition1:
        # Need a frame to get the output video dimensions
        frame = cv.RetrieveFrame(capture) # Will return None if there are no frames
        # New video file
        video_out = cv.CreateVideoWriter(output_filenameX, CV_FOURCC('M','J','P','G'), capture.fps, frame.size(), 1)
        # Write the frames
        cv.WriteFrame(video_out, frame)
        while Condition2:
            frame = cv.RetrieveFrame(capture) # Will return None if there are no frames
            cv.WriteFrame(video_out, frame)
    Là j'ai un peu de mal mais bon, je n'ai pas encore installé le module, je vous demande votre avis, vos conseils et tout.
    Après, moi, dans mon idée c'était un truc du genre modification de la chaîne du début pour certains formats de manière à pouvoir lire, mais si j'y parviens avec ce module...

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Je ne connais pas opencv, mais si tu veux couper en deux un fichier vidéo, tu pourrais connaitre par exemple le nombre de frames totales, et diviser par deux.

    Dans la documentation, j'ai vu que CV_CAP_PROP_FRAME_COUNT pouvait le faire.Maintenant, je peux guère t'en dire plus, il faut lire des tutoriels, des codes, etc...

    Bonne continuation.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    En fait, j'étais d'abord parti sur la division bête et simple de la chaine bytes obtenue, du coup le premier fragment était lisible mais pas le 2e. Alors du coup j'ai voulu trouver la chaine du début, qu'on retrouve dans la plupart des fichiers mais ça a été l'échec (par contre j'ai réussi pour l'audio).
    Après si j'arrive à obtenir le nombre de frames, il va me falloir réussir à déterminer combien de bytes fait une frame et comment recréer un fichier à partir de ces frames.

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Après si j'arrive à obtenir le nombre de frames, il va me falloir réussir à déterminer combien de bytes fait une frame et comment recréer un fichier à partir de ces frames.
    Tout cela est bien dans la documentation... me semble-t-il ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Je sais me débrouiller à peu près en anglais mais ça reste imbuvable.

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Découper une vidéo en plusieurs fichiers se fait très bien avec ffmpeg.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Merci mais c'est un logiciel, pas un module, mon but est d'améliorer un programme déjà écrit avec ça.

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par stalacta Voir le message
    Merci mais c'est un logiciel, pas un module, mon but est d'améliorer un programme déjà écrit avec ça.
    Avec un fichier en entrée et des fichiers en sortie, rien n'interdit d'emballer les appels a ffmpeg via subprocess.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Ca veut dire qu'il est possible de transformer un logiciel en module !?

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par stalacta Voir le message
    Ca veut dire qu'il est possible de transformer un logiciel en module !?
    Ben ouais.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  13. #13
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Comment on fait ?
    Est-ce compilable avec cx_Freeze ?

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par stalacta Voir le message
    Comment on fait ?
    Une fois installe sur votre os, ffmpeg est "activable" depuis la console comme toute autre commande système, via:
    ou p1, p2, p3, sont les paramètres a passer.

    Une fois lance, le programme pourra lire/ecrire sur stdin, stdout, stderr qui par défaut sont la "console".

    Ces propriétés permettent d'imaginer la création d'une fonction style:
    def call_ffmpeg(p1, p2, p3,...) dont le boulot sera d’exécuter "ffmpeg" programme. La libraire Python qui permet de faire çà s'appelle subprocess. Vous avez des exemples d'utilisation ici

    Ceci dit, vous voulez surtout créer une "fonction" qui découpe un fichier video en plusieurs morceaux i.e. un truc du genre: split_video(path, options) qui devra fabriquer les p1, p2, p3,... a passer a call_ffmepg pour faire faire le boulot par ffmpeg.

    Est-ce compilable avec cx_Freeze ?
    cx_freeze n'est pas un "compilateur", c'est un outil pour "packager" votre application Python sous la forme d'un exécutable qui contiendra vos scripts, l'environnement Python optionnellement les "programmes"/"librairies externes" utilisées.

    Le "packaging" d'une application Python est documente ici.
    Il impose une structure sur modules, données,... et des meta data pour construire un packaging approprie en fonction de la plateforme cible et de l'outil d'installation (RPM, MSI,...)
    cx_freeze s'appuie sur ce "packaging" pour construire son exe.

    - W
    (*) J'insiste la dessus car, utiliser cx_freeze en ignorant les règles de packaging d'une application Python vous fera tomber dans des problèmes incompréhensibles et insolubles car "mal construit".
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  15. #15
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Je sais mais j'ai dis "compiler" pour simplifier. Après, je ne connais pas les mécanismes exactes qui sont appelés.
    Donc, de ce que j'ai compris, je peux appeler le programme depuis la console de commande cmd grâce à os.system et appeler ainsi le programme mais je ne pourrais probablement pas le "compiler" (ou packager) avec cx_Freeze.
    Je vois de manière théorique ce qu'il faudrait faire mais je suis encore débutant, donc si je lance le programme à partir de la console de commande via subprocess ou os, le programme risque de s'exécuter dans sa totalité, or je ne veux pas de fenêtre qui s'ouvre etc...
    Je suis désolé, j'en demande peut-être beaucoup mais je suis débutant en programmation en général. Mon plus gros programme fait environ 1400 lignes et est un programme de Tetris (que j'ai débuggué et amélioré d'ailleurs). Je m'intéresse particulièrement au domaine de la gestion des fichiers. Mais j'ai commencé la programmation tout seul avec des tutos en février. (Pour vous donner une idée de mes compétences, j'entre en troisième cette année, je suis disons un "intello" et je m'intéresse à la programmation et souhaite en faire une voie professionnelle bien que je débute et que je sois conscient que ce ne sera pas facile).

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par stalacta Voir le message
    Je vois de manière théorique ce qu'il faudrait faire mais je suis encore débutant, donc si je lance le programme à partir de la console de commande via subprocess ou os, le programme risque de s'exécuter dans sa totalité, or je ne veux pas de fenêtre qui s'ouvre etc...
    Les mots sont importants. Dire: "je lance le programme à partir de la console de commande via subprocess ou os", c'est du charabia.
    Par défaut, depuis la console vous pouvez lancer votre programme ou des commandes externes. Le "ou" est exclusif.
    Si vous lancez ffmpeg depuis votre programme (via subprocess), son comportement sera identique a celui obtenu en le lançant directement.

    Est ce que ffmpeg ouvre une fenêtre? fait autre chose que découper une video?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Ok, merci, je vais essayer, il me faudrait juste le lien pour télécharger pour windows xp, j'ai recherché des heures sur le net sans avoir autre chose que des trucs non exécutables ou des pubs. Merci d'avance.

  18. #18
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Citation Envoyé par stalacta Voir le message
    Ok, merci, je vais essayer, il me faudrait juste le lien pour télécharger pour windows xp, j'ai recherché des heures sur le net sans avoir autre chose que des trucs non exécutables ou des pubs. Merci d'avance.
    Naviguez sur le /web/ est une compétence utile pour le programmeur (et pas que pour eux...). Sur le site ffmeg, vous avez un bouton "Download". Windows étant un OS particulièrement "chiotte"(*) pour la communauté open-source, les développeurs mettent généralement a disposition des binaires a installer sous "windows".
    Vous y trouverez un lien qui renvoie ici.
    Après, c'est de la cuisine "d’ingénieur système" - enfin pour gérer un poste de travail et un "data-center" ce ne sera pas la même bête -. Le programmeur doit se dépatouiller un minimum la dedans aussi.
    Bon courage,
    - W

    (*) Il n'est pas si "chiotte" puisque c'est parce que windows est assez bien construit qu'il peut offrir une compatibilité ascendante pour les binaires.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Membre éclairé
    Homme Profil pro
    Développeur en formation
    Inscrit en
    Juillet 2013
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en formation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 300
    Par défaut
    Merci mais j'étais déjà allé sur ce site, le problème est que je tombe sur des fichiers 7z, qui ne sont donc pas exécutables sur windows.

Discussions similaires

  1. diviser un fichier compressé
    Par imeys dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 02/02/2006, 08h42
  2. Travailler des fichiers vidéo (avi, mpeg wmv etc...)
    Par NetMichel dans le forum Composants VCL
    Réponses: 4
    Dernier message: 15/07/2005, 13h33
  3. [XSLT] Diviser un fichiers xml en plusieurs pages html
    Par thibaut06 dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/04/2005, 16h56
  4. Lancer un fichier vidéo
    Par Arkadius dans le forum C++Builder
    Réponses: 2
    Dernier message: 30/09/2004, 20h20
  5. Réponses: 3
    Dernier message: 24/02/2004, 15h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo