elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] (Aporte) Script para cortar videos MKV de forma masiva.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] (Aporte) Script para cortar videos MKV de forma masiva.  (Leído 3,448 veces)
Eleкtro
Ex-Staff
*
Conectado Conectado

Mensajes: 9.819



Ver Perfil
[BATCH] (Aporte) Script para cortar videos MKV de forma masiva.
« en: 14 Enero 2012, 18:05 pm »

Pues eso xD, Me he bajado una gran cantidad de videos de DBZ en formato MKV y me aburrí de ir cortandolos uno por uno con la GUI del maldito mkvtoolnix, Así que me he puesto a repasar los comandos de este, y al final he acabado haciendo este útil script para cortar opening+ending de forma masiva.





Info:
Este código sirve para cortar videos MKV desde un punto (A) hasta un punto (B), Muy útil para eliminar el Opening y Ending de videos Anime.
El código trabaja sobre los archivos MKV que estén en el mismo directorio que esté el script.

El script utiliza el programa MKVMERGE, Que se puede descargar desde aquí:
www.bunkus.org/videotools/mkvtoolnix/win32/mkvtoolnix-unicode-5.2.1.7z

El script se puede configurar de forma predeterminada para que no haga ninguna pregunta... Un ejemplo sería así:

Código:
:Configuración por defecto:
:::::::::::::::::::::::::::
Set Timecode_Start=00:01:47
Set Timecode_End=00:22:35
Set Audio=-a 1
Set Subtitles=--no-subtitles
:::::::::::::::::::::::::::

Notas:
El script reemplaza los videos de origen, por los nuevos cortados. No he puesto ninguna opciónpara esto pero bueno lo podeis evitar simplemente borrando esta línea:
Código:
Del /Q "%%_"





El Script:

Código
  1. @Echo Off
  2. Color 07
  3. Mode con cols=70 lines=30
  4. Title MKVMerge Split Helper v0.1
  5.  
  6. REM By EleKtro H@cker
  7. REM Visita Foro.ElHacker.Net
  8.  
  9. REM Este código sirve para cortar videos MKV desde un punto (A) hasta un punto (B), Muy útil para eliminar el Opening y Ending de videos Anime.
  10. REM El código trabaja sobre los archivos MKV que estén en el mismo directorio que esté el script.
  11. REM
  12. REM El script utiliza el programa MKVMERGE, Que se puede descargar desde aquí:
  13. REM www.bunkus.org/videotools/mkvtoolnix/win32/mkvtoolnix-unicode-5.2.1.7z
  14.  
  15.  
  16.  
  17.  
  18.  
  19. :Configuración por defecto:
  20. :::::::::::::::::::::::::::
  21. Set Timecode_Start=
  22. Set Timecode_End=
  23. Set Audio=
  24. Set Subtitles=
  25. :::::::::::::::::::::::::::
  26.  
  27.  
  28.  
  29.  
  30.  
  31. :CHECK
  32. ::::::
  33.  
  34. If not exist "%~dp0\*.MKV" (
  35. Echo. No se ha encontrado ningun video en el directorio:
  36. Echo. "%~dp0"
  37. )
  38.  
  39. If not exist "mkvmerge.exe" (
  40. Echo. No se ha encontrado el programa "MKVMERGE.EXE"
  41. )
  42.  
  43. If defined Timecode_Start (Set /A Num+=1)
  44. If defined Timecode_End (Set /A Num+=1)
  45. If defined Audio (Set /A Num+=1)
  46. If defined Subtitles (Set /A Num+=1)
  47. If %num% EQU 4 (Goto :Split:)
  48.  
  49.  
  50.  
  51.  
  52.  
  53. :MENU:
  54. ::::::
  55.  
  56. :Timecode_A_SubMenu
  57. :::::::::::::::::::
  58. Cls
  59. Echo. Timecode A: Esperando...
  60. Echo ______________________________________________________________________
  61. Echo. Escriba el codigo de tiempo para el punto A...
  62. Echo. Ejemplo: "01:20:59"    (Hora:Minuto:Segundo)
  63. Set /P Timecode_Start=^>^>
  64.  
  65. If NOT defined Timecode_Start (Goto :Timecode_A_SubMenu)
  66.  
  67. Echo %Timecode_Start%| Findstr /I ^..:..:..$ >Nul
  68. If %ErrorLevel% NEQ 0 (
  69. Cls
  70. Echo. Ha introducido un valor incorrecto.
  71. Ping -n 3 LocalHost >Nul
  72. Set Timecode_Start=
  73. Goto :Timecode_A_SubMenu
  74. )
  75.  
  76.  
  77. :Timecode_B_SubMenu
  78. :::::::::::::::::::
  79. Cls
  80. Echo. Timecode A: %Timecode_Start%
  81. Echo. Timecode B: Esperando...
  82. Echo ______________________________________________________________________
  83. Echo. Escriba el codigo de tiempo para el punto B...
  84. Echo. Ejemplo: "01:20:59"    (Hora:Minuto:Segundo)
  85. Set /P Timecode_End=^>^>
  86.  
  87. If NOT defined Timecode_Start (Goto :Timecode_B_SubMenu)
  88.  
  89. Echo %Timecode_Start%| Findstr /I ^..:..:..$ >Nul
  90. If %ErrorLevel% NEQ 0 (
  91. Cls
  92. Echo. Ha introducido un valor incorrecto.
  93. Ping -n 3 LocalHost >Nul
  94. Set Timecode_End=
  95. Goto :Timecode_B_SubMenu
  96. )
  97.  
  98.  
  99. :Audio_SubMenu
  100. ::::::::::::::
  101. Cls
  102. Echo. Timecode A: %Timecode_Start%
  103. Echo. Timecode B: %Timecode_End%
  104. Echo. Audio: Esperando...
  105. Echo ______________________________________________________________________
  106. Choice /M "Quiere copiar solamente la pista de audio principal?... "
  107.  
  108. If %ErrorLevel% EQU 1 (Set Audio=-a 1)
  109.  
  110.  
  111. :Subtitles_SubMenu
  112. ::::::::::::::::::
  113. Cls
  114. Echo. Timecode A: %Timecode_Start%
  115. Echo. Timecode B: %Timecode_End%
  116. If not defined audio (Echo. Audio: Todas las pistas) ELSE (Echo. Audio: Solamente la pista principal)
  117. Echo. Subtitulos: Esperando...
  118. Echo ______________________________________________________________________
  119. Choice /M "Quiere copiar los subtitulos del video de origen?... "
  120.  
  121. If %ErrorLevel% EQU 2 (Set Subtitles=--no-subtitles)
  122.  
  123.  
  124.  
  125.  
  126.  
  127. :Split:
  128. :::::::
  129.  
  130. Cls
  131. Echo. Timecode A: %Timecode_Start%
  132. Echo. Timecode B: %Timecode_End%
  133. If not defined audio (Echo. Audio: Todas las pistas) ELSE (Echo. Audio: Solamente la pista principal)
  134. If not defined subtitles (Echo. Subtitulos: SI) ELSE (Echo. Subtitulos: NO)
  135. Echo ______________________________________________________________________
  136.  
  137. For /F "Tokens=*" %%_ in ('Dir /B "%~dp0\*.mkv"') do (
  138. Echo. Procesando: %%_
  139. mkvmerge.exe %Subtitles% %audio% "%%_" --split timecodes:%Timecode_Start%,%Timecode_End% -o "%%_.ren" >NUL
  140. Del /Q "%%_"
  141. Del /Q "%%_-001.ren"
  142. Del /Q "%%_-003.ren"
  143. Ren "%%_-002.ren" "%%_"
  144. )
  145.  
  146.  
  147.  
  148.  
  149.  
  150. :END:
  151. :::::
  152.  
  153. Cls
  154. Echo. Todos los videos se han cortado.
  155. Echo. Pulse una tecla para salir...
  156.  


« Última modificación: 14 Enero 2012, 18:23 pm por EleKtro H@cker » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines