Browse the code
| Revision log Information on the revision | |
|---|---|
| Revision: | 273 (differences) |
| Author: | ekd |
| Log message: |
utf-8: Correction définitive Le problème que l'on traine depuis un moment est dû au fait que lorsqu'on se trouve dans une console, l'encodage se stdout est en utf-8 alors que lorsqu'on se trouve sous x11 on est en ascii pour stdout. Pour harmoniser ce comportement, il suffit d'utiliser la variable d'environnement : PYTHONIOENCODING=utf_8 qui force l'encodage quelque soit l'environnment. Je l'ai ajouté au script de démarrage. détails ici : http://wiki.python.org/moin/PrintFails |
| Change revision: | |
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python # -*- coding: utf-8 -*- import subprocess class FFmpegFormat(object): """ Classe pour déterminer les formats chargés dans la config de FFmpeg. Cette classe est particulièrement faite pour émettre un boîte de dialogue d'erreur (dans le transcodage vidéo) si l'utilisateur essaie de faire le traitement vers le WebM (car les anciennes versions de Ffmpeg ne le prennent pas en charge """ def __init__(self, format_entree): # Initialisation self.format_entree = format_entree # Processus avec subprocess process = subprocess.Popen(['ffmpeg','-formats'], stdout=subprocess.PIPE) # Liste avec itération pour passer en revue la sortie du process # A voir ici pour l'itération: # http://stackoverflow.com/questions/2804543/read-subprocess-stdout-line-by-line liste1 = [ligne1 for ligne1 in iter(process.stdout.readline,'')] # Vérification si le format est bien présent dans la config de FFmpeg liste2 = [ligne3 for ligne2 in liste1 for ligne3 in ligne2.split(' ') if ligne3 == format_entree] # Attribution des drapeaux selon les cas (0: Faux, 1: Vrai). # Pour le webm (qui n'est pas pris en charge par la version # de FFmpeg sous (K)ubuntu LTS 10.04) ce sera Faux donc 0. if liste2 == []: self.vrai_faux = 0 elif liste2[0] == format_entree: self.vrai_faux = 1 def __str__(self): """ Attribution/retour de la valeur """ # Méthode trouvée ici: # http://stackoverflow.com/questions/2491819/python-init-how-to-return-a-value return str(self.vrai_faux) class FFmpegFilters(object): """ Classe pour déterminer si cette version de FFmpeg comporte des filtres (délivrés par la syntaxe ffmpeg -filters) et qui correspond à des versions très récentes (en ce 13/08/11)de FFmpeg. """ def __init__(self): process = subprocess.Popen(['ffmpeg','-filters'], stdout=subprocess.PIPE) liste1 = [ligne1 for ligne1 in iter(process.stdout.readline,'')] liste2 = [ligne3 for ligne2 in liste1 for ligne3 in ligne2.split(' ') if ligne3 == 'pad'] if liste2 == []: self.nouveau_ffmpeg = 0 elif liste2[0] == 'pad': self.nouveau_ffmpeg = 1

EKD