Procházet zdrojové kódy

Second encoding mode
Refactored program to allow a second mode with recursive encoding of rushes, deleting the originals

JTXman před 10 roky
rodič
revize
801d4248d3
1 změnil soubory, kde provedl 190 přidání a 43 odebrání
  1. 190 43
      JTX-Encoder.bat

+ 190 - 43
JTX-Encoder.bat

23
 echo    ****************** Encodeur du JTX *******************
23
 echo    ****************** Encodeur du JTX *******************
24
 echo    ******************************************************
24
 echo    ******************************************************
25
 echo.
25
 echo.
26
-echo    Ce programme encode les vid‚os du dossier dans lequel
27
-echo    il est plac‚, puis transfŠre les fichiers originaux 
26
+echo    Ce programme dispose de deux modes de fonctionnement.
27
+echo.
28
+echo    - Dans le mode 1, ce programme encode toutes les vid‚os du dossier
29
+echo    dans lequel il est plac‚, puis transfŠre les fichiers originaux 
28
 echo    dans un dossier Originaux/. Aucune vid‚o n'est donc supprim‚e.
30
 echo    dans un dossier Originaux/. Aucune vid‚o n'est donc supprim‚e.
29
 echo.
31
 echo.
32
+echo    - Dans le mode 2, le programme encode tous les rushes (.MTS, .MXF,
33
+echo    .MOV, .MP4, .MVI) pr‚sents dans le dossier et les sous-dossiers de
34
+echo    l'endroit o— est situ‚ le programme. Les originaux sont supprim‚s.
35
+echo.
36
+echo    *******************************************************
37
+echo     Attention, le mode 2 supprime les vid‚os originales ! 
38
+echo    *******************************************************
39
+echo.    
40
+choice /C 12 /N /M "    S‚lectionne le mode de fonctionnement, [1] ou [2] :"
41
+if errorlevel 2 (
42
+	call :recursivemode
43
+)
44
+if errorlevel 1 (
45
+    call :normalmode
46
+)
47
+
48
+color 0b
49
+title= ---- Encodeur du JTX ---- Encodage termine
50
+cls
51
+echo.
52
+echo    ***************************
53
+echo    **** Fin de l'encodage ****
54
+echo    ***************************
55
+echo.
56
+echo    L'encodage du dossier suivant est termin‚ :
57
+echo    %cd%
58
+echo.
59
+echo    Merci d'avoir choisi l'encodeur du JTX !
60
+echo.
61
+echo    Appuie sur une touche pour quitter le programme.
62
+pause >nul
63
+exit
64
+
65
+:normalmode 
66
+cls
67
+echo.
68
+echo    Tu as choisi le mode normal, qui encode toutes les vid‚os pr‚sentes dans ce dossier.
69
+echo.
30
 echo	Assure-toi d'ex‚cuter ce programme dans un dossier o— tu as les
70
 echo	Assure-toi d'ex‚cuter ce programme dans un dossier o— tu as les
31
 echo	droits dex‚cution sur tous les fichiers.
71
 echo	droits dex‚cution sur tous les fichiers.
32
 echo.
72
 echo.
50
 	echo    ********************************************************
90
 	echo    ********************************************************
51
 	pause >nul
91
 	pause >nul
52
 	::Appel de la routine :encoding avec le paramŠtre 4
92
 	::Appel de la routine :encoding avec le paramŠtre 4
53
-	call :encoding 4
93
+	call :normalencoding 4
54
 )
94
 )
55
 if errorlevel 3 (
95
 if errorlevel 3 (
56
 	echo.
96
 	echo.
61
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
101
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
62
 	echo    ********************************************************
102
 	echo    ********************************************************
63
 	pause >nul
103
 	pause >nul
64
-	call :encoding 3
104
+	call :normalencoding 3
65
 )
105
 )
66
 if errorlevel 2 (
106
 if errorlevel 2 (
67
 	echo.
107
 	echo.
72
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
112
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
73
 	echo    ********************************************************
113
 	echo    ********************************************************
74
 	pause >nul
114
 	pause >nul
75
-	call :encoding 2
115
+	call :normalencoding 2
76
 )
116
 )
77
 if errorlevel 1 (
117
 if errorlevel 1 (
78
 	echo.
118
 	echo.
83
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
123
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
84
 	echo    ********************************************************
124
 	echo    ********************************************************
85
 	pause >nul
125
 	pause >nul
86
-	call :encoding 1
126
+	call :normalencoding 1
87
 )
127
 )
88
 goto:eof
128
 goto:eof
89
 
129
 
90
-:encoding
130
+:normalencoding
91
 echo.
131
 echo.
92
 ::Cr‚er le r‚pertoire des fichiers originaux
132
 ::Cr‚er le r‚pertoire des fichiers originaux
93
 md Originaux
133
 md Originaux
95
 ::Boucle sur tous les fichiers du dossier en cours
135
 ::Boucle sur tous les fichiers du dossier en cours
96
 ::%%a est le nom du fichier
136
 ::%%a est le nom du fichier
97
 for %%a in (*.*) do (
137
 for %%a in (*.*) do (
98
-	call :encodingcheck %1 "%%a"
138
+	call :normalencodingcheck %1 "%%a"
99
 )
139
 )
100
 ::Lors de l'ex‚cution, le goto amŠne le programme au label :end.
140
 ::Lors de l'ex‚cution, le goto amŠne le programme au label :end.
101
-goto:end
141
+goto:eof
102
 
142
 
103
 ::V‚rifie si le fichier peut ˆtre encod‚
143
 ::V‚rifie si le fichier peut ˆtre encod‚
104
-:encodingcheck
144
+:normalencodingcheck
105
 set toencode="false"
145
 set toencode="false"
106
 set extension="%~x2"
146
 set extension="%~x2"
107
 ::Ci dessous une liste d'extensions correspondant … tous les formats vid‚os usuels
147
 ::Ci dessous une liste d'extensions correspondant … tous les formats vid‚os usuels
167
 if %extension%==".MXF" set toencode="true"
207
 if %extension%==".MXF" set toencode="true"
168
 
208
 
169
 if %toencode%=="true" (
209
 if %toencode%=="true" (
170
-	if %1==1 call :fullhd %2
171
-	if %1==2 call :hd %2
172
-	if %1==3 call :web %2
173
-	if %1==4 call :archives %2
210
+    move %2 Originaux/
211
+	if %1==1 call :fullhd "Originaux/%~2" "%~np2.mp4"
212
+	if %1==2 call :hd "Originaux/%~2" "%~np2.mp4"
213
+	if %1==3 call :web "Originaux/%~2" "%~np2.mp4"
214
+	if %1==4 call :archives "Originaux/%~2" "%~np2.mp4"
174
 )
215
 )
175
 ::Le label :eof est pr‚defini et permet de retourner … l'endroit du code o— la routine a ‚t‚ appel‚e.
216
 ::Le label :eof est pr‚defini et permet de retourner … l'endroit du code o— la routine a ‚t‚ appel‚e.
176
 goto:eof
217
 goto:eof
177
 
218
 
219
+
220
+:recursivemode
221
+cls
222
+echo.
223
+echo    Tu as choisi le mode r‚cursif, qui encode tous les rushes
224
+echo    (.MTS, .MXF, .MOV, .MP4, .MVI) r‚cursivement sur tous les
225
+echo    sous-dossiers … partir de l'emplacement du programme.
226
+echo.
227
+echo    *******************************************************
228
+echo     Attention, le mode 2 supprime les vid‚os originales ! 
229
+echo    *******************************************************
230
+echo.    
231
+echo. 
232
+choice /C yn /N /M "   Veux-tu vraiment lancer ce mode ? [y/n]"
233
+if errorlevel 2 (
234
+   exit
235
+)
236
+echo.
237
+echo	Assure-toi d'ex‚cuter ce programme dans un dossier o— tu as les
238
+echo	droits dex‚cution sur tous les fichiers.
239
+echo.
240
+echo    Voici la liste des formats d'encodage disponibles :
241
+echo    1 : FullHD   1920x1080 10 Mbits/s  25 i/s
242
+echo    2 : HD       1280x720  3 Mbits/s   25 i/s
243
+echo    3 : Web      854x480   1.5 Mbits/s 25 i/s
244
+echo    4 : Archives 720x576   1.5 Mbits/s 25 i/s
245
+echo.
246
+::Affiche un prompt d'une seule touche
247
+choice /C 1234 /N /M "   S‚lectionez le r‚glage en appuyant sur [1], [2], [3] ou [4] :"
248
+::R‚cup‚ration mystique du r‚sultat de choice
249
+::L'ordre des if est important (?!)...
250
+if errorlevel 4 (
251
+	echo.
252
+	color 0E
253
+	echo    ********************************************************
254
+	echo    Encodage au format Archives : 720x576 1.5 Mbits/s 25 i/s
255
+	echo    ********************************************************
256
+	echo    ***** Appuie sur un touche pour lancer l'encodage ******
257
+	echo    ********************************************************
258
+	pause >nul
259
+	::Appel de la routine :encoding avec le paramŠtre 4
260
+	call :recursiveencoding 4
261
+)
262
+if errorlevel 3 (
263
+	echo.
264
+	color 0E
265
+	echo    ********************************************************
266
+	echo    * Encodage au format Web : 854x480 1.5 Mbits/s 25 i/s **
267
+	echo    ********************************************************
268
+	echo    ***** Appuie sur un touche pour lancer l'encodage ******
269
+	echo    ********************************************************
270
+	pause >nul
271
+	call :recursiveencoding 3
272
+)
273
+if errorlevel 2 (
274
+	echo.
275
+	color 0E
276
+	echo    ********************************************************
277
+	echo    ****** Encodage en HD : 1280x720 3 Mbits/s 25 i/s ******
278
+	echo    ********************************************************
279
+	echo    ***** Appuie sur un touche pour lancer l'encodage ******
280
+	echo    ********************************************************
281
+	pause >nul
282
+	call :recursiveencoding 2
283
+)
284
+if errorlevel 1 (
285
+	echo.
286
+	color 0E
287
+	echo    ********************************************************
288
+	echo    *** Encodage en FullHD : 1920x1080 10 Mbits/s 25 i/s ***
289
+	echo    ********************************************************
290
+	echo    ***** Appuie sur un touche pour lancer l'encodage ******
291
+	echo    ********************************************************
292
+	pause >nul
293
+	call :recursiveencoding 1
294
+)
295
+goto:eof
296
+
297
+:recursiveencoding
298
+echo.
299
+color 0a
300
+::Boucle sur tous les fichiers du dossier en cours
301
+::%%a est le nom du fichier
302
+for /R %%a in (*.*) do (
303
+	call :recursiveencodingcheck %1 "%%a"
304
+)
305
+::Lors de l'ex‚cution, le goto amŠne le programme au label :end.
306
+goto:eof
307
+
308
+::V‚rifie si le fichier peut ˆtre encod‚
309
+:recursiveencodingcheck
310
+set toencode="false"
311
+set extension="%~x2"
312
+::Ci dessous une liste d'extensions correspondant … tous les formats de rushes usuels
313
+if %extension%==".mvi" set toencode="true"
314
+if %extension%==".MVI" set toencode="true"
315
+
316
+if %extension%==".MP4" set toencode="true"
317
+
318
+if %extension%==".MPG" set toencode="true"
319
+
320
+if %extension%==".mov" set toencode="true"
321
+if %extension%==".MOV" set toencode="true"
322
+
323
+if %extension%==".mts" set toencode="true"
324
+if %extension%==".MTS" set toencode="true"
325
+
326
+if %extension%==".mxf" set toencode="true"
327
+if %extension%==".MXF" set toencode="true"
328
+
329
+::Comme on rajoute _encode au nom du fichier aprŠs encodage, ce filtre permet de ne pas r‚encoder des fichiers d‚j… encod‚s.
330
+set basename=%~np2
331
+if "%basename:~-7%"=="_encode" set toencode="false"
332
+
333
+if %toencode%=="true" (
334
+	if %1==1 call :fullhd "%~2" "%~np2_encode.mp4"
335
+	if %1==2 call :hd "%~2" "%~np2_encode.mp4"
336
+	if %1==3 call :web "%~2" "%~np2_encode.mp4"
337
+	if %1==4 call :archives "%~2" "%~np2_encode.mp4"
338
+	del "%~2"
339
+)
340
+::Le label :eof est pr‚defini et permet de retourner … l'endroit du code o— la routine a ‚t‚ appel‚e.
341
+goto:eof
342
+
343
+
344
+
345
+
346
+
347
+
348
+
178
 ::Ci dessous les commandes d'encodage qui font appel … ffmpeg v2.7.2 (https://www.ffmpeg.org/)
349
 ::Ci dessous les commandes d'encodage qui font appel … ffmpeg v2.7.2 (https://www.ffmpeg.org/)
179
 ::Liste des paramŠtres utilis‚s par les commandes :
350
 ::Liste des paramŠtres utilis‚s par les commandes :
180
 ::	-i <input>
351
 ::	-i <input>
207
 
378
 
208
 :fullhd
379
 :fullhd
209
 title= ---- Encodeur du JTX ---- Encodage de %1 en FullHD
380
 title= ---- Encodeur du JTX ---- Encodage de %1 en FullHD
210
-move %1 Originaux/
211
-ffmpeg.exe -i Originaux/%1 -threads 0 -c:v libx264 -b:v 10M -r 25 -s 1920x1080 -x264opts level=4 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y "%~np1.mp4"
381
+
382
+ffmpeg.exe -i %1 -threads 0 -c:v libx264 -b:v 10M -r 25 -s 1920x1080 -x264opts level=4 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y %2
212
 goto:eof
383
 goto:eof
213
 :hd
384
 :hd
214
 title= ---- Encodeur du JTX ---- Encodage de %1 en HD
385
 title= ---- Encodeur du JTX ---- Encodage de %1 en HD
215
-move %1 Originaux/
216
-ffmpeg.exe -i Originaux/%1 -threads 0 -c:v libx264 -b:v 3M -r 25 -s 1280x720 -x264opts level=3.1 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y "%~np1.mp4"
386
+ffmpeg.exe -i %1 -threads 0 -c:v libx264 -b:v 3M -r 25 -s 1280x720 -x264opts level=3.1 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y %2
217
 goto:eof
387
 goto:eof
218
 :web
388
 :web
219
 title= ---- Encodeur du JTX ---- Encodage de %1 au format Web
389
 title= ---- Encodeur du JTX ---- Encodage de %1 au format Web
220
 move %1 Originaux/
390
 move %1 Originaux/
221
-ffmpeg.exe -i Originaux/%1 -threads 0 -c:v libx264 -b:v 1.5M -r 25 -s 854x480 -x264opts level=3 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y "%~np1.mp4"
391
+ffmpeg.exe -i %1 -threads 0 -c:v libx264 -b:v 1.5M -r 25 -s 854x480 -x264opts level=3 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y %2
222
 goto:eof
392
 goto:eof
223
 :archives
393
 :archives
224
 title= ---- Encodeur du JTX ---- Encodage de %1 au format Archives
394
 title= ---- Encodeur du JTX ---- Encodage de %1 au format Archives
225
-move %1 Originaux/
226
-ffmpeg.exe -i Originaux/%1 -threads 0 -c:v libx264 -b:v 1.5M -r 25 -s  720x576 -x264opts level=3 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y "%~np1.mp4"
395
+ffmpeg.exe -i %1 -threads 0 -c:v libx264 -b:v 1.5M -r 25 -s  720x576 -x264opts level=3 -pix_fmt yuv420p -c:a aac -strict experimental -b:a 192k -y %2
227
 goto:eof
396
 goto:eof
228
 
397
 
229
 
398
 
230
-:end
231
-color 0b
232
-title= ---- Encodeur du JTX ---- Encodage termine
233
-cls
234
-echo.
235
-echo    ***************************
236
-echo    **** Fin de l'encodage ****
237
-echo    ***************************
238
-echo.
239
-echo    L'encodage du dossier suivant est termin‚ :
240
-echo    %cd%
241
-echo.
242
-echo    Les fichiers originaux se trouvent dans le dossier
243
-echo    Originaux/.
244
-echo.
245
-echo    Merci d'avoir choisi l'encodeur du JTX !
246
-echo.
247
-echo    Appuie sur une touche pour quitter le programme.
248
-pause >nul
249
-exit
250
-
251
-
252
 
399