elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 06:52  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [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 227 veces)
EleKtro H@cker
Moderador
***
Desconectado Desconectado

Mensajes: 1.348


(8) I will have that power!! (8) Jarkor! :D


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

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
@Echo Off
Color 07
Mode con cols=70 lines=30
Title MKVMerge Split Helper v0.1

REM By EleKtro H@cker

REM Visita Foro.ElHacker.Net

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.

REM El código trabaja sobre los archivos MKV que estén en el mismo directorio que esté el script.
REM
REM El script utiliza el programa MKVMERGE, Que se puede descargar desde aquí:
REM www.bunkus.org/videotools/mkvtoolnix/win32/mkvtoolnix-unicode-5.2.1.7z
 
 
 
 
 
:Configuración por defecto:
:::::::::::::::::::::::::::
Set Timecode_Start=
Set Timecode_End=
Set Audio=
Set Subtitles=
:::::::::::::::::::::::::::
 
 
 
 
 
:CHECK
::::::
 
If not exist "%~dp0\*.MKV" (
Echo.
Echo. No se ha encontrado ningun video en el directorio:
Echo. "%~dp0"
Echo.
Pause
Exit
)
 
If not exist "mkvmerge.exe" (
Echo.
Echo. No se ha encontrado el programa "MKVMERGE.EXE"
Echo.
Pause
Exit
)
 
If defined Timecode_Start (Set /A Num+=1)
If defined Timecode_End (Set /A Num+=1)
If defined Audio (Set /A Num+=1)
If defined Subtitles (Set /A Num+=1)
If %num% EQU 4 (Goto :Split:)
 
 
 
 
 
:MENU:
::::::
 
:Timecode_A_SubMenu
:::::::::::::::::::
Cls
Echo.
Echo. Timecode A: Esperando...
Echo ______________________________________________________________________
Echo. Escriba el codigo de tiempo para el punto A...
Echo.
Echo. Ejemplo: "01:20:59"    (Hora:Minuto:Segundo)
Echo.
Set /P Timecode_Start=^>^>
 
If NOT defined Timecode_Start (Goto :Timecode_A_SubMenu)
 
Echo %Timecode_Start%| Findstr /I ^..:..:..$ >Nul
If %ErrorLevel% NEQ 0 (
Cls
Echo.
Echo. Ha introducido un valor incorrecto.
Ping -n 3 LocalHost >Nul
Set Timecode_Start=
Goto :Timecode_A_SubMenu
)
 
 
:Timecode_B_SubMenu
:::::::::::::::::::
Cls
Echo.
Echo. Timecode A: %Timecode_Start%
Echo. Timecode B: Esperando...
Echo ______________________________________________________________________
Echo. Escriba el codigo de tiempo para el punto B...
Echo.
Echo. Ejemplo: "01:20:59"    (Hora:Minuto:Segundo)
Echo.
Set /P Timecode_End=^>^>
 
If NOT defined Timecode_Start (Goto :Timecode_B_SubMenu)
 
Echo %Timecode_Start%| Findstr /I ^..:..:..$ >Nul
If %ErrorLevel% NEQ 0 (
Cls
Echo.
Echo. Ha introducido un valor incorrecto.
Ping -n 3 LocalHost >Nul
Set Timecode_End=
Goto :Timecode_B_SubMenu
)
 
 
:Audio_SubMenu
::::::::::::::
Cls
Echo.
Echo. Timecode A: %Timecode_Start%
Echo. Timecode B: %Timecode_End%
Echo. Audio: Esperando...
Echo ______________________________________________________________________
Choice /M "Quiere copiar solamente la pista de audio principal?... "
 
If %ErrorLevel% EQU 1 (Set Audio=-a 1)
 
 
:Subtitles_SubMenu
::::::::::::::::::
Cls
Echo.
Echo. Timecode A: %Timecode_Start%
Echo. Timecode B: %Timecode_End%
If not defined audio (Echo. Audio: Todas las pistas) ELSE (Echo. Audio: Solamente la pista principal)
Echo. Subtitulos: Esperando...
Echo ______________________________________________________________________
Choice /M "Quiere copiar los subtitulos del video de origen?... "
 
If %ErrorLevel% EQU 2 (Set Subtitles=--no-subtitles)
 
 
 
 
 
:Split:
:::::::
 
Cls
Echo.
Echo. Timecode A: %Timecode_Start%
Echo. Timecode B: %Timecode_End%
If not defined audio (Echo. Audio: Todas las pistas) ELSE (Echo. Audio: Solamente la pista principal)
If not defined subtitles (Echo. Subtitulos: SI) ELSE (Echo. Subtitulos: NO)
Echo ______________________________________________________________________
 
For /F "Tokens=*" %%_ in ('Dir /B "%~dp0\*.mkv"') do (
Echo+
Echo. Procesando: %%_
mkvmerge.exe %Subtitles% %audio% "%%_" --split timecodes:%Timecode_Start%,%Timecode_End% -o "%%_.ren" >NUL
Del /Q "%%_"
Del /Q "%%_-001.ren"
Del /Q "%%_-003.ren"
Ren "%%_-002.ren" "%%_"
)
 
 
 
 
 
:END:
:::::
 
Cls
Echo.
Echo. Todos los videos se han cortado.
Echo.
Echo. Pulse una tecla para salir...
Pause >Nul
Exit
 


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

Siempre habrá alguien más ignorante que uno mismo, Como por ejemplo el nuevo presidente de la SGAE:

"La banda ancha es totalmente innecesaria para navegar convencionalmente, Solo sirve para descargar megas y megas grandisimos, Y tal."

PD: Volviendo a la era de los 56 k.

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines