설명 없음

JTX-Encoder.bat 8.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. ::============================================================
  2. ::=============== Programme d'encodage du JTX ================
  3. ::============================================================
  4. ::====== Par Denis Merigoux, inspir‚ de Nicolas Breton =======
  5. ::============================================================
  6. ::ffmpeg v2.7.2 doit ˆtre plac‚ dans le mˆme dossier que le .bat pour que celui-ci fonctionne.
  7. ::Alternativement, on packagera le .bat et ffmpeg.exe … l'int‚rieur d'un unique .exe
  8. ::… l'aide de http://www.f2ko.de/en/b2e.php pour plus de portabilit‚ et de protection du code.
  9. ::On se r‚fŠrera au site http://ss64.com/ pour la documentation des commandes batch
  10. @echo off
  11. ::Titre de la fenˆtre de ligne de commande.
  12. title= ---- Encodeur du JTX ----
  13. ::Couleur du texte et du fond
  14. color 0D
  15. ::Efface l'‚cran
  16. cls
  17. echo ******************************************************
  18. echo ****************** Encodeur du JTX *******************
  19. echo ******************************************************
  20. echo.
  21. echo Ce programme encode les vid‚os du dossier dans lequel
  22. echo il est plac‚, puis transfŠre les fichiers originaux
  23. echo dans un dossier Originaux/. Aucune vid‚o n'est donc supprim‚e.
  24. echo.
  25. echo Assure-toi d'ex‚cuter ce programme dans un dossier o— tu as les
  26. echo droits dex‚cution sur tous les fichiers.
  27. echo.
  28. echo Voici la liste des formats d'encodage disponibles :
  29. echo 1 : FullHD 1920x1080 10 Mbits/s 25 i/s
  30. echo 2 : HD 1280x720 3 Mbits/s 25 i/s
  31. echo 3 : Web 854x480 1.5 Mbits/s 25 i/s
  32. echo 4 : Archives 720x576 1.5 Mbits/s 25 i/s
  33. echo.
  34. ::Affiche un prompt d'une seule touche
  35. choice /C 1234 /N /M " S‚lectionez le r‚glage en appuyant sur [1], [2], [3] ou [4] :"
  36. ::R‚cup‚ration mystique du r‚sultat de choice
  37. ::L'ordre des if est important (?!)...
  38. if errorlevel 4 (
  39. echo.
  40. color 0E
  41. echo ********************************************************
  42. echo Encodage au format Archives : 720x576 1.5 Mbits/s 25 i/s
  43. echo ********************************************************
  44. echo ***** Appuie sur un touche pour lancer l'encodage ******
  45. echo ********************************************************
  46. pause >nul
  47. ::Appel de la routine :encoding avec le paramŠtre 4
  48. call :encoding 4
  49. )
  50. if errorlevel 3 (
  51. echo.
  52. color 0E
  53. echo ********************************************************
  54. echo * Encodage au format Web : 854x480 1.5 Mbits/s 25 i/s **
  55. echo ********************************************************
  56. echo ***** Appuie sur un touche pour lancer l'encodage ******
  57. echo ********************************************************
  58. pause >nul
  59. call :encoding 3
  60. )
  61. if errorlevel 2 (
  62. echo.
  63. color 0E
  64. echo ********************************************************
  65. echo ****** Encodage en HD : 1280x720 3 Mbits/s 25 i/s ******
  66. echo ********************************************************
  67. echo ***** Appuie sur un touche pour lancer l'encodage ******
  68. echo ********************************************************
  69. pause >nul
  70. call :encoding 2
  71. )
  72. if errorlevel 1 (
  73. echo.
  74. color 0E
  75. echo ********************************************************
  76. echo *** Encodage en FullHD : 1920x1080 10 Mbits/s 25 i/s ***
  77. echo ********************************************************
  78. echo ***** Appuie sur un touche pour lancer l'encodage ******
  79. echo ********************************************************
  80. pause >nul
  81. call :encoding 1
  82. )
  83. goto:eof
  84. :encoding
  85. echo.
  86. ::Cr‚er le r‚pertoire des fichiers originaux
  87. md Originaux
  88. color 0a
  89. ::Boucle sur tous les fichiers du dossier en cours
  90. ::%%a est le nom du fichier
  91. for %%a in (*.*) do (
  92. call :encodingcheck %1 "%%a"
  93. )
  94. ::Lors de l'ex‚cution, le goto amŠne le programme au label :end.
  95. goto:end
  96. ::V‚rifie si le fichier peut ˆtre encod‚
  97. :encodingcheck
  98. set toencode="false"
  99. set extension="%~x2"
  100. ::Ci dessous une liste d'extensions correspondant … tous les formats vid‚os usuels
  101. if %extension%==".mkv" set toencode="true"
  102. if %extension%==".MKV" set toencode="true"
  103. if %extension%==".wmv" set toencode="true"
  104. if %extension%==".WMV" set toencode="true"
  105. if %extension%==".ogm" set toencode="true"
  106. if %extension%==".OGM" set toencode="true"
  107. if %extension%==".3gp" set toencode="true"
  108. if %extension%==".3GP" set toencode="true"
  109. if %extension%==".ts" set toencode="true"
  110. if %extension%==".TS" set toencode="true"
  111. if %extension%==".m2ts" set toencode="true"
  112. if %extension%==".M2TS" set toencode="true"
  113. if %extension%==".flv" set toencode="true"
  114. if %extension%==".FLV" set toencode="true"
  115. if %extension%==".m4v" set toencode="true"
  116. if %extension%==".M4V" set toencode="true"
  117. if %extension%==".rm" set toencode="true"
  118. if %extension%==".RM" set toencode="true"
  119. if %extension%==".mvi" set toencode="true"
  120. if %extension%==".MVI" set toencode="true"
  121. if %extension%==".mka" set toencode="true"
  122. if %extension%==".MKA" set toencode="true"
  123. if %extension%==".dvix" set toencode="true"
  124. if %extension%==".DVIX" set toencode="true"
  125. if %extension%==".mks" set toencode="true"
  126. if %extension%==".MKS" set toencode="true"
  127. if %extension%==".avi" set toencode="true"
  128. if %extension%==".AVI" set toencode="true"
  129. if %extension%==".mpg" set toencode="true"
  130. if %extension%==".MPG" set toencode="true"
  131. if %extension%==".webm" set toencode="true"
  132. if %extension%==".WEBM" set toencode="true"
  133. if %extension%==".mp4" set toencode="true"
  134. if %extension%==".MP4" set toencode="true"
  135. if %extension%==".mov" set toencode="true"
  136. if %extension%==".MOV" set toencode="true"
  137. if %extension%==".mts" set toencode="true"
  138. if %extension%==".MTS" set toencode="true"
  139. if %extension%==".mxf" set toencode="true"
  140. if %extension%==".MXF" set toencode="true"
  141. if %toencode%=="true" (
  142. if %1==1 call :fullhd %2
  143. if %1==2 call :hd %2
  144. if %1==3 call :web %2
  145. if %1==4 call :archives %2
  146. )
  147. ::Le label :eof est pr‚defini et permet de retourner … l'endroit du code o— la routine a ‚t‚ appel‚e.
  148. goto:eof
  149. ::Ci dessous les commandes d'encodage qui font appel … ffmpeg v2.7.2 (https://www.ffmpeg.org/)
  150. ::Liste des paramŠtres utilis‚s par les commandes :
  151. :: -i <input>
  152. :: Fichier original … encoder.
  153. :: -threads <number>
  154. :: Nombre de CPU utilis‚s pour r‚aliser l'encodage. Si 0, un maximum de CPU sont utilis‚s.
  155. :: -c:v <codec>
  156. :: Codec vid‚o, le JTX a choisi d'utiliser H.264 impl‚ment‚ par la librairie libx264.
  157. :: -b:v <number>
  158. :: Bitrate de la vid‚o en sortie, exprim‚ en bits.
  159. :: -r <number>
  160. :: Framerate de la vid‚o en sortie.
  161. :: -s <width>x<hright>
  162. :: R‚solution de la vid‚o en sortie, exprim‚e en pixels.
  163. :: -x264opts <options>
  164. :: Permet de sp‚cifier des options pour la libraire libx264. En l'occurence, on d‚termine
  165. :: ici le level de l'encodage H.264. Plus d'infos ici : https://fr.wikipedia.org/wiki/H.264#Niveaux.
  166. :: -pix_fmt <format>
  167. :: Format d'encodage des pixels. yuv420p est sp‚cifi‚ ici car sinon les vid‚os ne sont pas
  168. :: lisibles par Windows Media Player. Plus d'infos ici : https://ffmpeg.zeranoe.com/forum/viewtopic.php?t=709.
  169. :: -c:a <codec>
  170. :: Codec audio de la vid‚o en sortie. Le JTX a choisi AAC.
  171. :: -strict <strictness>
  172. :: Le codec audio AAC ‚tant une fonctionnalit‚ exp‚rimentale pour ffmpeg 2.7.2, il est n‚cessaire
  173. :: de r‚gler ce paramŠtre sur experimental.
  174. :: -b:a <number>
  175. :: Bitrate de l'audio en sortie. Le JTX a choisi 192k.
  176. :: -y
  177. :: �crase automatiquement les fichiers en sortie s'ils existent d‚j… (pas de prompt).
  178. :fullhd
  179. title= ---- Encodeur du JTX ---- Encodage de %1 en FullHD
  180. move %1 Originaux/
  181. 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"
  182. goto:eof
  183. :hd
  184. title= ---- Encodeur du JTX ---- Encodage de %1 en HD
  185. move %1 Originaux/
  186. 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"
  187. goto:eof
  188. :web
  189. title= ---- Encodeur du JTX ---- Encodage de %1 au format Web
  190. move %1 Originaux/
  191. 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"
  192. goto:eof
  193. :archives
  194. title= ---- Encodeur du JTX ---- Encodage de %1 au format Archives
  195. move %1 Originaux/
  196. 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"
  197. goto:eof
  198. :end
  199. color 0b
  200. title= ---- Encodeur du JTX ---- Encodage termine
  201. cls
  202. echo.
  203. echo ***************************
  204. echo **** Fin de l'encodage ****
  205. echo ***************************
  206. echo.
  207. echo L'encodage du dossier suivant est termin‚ :
  208. echo %cd%
  209. echo.
  210. echo Les fichiers originaux se trouvent dans le dossier
  211. echo Originaux/.
  212. echo.
  213. echo Merci d'avoir choisi l'encodeur du JTX !
  214. echo.
  215. echo Appuie sur une touche pour quitter le programme.
  216. pause >nul
  217. exit