Bonjour, j'ai trouvé un code sur le web qui utilise ExifTool et le module subprocess, pour récolter les metadata d'une video.
Le code fait ensuite un léger traitement de chaînes de caractères pour rendre le tout bien plus lisible.
Cependant le script ne fonctionnement pas correctement et je ne sais pas trop comment régler le problème.
En gros le split() coupe en deux au niveau du ":" qui sépare la valeur , du descriptif. Mais s'il y a ensuite encore des ":" ils sont supprimer avec ce qui suit, et le problème et là.
Par exemple pour {'Duration': '0'} 21; on devrai avoir en réalité {'Duration': '0:03:19'} 21.
J'ai le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import subprocess input_file = "C:/Users/Y/Documents/[AMV]_The_Diary_of_Jane.mp4" exe = "C:/Users/Y/Documents/exiftool.exe" process = subprocess.Popen([exe, input_file], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True) metadata = list() for output in process.stdout: info = dict() line = output.strip().split(":") info[line[0].strip()] = line[1].strip() metadata.append(info) i = 1 for e in metadata: print(e,i) i+=1
Pourriez m'expliquer le problème pour que je le comprenne et puisse résoudre l'erreur (de moi-même si possible, mieux pour apprendre)?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 {'ExifTool Version Number': '11.87'} 1 {'ExifTool Version Number': '11.87'} 1 {'File Name': '[AMV]_The_Diary_of_Jane.mp4'} 2 {'Directory': 'C'} 3 {'File Size': '39 MB'} 4 {'File Modification Date/Time': '2018'} 5 {'File Access Date/Time': '2020'} 6 {'File Creation Date/Time': '2020'} 7 {'File Permissions': 'rw-rw-rw-'} 8 {'File Type': 'MP4'} 9 {'File Type Extension': 'mp4'} 10 {'MIME Type': 'video/mp4'} 11 {'Major Brand': 'MP4 Base Media v1 [IS0 14496-12'} 12 {'Minor Version': '0.2.0'} 13 {'Compatible Brands': 'isom, iso2, avc1, mp41'} 14 {'Media Data Size': '40786874'} 15 {'Media Data Offset': '48'} 16 {'Movie Header Version': '0'} 17 {'Create Date': '0000'} 18 {'Modify Date': '0000'} 19 {'Time Scale': '1000'} 20 {'Duration': '0'} 21 {'Preferred Rate': '1'} 22 {'Preferred Volume': '100.00%'} 23 {'Preview Time': '0 s'} 24 {'Preview Duration': '0 s'} 25 {'Poster Time': '0 s'} 26 {'Selection Time': '0 s'} 27 {'Selection Duration': '0 s'} 28 {'Current Time': '0 s'} 29 {'Next Track ID': '3'} 30 {'Track Header Version': '0'} 31 {'Track Create Date': '0000'} 32 {'Track Modify Date': '0000'} 33 {'Track ID': '1'} 34 {'Track Duration': '0'} 35 {'Track Layer': '0'} 36 {'Track Volume': '0.00%'} 37 {'Image Width': '1280'} 38 {'Image Height': '720'} 39 {'Graphics Mode': 'srcCopy'} 40 {'Op Color': '0 0 0'} 41 {'Compressor ID': 'avc1'} 42 {'Source Image Width': '1280'} 43 {'Source Image Height': '720'} 44 {'X Resolution': '72'} 45 {'Y Resolution': '72'} 46 {'Bit Depth': '24'} 47 {'Video Frame Rate': '25.005'} 48 {'Matrix Structure': '1 0 0 0 1 0 0 0 1'} 49 {'Media Header Version': '0'} 50 {'Media Create Date': '0000'} 51 {'Media Modify Date': '0000'} 52 {'Media Time Scale': '44100'} 53 {'Media Duration': '0'} 54 {'Media Language Code': 'und'} 55 {'Handler Description': 'SoundHandler'} 56 {'Balance': '0'} 57 {'Audio Format': 'mp4a'} 58 {'Audio Channels': '2'} 59 {'Audio Bits Per Sample': '16'} 60 {'Audio Sample Rate': '44100'} 61 {'Handler Type': 'Metadata'} 62 {'Handler Vendor ID': 'Apple'} 63 {'Encoder': 'Lavf56.40.101'} 64 {'Image Size': '1280x720'} 65 {'Megapixels': '0.922'} 66 {'Avg Bitrate': '1.64 Mbps'} 67 {'Rotation': '0'} 68
Cordialement
Partager