Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Eleкtro en 19 Agosto 2012, 16:03 pm



Título: [BATCH] MKV Demuxer (Demuxea MKV con click derecho del ratón)
Publicado por: Eleкtro en 19 Agosto 2012, 16:03 pm
Este código agrega una opción al menú contextual, Al pulsar click derecho sobre un archivo de video MKV:

(http://img525.imageshack.us/img525/4581/prtscrcapture4s.jpg)

El script tratará de demuxear todas las pistas de Audio, Video, Y Subtiítulos del archivo MKV. Un ejemplo:

(http://img253.imageshack.us/img253/4430/prtscrcapture2k.jpg)


Es necesario tener instalado MKVTOOLNIX, O disponer del archivo mkvextract.exe: http://www.bunkus.org/videotools/mkvtoolnix/win32/mkvtoolnix-unicode-5.7.0.7z

* Dentro del contenedor MKV, Puede demuxear estos tipos de archivo:
AAC
AC3
ASS
AVI
AVC
H264
MP2/3/4
OGG
RA
RMVB
SSA
SRT
TTA
WAV

Más info aquí: http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvextract.html

MKV Demux.reg
Código:
[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell]
[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\Demuxear]
"icon"="C:\\Iconos\\Demux.ico"
"position"="bottom"

[HKEY_CLASSES_ROOT\SystemFileAssociations\.mkv\shell\Demuxear\command]
@="CMD /C @Echo OFF & PUSHD \"C:\\Program Files (x86)\\MKV Toolnix\" & Title MKV Demuxer By Elektro H@cker & Mode con cols=80 lines=8 & Call SET \"FILE=%1\" & Call SET \"FILENAME=%%FILE:*\\=%%\" & (For /L %%%x in (1,1,20) Do (Call SET \"FILENAME=%%FILENAME:*\\=%%\")) & Call Echo Demuxeando: \"%%FILENAME%%\"... & (For /L %%%n in (0,1,20) Do (For /F \"Tokens=2 delims='\" %%%a in ('mkvextract.exe tracks \"%1\" %%%n:\"%1.tmp\" ^| FIND \"'\"') Do (Call Set \"TYPE=%%%a\" & Echo \"%%%a\" | FIND \"UTF8\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.srt\") & Echo \"%%%a\" | FIND \"SSA\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.ssa\") & Echo \"%%%a\" | FIND \"h.264\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.h264\") & Echo \"%%%a\" | FIND \"ASS\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.ass\") & Echo \"%%%a\" | FIND \"VORBIS\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.ogg\") & Echo \"%%%a\" | FIND \"A_PCM\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.wav\") & Echo \"%%%a\" | FIND \"A_MPEG\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.mp3\") & Echo \"%%%a\" | FIND \"A_TTA\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.tta\") & Echo \"%%%a\" | FIND \"A_AC3\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.ac3\") & Echo \"%%%a\" | FIND \"A_AAC\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.aac\") & Echo \"%%%a\" | FIND \"A_REAL\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.ra\") & Echo \"%%%a\" | FIND \"V_MS\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.avi\") & Echo \"%%%a\" | FIND \"V_MPEG\" >NUL && (Call Ren \"%1.tmp\" \"%%FILENAME%%_%%%n.h264\") & (If defined TYPE (Call Echo Pista %%%n: \"%%TYPE%%\"))))) & Timeout /T 10 || (Exit)"

PD: Cambiar la ruta de acceso a MKVToolnix en el código de arriba en caso de necesidad:
Código:
PUSHD \"C:\\Program Files (x86)\\MKV Toolnix\


Salu2