Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 06/06/2008, à 21:12

casimir

Faire petit programme pyton [résolut]

Je débute ou plutot j'ai meme pas compris la doc python que j'ai lu.
Eb fait je n'avais pas d'application a réaliser, voissi ci-dessous un petit script en bash, (la débute et je n'ai aucune connaissances, soyez donc indulgent.
Le script ci dessous est simple aprés encodage cinelerra je multiplex les deux fichiers.
Comment je doit commancer pour faire une application en python, j'ai plein d'idée qui me viennent des petit script dans le genre, si je veut faire ca ca part d'une bonne intention, puisque en bash avec zenity ce n'est accessible que sous gnome si j'ai bien compris. donc si je veut contribuer pour simplifier la vie des autres (parceque pour moi zenity ca me va)
il faut donc que j' apprenne a coder, alors j'ai en tendu parler de python, J'aimerai essayer ce script.
Donc une boite de dialogue avec des boutons
un qui va permettre de parcourir pour rechercher le fichier vidéo
un autre pour l'audio
et un pour valider le multiplexage
et une fenetre de progression.

Alors dite moi ! par quoi je commence.
Petite précision ne je connait que le php (assez bien "en fait je dirait plutot que je sais lire la doc" et je suis arrivé a faire des boutiques en ligne, facturier, etc ....), mais je ne suis pas trés logique.

#!/bin/sh
	mp2=$(zenity --file-selection \
		--title="Fichier vidéo " \
		--text="Choisir  fichier vidéo m2v")

	audio=$(zenity --file-selection \
		--title="Fichier audio" \
		--text="Choisir  fichier audio ac3 ou mp3")
nom=$(zenity --entry --width=300 \
	--text="Entrer le nom et le chemin sans extension" \
	--title="Nom et chemin de la vidéo")
 (mplex -f8 $mp2 $audio -o $nom.mpg) | zenity --progress \
--title="encodage $mp2 et $audio " \
--percentage=0 
exit 0

Dernière modification par casimir (Le 08/06/2008, à 09:45)

Hors ligne

#2 Le 07/06/2008, à 08:39

Clop'

Re : Faire petit programme pyton [résolut]

Bonjour,

Si tu veux réaliser des petits scripts utilisables partout où Python existe, il te faudra utiliser Tkinter, la librairie graphique fournie en standard avec Python.

Une chtite page simple pour commencer :

http://wikipython.flibuste.net/moin.py/TKinter

ou encore en anglais :

http://effbot.org/tkinterbook/

Un premier essai, vite fait, y a moyen de faire vraiment mieux, je n'ai pas de fichiers utilisables donc j'ai pas pu tester réellement la commande mplex smile :

#!/usr/bin/python
# -*- coding: utf-8 -*-

import Tkinter 
import tkFileDialog

class Main(Tkinter.Tk):
    def __init__(self,):
        Tkinter.Tk.__init__(self)
        self._videoPath="."
        self._audioPath="."
        self._finalPath="."
        
        self.labelVideo=Tkinter.Label(self)
        self.labelAudio=Tkinter.Label(self)
        self.labelFinal=Tkinter.Label(self)
        
        self.buttonVideo=Tkinter.Button(self,text="Choisir la vidéo")
        self.buttonAudio=Tkinter.Button(self,text="Choisir l'audio")
        self.buttonFinal=Tkinter.Button(self,text="Choisir le fichier final")
        self.buttonMux=Tkinter.Button(self,text="Lancer le Mux")
        
        self.buttonVideo.bind('<Button-1>',self.videoPath)
        self.buttonAudio.bind('<Button-1>',self.audioPath)
        self.buttonFinal.bind('<Button-1>',self.finalPath)
        self.buttonMux.bind('<Button-1>',self.mux)
        
        self.buttonVideo.pack(fill='x')
        self.labelVideo.pack(fill='x')
        self.buttonAudio.pack(fill='x')
        self.labelAudio.pack(fill='x')
        self.buttonFinal.pack(fill='x')
        self.labelFinal.pack(fill='x')
        self.buttonMux.pack(fill='x')
        
    def videoPath(self,event):
        self._videoPath=tkFileDialog.askopenfilename(parent=self,initialdir="/home/",title='Choisissez la vidéo')
        self.labelVideo.__setitem__('text',self._videoPath)
        print self._videoPath
        
    def audioPath(self,event):
        self._audioPath=tkFileDialog.askopenfilename(parent=self,initialdir="/home/",title="Choisissez l'audio")
        self.labelAudio.__setitem__('text',self._audioPath)
        print self._audioPath
        
    def finalPath(self,event):
        self._finalPath=tkFileDialog.asksaveasfilename(parent=self,initialdir="/home/",title="Choisissez le fichier final")
        self.labelFinal.__setitem__('text',self._finalPath)
        print self._finalPath
    
    def mux(self,event):
        import subprocess
        args=['mplex','-f8',self._videoPath,self._audioPath,'-o',self._finalPath+'.mpg']
        try:
            subprocess.Popen(args)
        except Exception,e:
            print "Trying to launch mplex with args : %s" % args
            print e
        
    
        
if __name__=="__main__":
    
    root = Main() 
    root.title('Encode using mplex')
    root.mainloop()

PS: j'ai laissé les print, ca permet de mieux voir le déroulement en console smile

Dernière modification par Clop' (Le 07/06/2008, à 08:41)


----------------------
Linux on the Root , un site qu'il fait bon feuilleter!
----------------------
PyQtRadio, un lecteur de webradio simple et léger! Installation multi-distrib'

Hors ligne

#3 Le 07/06/2008, à 18:14

casimir

Re : Faire petit programme pyton [résolut]

Ca peut etre un bon exemple pour comprendre la base. j'avais essayer un script pyton, mais celui-ci m'indiquait une erreur. je navait pas installer un python.tk ou quelques choses comme ca.
Par contre le principe fonctionne trés bien avec le script que tu as fait, mplex mindique une erreur

/home/justclo/test.m2v
/home/justclo/test.ac3
/home/justclo/test
 INFO: [mplex] mplex version 1.8.0 (2.2.4 $Date: 2005/08/28 17:50:54 $)
**ERROR: [mplex] Unable to open file /home/justclo/test.mpg for reading

C'est super ce que tu as fait, je ne pensais pas que cela puise etre aussi simple. (enfin pas si simple pour moi encore.
Donc python c'est ca ! ce n'est pas de trés jolie fenetre en tout cas, si je veux quelques chose de mieux il faudrait que je le fasse en java n'est-ce pas ?

Hors ligne

#4 Le 07/06/2008, à 19:03

casimir

Re : Faire petit programme pyton [résolut]

Je modifie un peu le code que tu ma donné ca m'aide a comprendre.
Je n'affiche dans mon $HOME les fichier qui portent l'extension.m2v

self._videoPath=tkFileDialog.askopenfilename(parent=self,initialdir="$HOME",title='Choisissez la vidéo',filetypes=[('Fichiers video', '*.m2v')])

Mais quand je veut 2 extension dispo je n'y arrive vraiment pas.

self._audioPath=tkFileDialog.askopenfilename(parent=self,initialdir="$HOME",title="Choisissez l'audio",filetypes=[('Fichiers audio', '*.mp3','*.ac3')])

C'est bon désolé, javais pas tout tester.
filetypes=[('Fichiers audio', "*.mp3 , *.ac3")])

Dernière modification par casimir (Le 07/06/2008, à 19:09)

Hors ligne

#5 Le 07/06/2008, à 19:37

Clop'

Re : Faire petit programme pyton [résolut]

Bonsoir smile


Tout d'abord, pour l'erreur relevé dans ton premier post, le script n'en est pas responsable, il me semble qu'il s'agit d'une erreur de mplex.

Casimir a écrit :

Donc python c'est ca ! ce n'est pas de trés jolie fenetre en tout cas, si je veux quelques chose de mieux il faudrait que je le fasse en java n'est-ce pas ?

Alors pas du tout! ( tu peux évidemment faire de jolies choses en Java, enin je crois, jamais touché à Java) L'apparence des fenêtres est dicté par la librairie graphique utilisée. Ici, il s'agit de Tkinter, que je t'ai proposé car elle est intégré directement à Python, et donc toujours disponible, et plutôt simple à appréhender.

Il existe beaucoup de librairies graphiques, souvent porté en Python, 3 exemples: Qt (apparence de KDE et qui apportent plus que juste le graphique), Gtk ( apparence Gnome & Xfce) et WxWindow ( utilisant la librairie du système (si je dis pas de bétises smile ), qui existent pour Python sous les noms respectifs de PyQt, PyGtk et WxPython. Par contre, ces librairies étant d'une complexité plus importante, elles ne sont pas fournies de base avec le langage, il faut les installer en plus pour pouvoir lancer un soft les utilisant.

Sans vouloir trop me faire de pubs, tu peux voir là : http://www.lck-world.info/pyqtradio/index.php?page=6 , une appli en python utilisant PyQt ( ça a quand même une autre gueule, hein?)

Sur ce, bonne soirée smile


----------------------
Linux on the Root , un site qu'il fait bon feuilleter!
----------------------
PyQtRadio, un lecteur de webradio simple et léger! Installation multi-distrib'

Hors ligne

#6 Le 07/06/2008, à 20:04

yurek

Re : Faire petit programme pyton [résolut]

Sans vouloir trop me faire de pubs, tu peux voir là : http://www.lck-world.info/pyqtradio/index.php?page=6 , une appli en python utilisant PyQt ( ça a quand même une autre gueule, hein?)

héééé EXACTEMENT CE QUE JE RECHERCHAIS DEPUSI DES ANNEES, MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

Dernière modification par yurek (Le 07/06/2008, à 20:15)


http://doc.ubuntu-fr.org/installation/debutants
http://doc.ubuntu-fr.org/diagnostic
http://doc.ubuntu-fr.org/diagnostic_outils
http://doc.ubuntu-fr.org/reflexe_ubunteros

Hors ligne

#7 Le 07/06/2008, à 20:29

Clop'

Re : Faire petit programme pyton [résolut]

Vraiment? smile J'en suis ravi  big_smile

N'hésites aps à venir sur le forum dédié,  me faire part de remarques et commentaires smile

Ou encore à proposer quelques flux...


----------------------
Linux on the Root , un site qu'il fait bon feuilleter!
----------------------
PyQtRadio, un lecteur de webradio simple et léger! Installation multi-distrib'

Hors ligne

#8 Le 07/06/2008, à 21:01

beudbeud

Re : Faire petit programme pyton [résolut]

Clop' a écrit :

Vraiment? smile J'en suis ravi  big_smile

N'hésites aps à venir sur le forum dédié,  me faire part de remarques et commentaires smile

Ou encore à proposer quelques flux...

une version pyGTK est elle prévu?


Télécharger les émissions de Arte +7 avec Arte +7 recorder
Theme pour Ubuntu Bisigi Project

Vostro 1510 Ubuntu 10.04

Hors ligne

#9 Le 07/06/2008, à 21:17

Alain.g

Re : Faire petit programme pyton [résolut]

casimir a écrit :

zenity ce n'est accessible que sous gnome si j'ai bien compris.

On peut utiliser zenity sous KDE tout comme on peut utiliser kdialog sous Gnome... il suffit de les installer (l'inconvénient étant les dépendances à installer)

Dernière modification par Alain.g (Le 07/06/2008, à 21:17)


Xubuntu Karmic !

Hors ligne

#10 Le 07/06/2008, à 21:57

Clop'

Re : Faire petit programme pyton [résolut]

beudbeud a écrit :
Clop' a écrit :

Vraiment? smile J'en suis ravi  big_smile

N'hésites aps à venir sur le forum dédié,  me faire part de remarques et commentaires smile

Ou encore à proposer quelques flux...

une version pyGTK est elle prévu?

J'espère! smile

En réalité, le développement de la version actuelle a été stoppé. Je suis en train de réécrire entiérement le code pour enlever toutes dépendances à PyQt ( utilisation des QTimers et des signals et slots...) et aussi le rendre plus modulaire, propre et tout plein de bonnes choses auquel je n'avais pas forcément pensé avant. Normalement, cela devrait me permettre de développer ensuite rapidement de multiples interface graphiques (PyQt évidemment, PyGtk bien sûr, mais aussi une interface console et pourquoi par des versions simplifiés pour applets ... big_smile)

En clair, pour l'instant, je trime smile


Merci de ton intérêt smile


----------------------
Linux on the Root , un site qu'il fait bon feuilleter!
----------------------
PyQtRadio, un lecteur de webradio simple et léger! Installation multi-distrib'

Hors ligne

#11 Le 08/06/2008, à 09:33

casimir

Re : Faire petit programme pyton [résolut]

Il y a quelques année quand j'ai commencé le php on disait dans la doc passer les variables GET dans l'url, alors comme je comprennait pas, j'utilisai les exemple que je trouvait et par miracle ca marchais, un jour je demande a un pote de venir m'expliquer, un peu le php, et il m'explique la meme chose et au meme moment il met son doigt sur l'écran et sur la barre d'adresse.
Et hop, je lui est proposé de faire autre chose, on est parti boire un coup. il n'avait plus rien a m'apprendre et lui ne savait plus quoi m'appprendre non plus. (j'avait caché la barre d'adresse dans mes préférences).
Il faut peu de choses pour ne pas comprendre !
Vos remarques m'apporte beaucoup

L'erreur de mplex ne permet pas le script de se fermer, alors que la commande dans la console console c'elle-ci s'arrete.

justclo@justclo-desktop:~$ mplex -f 8 -S 0 -M -V -o /home/justclo/test.mpeg /home/justclo/test.m2v /home/justclo/test.ac3
   INFO: [mplex] mplex version 1.8.0 (2.2.4 $Date: 2005/08/28 17:50:54 $)
   INFO: [mplex] File /home/justclo/test.m2v looks like an MPEG Video stream.
...
...
...
   INFO: [mplex] BUFFERING min 35 Buf max 611
   INFO: [mplex] MUX STATUS: no under-runs detected.
justclo@justclo-desktop:~$

J'ai carrement beaucoup de chose a apprendre mais effectivement vaut mieux que je commence avec Tkinter .

Malgré l'erreur mplex , celui-ci multiplex bien les deux fichiers.

J'ai placer le fichier dans /usr/local/bin qui ne se lance pas en console celui-ci m'indique un probléme d'indentation et le script ne se lance pas.

justclo@justclo-desktop:~$ python1
  File "/usr/local/bin/python1", line 60
    print "Trying to launch mplex with args : %s" % args
        ^
IndentationError: expected an indented block
justclo@justclo-desktop:~$

Par contre le meme fichier dans mon HOME fonctionne a part l'erreur de mplex à ce moment la je le lance pas dans la console et c'est parfait. (pas de message "mplex")

L'indentation c'est pas facile a voir du premier coup d'oeil, j'ai bien remarqué que c'était trés important.

Hors ligne

#12 Le 08/06/2008, à 09:43

casimir

Re : Faire petit programme pyton [résolut]

OUPS !! l'indentation effectivement.
Désolé.

except Exception,e:
            print "Trying to launch mplex with args : %s" % args
             print e
except Exception,e:
            print "Trying to launch mplex with args : %s" % args
            print e

c'est deux exemple sont différent. faut le voir.
J'utilise Jedit pour je vais voir si je peut différencier les tabulations et les espaces par une couleur.


Je marque comme résolut, merci  CLOP' de ton aide précieuse.

Dernière modification par casimir (Le 08/06/2008, à 09:44)

Hors ligne

#13 Le 08/06/2008, à 09:52

Alain.g

Re : Faire petit programme pyton [résolut]

casimir a écrit :

J'utilise Jedit pour je vais voir si je peut différencier les tabulations et les espaces par une couleur.

installe le plugin WhiteSpace


Xubuntu Karmic !

Hors ligne

#14 Le 08/06/2008, à 10:41

Clop'

Re : Faire petit programme pyton [résolut]

casimir a écrit :


c'est deux exemple sont différent. faut le voir.
J'utilise Jedit pour je vais voir si je peut différencier les tabulations et les espaces par une couleur.


Je marque comme résolut, [b]merci  CLOP' de ton aide précieuse.

Bonjour,

T'inquietes pas, on se fait vite à l'indentation... et après on ne peux plus s'en apsser big_smile

Pour tes problèmes avec mplex (que je ne connais aps du tout) vérifies bien les arguments que tu lui passes, dans ton exemple ci-dessus, ce ne ne sont pas les même que dans ton premier post.


----------------------
Linux on the Root , un site qu'il fait bon feuilleter!
----------------------
PyQtRadio, un lecteur de webradio simple et léger! Installation multi-distrib'

Hors ligne

#15 Le 08/06/2008, à 11:04

casimir

Re : Faire petit programme pyton [résolut]

Oui c'est pas les memes mais c'est pareil avec l'autre, c'était un autre test que j'avais fait.
Je faire un autre post pour modifier le script que tu as fait,
la modification du script a pour but de me faire la main en python puisque je ne suis pas encore arrivé à inclure du texte fixe au dessus du premier bouton.
http://forum.ubuntu-fr.org/viewtopic.php?pid=1837419

Dernière modification par casimir (Le 08/06/2008, à 11:07)

Hors ligne