Переглянути джерело

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

JTXman 10 роки тому
батько
комміт
801d4248d3
1 змінених файлів з 190 додано та 43 видалено
  1. 190 43
      JTX-Encoder.bat

+ 190 - 43
JTX-Encoder.bat

@@ -23,10 +23,50 @@ echo    ******************************************************
23 23
 echo    ****************** Encodeur du JTX *******************
24 24
 echo    ******************************************************
25 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 30
 echo    dans un dossier Originaux/. Aucune vid‚o n'est donc supprim‚e.
29 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 70
 echo	Assure-toi d'ex‚cuter ce programme dans un dossier o— tu as les
31 71
 echo	droits dex‚cution sur tous les fichiers.
32 72
 echo.
@@ -50,7 +90,7 @@ if errorlevel 4 (
50 90
 	echo    ********************************************************
51 91
 	pause >nul
52 92
 	::Appel de la routine :encoding avec le paramŠtre 4
53
-	call :encoding 4
93
+	call :normalencoding 4
54 94
 )
55 95
 if errorlevel 3 (
56 96
 	echo.
@@ -61,7 +101,7 @@ if errorlevel 3 (
61 101
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
62 102
 	echo    ********************************************************
63 103
 	pause >nul
64
-	call :encoding 3
104
+	call :normalencoding 3
65 105
 )
66 106
 if errorlevel 2 (
67 107
 	echo.
@@ -72,7 +112,7 @@ if errorlevel 2 (
72 112
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
73 113
 	echo    ********************************************************
74 114
 	pause >nul
75
-	call :encoding 2
115
+	call :normalencoding 2
76 116
 )
77 117
 if errorlevel 1 (
78 118
 	echo.
@@ -83,11 +123,11 @@ if errorlevel 1 (
83 123
 	echo    ***** Appuie sur un touche pour lancer l'encodage ******
84 124
 	echo    ********************************************************
85 125
 	pause >nul
86
-	call :encoding 1
126
+	call :normalencoding 1
87 127
 )
88 128
 goto:eof
89 129
 
90
-:encoding
130
+:normalencoding
91 131
 echo.
92 132
 ::Cr‚er le r‚pertoire des fichiers originaux
93 133
 md Originaux
@@ -95,13 +135,13 @@ color 0a
95 135
 ::Boucle sur tous les fichiers du dossier en cours
96 136
 ::%%a est le nom du fichier
97 137
 for %%a in (*.*) do (
98
-	call :encodingcheck %1 "%%a"
138
+	call :normalencodingcheck %1 "%%a"
99 139
 )
100 140
 ::Lors de l'ex‚cution, le goto amŠne le programme au label :end.
101
-goto:end
141
+goto:eof
102 142
 
103 143
 ::V‚rifie si le fichier peut ˆtre encod‚
104
-:encodingcheck
144
+:normalencodingcheck
105 145
 set toencode="false"
106 146
 set extension="%~x2"
107 147
 ::Ci dessous une liste d'extensions correspondant … tous les formats vid‚os usuels
@@ -167,14 +207,145 @@ if %extension%==".mxf" set toencode="true"
167 207
 if %extension%==".MXF" set toencode="true"
168 208
 
169 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 216
 ::Le label :eof est pr‚defini et permet de retourner … l'endroit du code o— la routine a ‚t‚ appel‚e.
176 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 349
 ::Ci dessous les commandes d'encodage qui font appel … ffmpeg v2.7.2 (https://www.ffmpeg.org/)
179 350
 ::Liste des paramŠtres utilis‚s par les commandes :
180 351
 ::	-i <input>
@@ -207,46 +378,22 @@ goto:eof
207 378
 
208 379
 :fullhd
209 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 383
 goto:eof
213 384
 :hd
214 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 387
 goto:eof
218 388
 :web
219 389
 title= ---- Encodeur du JTX ---- Encodage de %1 au format Web
220 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 392
 goto:eof
223 393
 :archives
224 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 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