1.- Extraje con DVD decrypter el DVD en modo IFO obteniendo un solo VOB.
2.- Utilice el siguiente script KSVCD_Express modificado para NTSC segun recomendaciones de Maurus.
@ECHO OFF
ECHO :::
ECHO NTSC KSVCD Express 2.03 por Maurus
ECHO :::
:: --------------------- Advertencia Legal -----------------------------------------
:: No es legal el uso KSVCD Express para hacer otra cosa que no sean
:: copias de seguridad personales de DVDs legalmente adquiridos.
:: Es delito usarlo con fines comerciales o de lucro.
:: ---------------------------------------------------------------------------------
:: Disclaimer
:: Remember, this script is for personal and legal use. I won't
:: take any responsibilities in any way for how you choose to use the
:: instructions, software and links in this guides. This script only serves as
:: a guide to learning, NOT a guide to DVD piracy or anything illegal.
:: By reading this, you automatically agree to abide by this rules. If you
:: don't agree, please delete this script immediately. All KVCD templates
:: and KVCD Quantization Matrix are Copyright (c) 2002, 2003 of
:: Softronex Corporation. All other programs used are property of its
:: respectives owners.
::
:: --------------------- Variables a configurar ------------------------------------
:: source ------> AVI - DVD - Indicar si la fuente es un AVI ó un DVD
:: directorio --> Directorio donde están el VOB y el AC3 de la película
:: pelicula ----> Nombre corto o alias de la película
:: duracion ----> Duración de la pelicula en minutos (despreciamos los seg.)
:: aspectRatio -> 4:3 - 16:9 (panorámica) - 4:3LB (panorámica -> LetterBoxed 4:3)
:: baseAVI -----> Base o ancho del AVI (sólo si source=AVI)
:: alturaAVI ---> Alto del AVI (sólo si source=AVI)
:: discos ------> Número de discos destino (1 ó 2)
:: media--------> Tamaño del disco (CD80 -> CD 80 min) (CD90 -> CD 90 min)
:: ó Tamaño personalizado en MB
:: imagen ------> YES (Imagen cue/bin con capítulos y logo) - NO (No imagen)
:: interlaced --> OFF (No entrelazado) - TFF (Top field primero) - BFF (Bottom field primero)
:: apagar ------> ON (Apagar al finalizar) - OFF (Mantener el equipo encendido)
::
:: --------------------------- Settings ---------------------------------------------
:: source ------> AVI - DVD
:: directorio --> Folder where VOBs and AC3 are
:: pelicula ----> Short name or movie alias
:: duracion ----> Movie time in minutes
:: aspectRatio -> 4:3 - 16:9 (panoramic) - 4:3LB (panoramic -> LetterBoxed 4:3)
:: baseAVI -----> AVI Width (only for source=AVI)
:: alturaAVI ---> AVI Height (only for source=AVI)
:: discos ------> Target CD number. (1 or 2)
:: media--------> CD type (CD80 -> CD 80 min) (CD90 -> CD 90 min)
:: or custom size in MB
:: imagen ------> YES (Image cue/bin with chapters and logo) - NO (No image)
:: interlaced --> OFF (Not interlaced) - TFF (Top field first) - BFF (Bottom field first)
:: apagar ------> ON (PC shutdown) - OFF (Not PC shutdown)
:: ---------------------------------------------------------------------------------
::
:: (Datos que podemos modificar)
:: (We can modify)
::
Set source=DVD
Set directorio=F:\THE_MATRIX_REVOLUTIONS_D1\VIDEO_TS
Set pelicula=matrix
Set duracion=129
Set aspectRatio=16:9
Set baseAVI=480
Set alturaAVI=256
Set discos=1
Set media=CD80
Set imagen=YES
Set interlaced=OFF
Set apagar=YES
::
:: ----------------------------------------------------------------------------
:: (No tocar a partir de aquí)
:: (Don't change beyond here)
:: ----------------------------------------------------------------------------
:: --------- Proceso completo de codificación KSVCD Express -------------------
:: ----------------------------------------------------------------------------
:: Comprobamos existencia del mateeia prima
::
IF /I '%source%'=='AVI' IF NOT EXIST "%directorio%\%pelicula%.avi" GOTO NOAVI
IF /I '%source%'=='DVD' IF NOT EXIST "%directorio%\VTS_01_1.VOB" GOTO NOVOB
:: --- Aspect Ratio, Overscan and Interlaced ---
:INTERLACED
Set Kerndeint=
Set x=::
IF '%interlaced%'=='BFF' Set Kerndeint=kerndeint=18:0:1:1:0,
IF '%interlaced%'=='TFF' Set Kerndeint=kerndeint=18:0:0:1:0,
IF '%interlaced%'=='OFF' Set Kerndeint=
IF NOT '%interlaced%'=='OFF' Set x=:1:
:: 16/9 por defecto para DVD
Set aspect=1.7777
:: 4:3 LetterBoxed Overscan=2
IF /I '%source%'=='DVD' Set vfLetterBoxed=%Kerndeint%yuvcsp,crop=712:576:4:0,s cale=448:408%x%0:9,expand=480:576:-1:-1
:: 16:9 ó 4:3 Overscan=2
IF /I '%source%'=='DVD' Set vfNormal=%Kerndeint%yuvcsp,crop=720:480:0:0,scale= 720:480::0:9,expand=720:480:0:0
:: 4:3 LetterBoxed por defecto
Set vf=%vfLetterBoxed%
IF '%aspectRatio%'=='4:3' (
Set aspect=1.3333
) ELSE (
Set aspect=1.7777
)
IF '%aspectRatio%'=='4:3LB' (
Set vf=%vfLetterBoxed%
) ELSE (
Set vf=%vfNormal%
)
:: AVIs
IF /I '%source%'=='DVD' GOTO BITRATE
::Calculo del resize del AVI
Set /A x = 424 * %alturaAVI% / %baseAVI%
Set /A y = (576 * %x%) / 324
Set /A c = %y% / 8
Set /A r = %y% - (8 * %c%)
Set /A altura = %y% - r
Set /A baseCrop = %baseAVI% - 10
Set aspect=1.3333
Set vf=%Kerndeint%yuvcsp,pp=hb:100:100/vb,crop=%baseCrop%:%alturaAVI%:5:0,scale=448:%altu ra%::0:9,hqdn3d=10:12:8,expand=480:576:-1:-1
:: ---
:: --- Cálculo del Avg Bitrate ---
:BITRATE
Set tMedia=%media%
Set bitrateAudio=128
IF /I '%discos%'=='2' Set bitrateAudio=160
IF /I '%media%'=='CD80' Set tMedia=800
IF /I '%media%'=='CD90' Set tMedia=900
Set /A audio = (%bitrateAudio% /
* (%duracion% * 60)
Set /A video = ((%tMedia% * 1024 * %discos%) - (10 * 1024)) - %audio%
Set /A avgBitrate = (%video% / (%duracion% * 60)) * 8
Set lmin=1
IF %avgBitrate% GTR 800 Set lmin=0.5
IF %avgBitrate% GTR 1000 Set lmin=0.4
IF %avgBitrate% GTR 1800 Set lmin=0.3
IF %avgBitrate% GTR 3000 Set lmin=0.1
IF %avgBitrate% GTR 4000 Set lmin=0.01
:: --- Log ---
Set log="%directorio%\%pelicula%.log"
echo Log KSVCD Express por Maurus > %log%
echo . >> %log%
echo Fuente: %source% >> %log%
echo Pelicula: %directorio%\%pelicula% >> %log%
echo Duración: %duracion% minutos >> %log%
IF /I '%source%'=='AVI' echo Ancho: %baseAVI% >> %log%
IF /I '%source%'=='AVI' echo Alto: %alturaAVI% >> %log%
echo Discos: %discos% %media% >> %log%
echo Avg Bitrate: %avgBitrate% >> %log%
echo Bitrate sonido: %bitrateAudio% >> %log%
IF /I '%source%'=='DVD'echo Aspect Ratio: %aspectRatio% >> %log%
echo Entrelazado: %interlaced% >> %log%
echo Imagen cue/bin: %imagen% >> %log%
echo . >> %log%
echo . >> %log%
:: --- Comienzan los procesos ---
IF /I '%source%'=='DVD' Set nameFile=VTS_01_1.VOB
IF /I '%source%'=='AVI' Set nameFile=%pelicula%.avi
IF /I '%source%'=='DVD' GOTO PROYECTO
::
:: Si es AVI, comprobamos previamente si vamos a poder extraer el sonido
::
echo Extracción del audio del AVI >> %log%
echo ... >> %log%
echo engines\AVI2WAVCMD %directorio%\%pelicula% %directorio%\%pelicula% >> %log%
engines\AVI2WAVCMD %directorio%\%pelicula% %directorio%\%pelicula% /INFO >> %log%
engines\AVI2WAVCMD %directorio%\%pelicula% %directorio%\%pelicula%
echo ... >> %log%
IF ERRORLEVEL 197 GOTO AUDIOMALO
GOTO VIDEO
:: --- Proyecto DVD2AVI 1.77.3 para extraer el audio AC3 ---
:PROYECTO
time /t >> %log%
echo Creación del proyecto DVD2AVI 1.77.3 (para extraer audio del DVD) >> %log%
echo . >> %log%
echo engines\dvd2avidg -CS=2 -OM=2 -AIF=[%directorio%\%nameFile%] -OF=[%directorio%\%pelicula%] -Exit >> %log%
engines\dvd2avidg -CS=2 -OM=2 -AIF=[%directorio%\%nameFile%] -OF=[%directorio%\%pelicula%] -Exit
echo . >> %log%
:: --- Codificación de video ---
:VIDEO
time /t >> %log%
echo Codificación de video (Pass 1) >> %log%
echo ... >> %log%
echo mencoder.exe -of rawvideo -sws 2 -noskip -nosound -noaspect -noautoexpand -vf %vf% -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2
reme =2
recmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=%l min%:vpass=1:vrc_buf_size=917:vbitrate=%avgBitrate %:vrc_maxrate=2500:aspect=%aspect%:keyint=18:intra _matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34, 37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40 ,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,2 9,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:int er_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,2 8,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32, 34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38 ,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,4 4 -ofps 29.970 "%directorio%\%nameFile%" -o "/dev/null" >> %log%
mencoder.exe -of rawvideo -sws 2 -noskip -nosound -noaspect -noautoexpand -vf %vf% -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2
reme =2
recmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=%l min%:vpass=1:vrc_buf_size=917:vbitrate=%avgBitrate %:vrc_maxrate=2500:aspect=%aspect%:keyint=18:intra _matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34, 37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40 ,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,2 9,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:int er_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,2 8,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32, 34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38 ,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,4 4 -ofps 29.970 "%directorio%\%nameFile%" -o "/dev/null"
echo ... >> %log%
time /t >> %log%
echo Codificación de video (Pass 2) >> %log%
echo ... >> %log%
echo mencoder.exe -of rawvideo -sws 2 -noskip -nosound -noaspect -noautoexpand -vf %vf% -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2
reme =2
recmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=%l min%:vpass=2:vrc_buf_size=917:vbitrate=%avgBitrate %:vrc_maxrate=2500:aspect=%aspect%:keyint=18:intra _matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34, 37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40 ,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,2 9,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:int er_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,2 8,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32, 34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38 ,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,4 4 -ofps 29.970 "%directorio%\%nameFile%" -o "%directorio%\%pelicula%.m2v" >> %log%
mencoder.exe -of rawvideo -sws 2 -noskip -nosound -noaspect -noautoexpand -vf %vf% -ovc lavc -lavcopts vcodec=mpeg2video:vrc_eq=tex:vmax_b_frames=2
reme =2
recmp=2:vstrict=-1:scplx_mask=0.3:vqblur=0:mbqmin=1:vqmin=1:lmin=%l min%:vpass=2:vrc_buf_size=917:vbitrate=%avgBitrate %:vrc_maxrate=2500:aspect=%aspect%:keyint=18:intra _matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34, 37,12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40 ,26,27,29,36,39,38,40,48,27,29,34,37,38,40,48,58,2 9,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79:int er_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,2 8,30,32,20,22,24,26,28,30,32,34,22,24,26,30,32,32, 34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,36,38 ,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,4 4 -ofps 29.970 "%directorio%\%nameFile%" -o "%directorio%\%pelicula%.m2v"
:: --- Codificación de Audio ---
echo ... >> %log%
time /t >> %log%
IF /I '%source%'=='AVI' GOTO AUDIOAVI
echo Codificación de audio para DVD's >> %log%
echo ... >> %log%
FOR %%A IN (%directorio%\*.ac3) DO Set file=%%A
set v_result=%file:*DELAY =%
set delay=%v_result:ms.AC3=%
echo engines\BeSweet -core( -input "%file%" -output "%file%.mp2" -logfilea "%directorio%\%pelicula%.log" -be ) -azid( -s surround2 -c normal -L -3db ) -ota( -g max -d %delay% ) -ssrc( --rate 44100 ) -mp2enc( -m d -b %bitrateAudio% -e ) -profile( ~~~~~ KSVCD Express ~~~~~ ) >> %log%
FOR %%A IN (%directorio%\*.ac3) DO engines\BeSweet -core( -input "%%A" -output "%directorio%\%pelicula%.mp2" -logfilea "%directorio%\%pelicula%.log" -be ) -azid( -s surround2 -c normal -L -3db ) -ota( -g max -d %delay% ) -ssrc( --rate 44100 ) -mp2enc( -m d -b %bitrateAudio% -e ) -profile( ~~~~~ KSVCD Expres ~~~~~ )
GOTO MUX
:AUDIOAVI
echo ... >> %log%
time /t >> %log%
echo Codificacion de WAV extraído del AVI a MP2 >> %log%
echo ... >> %log%
echo engines\BeSweet -core( -input "%directorio%\%pelicula%.wav" -output "%directorio%\%pelicula%.mp2" -logfilea "%directorio%\%pelicula%.log" -be ) -ota( -g max ) -ssrc( --rate 44100 ) -mp2enc( -m d -b %bitrateAudio% -e ) -profile( ~~~~~ KSVCD Expres ~~~~~ ) >> %log%
engines\BeSweet -core( -input "%directorio%\%pelicula%.wav" -output "%directorio%\%pelicula%.mp2" -logfilea "%directorio%\%pelicula%.log" -be ) -ota( -g max ) -ssrc( --rate 44100 ) -mp2enc( -m d -b %bitrateAudio% -e ) -profile( ~~~~~ KSVCD Expres ~~~~~ )
:: --- Multiplexación ---
:MUX
echo ... >> %log%
time /t >> %log%
echo Multiplexación >> %log%
echo ... >> %log%
Set tSize=795
IF /I '%media%'=='CD80' Set tSize=795
IF /I '%media%'=='CD90' Set tSize=895
echo engines\mplex -f 4 -r 0 -v 1 -b 230 -V -p 1 -h -S %tSize% -o "%directorio%\%pelicula%%%d.mpg" "%directorio%\%pelicula%.m2v" "%directorio%\%pelicula%.mp2" >> %log%
engines\mplex -f 4 -r 0 -v 1 -b 230 -V -p 1 -h -S %tSize% -o "%directorio%\%pelicula%%%d.mpg" "%directorio%\%pelicula%.m2v" "%directorio%\%pelicula%.mp2"
:: --- Imagen cue/bin ---
IF /I '%imagen%'=='NO' GOTO FIN
IF NOT EXIST "%directorio%\%pelicula%1.mpg" GOTO FIN
echo ... >> %log%
time /t >> %log%
echo Creando imagen cue/bin con capítulos y logo >> %log%
echo ... >> %log%
echo engines\vcdxbuild -c "%directorio%\%pelicula%1.cue" -b "%directorio%\%pelicula%1.bin" "%directorio%\%pelicula%1.xml" >> %log%
:: Para 1 CD
IF /I '%discos%'=='1' call imagenxml 1 1 %duracion% "%directorio%" "%pelicula%" "logomaurus"
IF /I '%discos%'=='1' (
engines\vcdxbuild -c "%directorio%\%pelicula%1.cue" -b "%directorio%\%pelicula%1.bin" "%directorio%\%pelicula%1.xml"
)
:: Para 2 CDs
IF /I '%discos%'=='2' call imagenxml 1 2 %duracion% "%directorio%" "%pelicula%" "logomaurus1" "InserteCD2"
IF /I '%discos%'=='2' call imagenxml 2 2 %duracion% "%directorio%" "%pelicula%" "logomaurus2"
IF /I '%discos%'=='2' (
engines\vcdxbuild -c "%directorio%\%pelicula%1.cue" -b "%directorio%\%pelicula%1.bin" "%directorio%\%pelicula%1.xml"
)
IF /I '%discos%'=='2' (
engines\vcdxbuild -c "%directorio%\%pelicula%2.cue" -b "%directorio%\%pelicula%2.bin" "%directorio%\%pelicula%2.xml"
)
:: --- Apagado del equipo ---
:FIN
echo ... >> %log%
time /t >> %log%
echo ¡¡¡Fin de proceso!!! >> %log%
IF /I '%apagar%'=='ON' engines\shutdown -u -t 30
GOTO ADIOS
:NOAVI
echo No existe el fichero %directorio%\%pelicula%.avi
GOTO ADIOS
:NOVOB
echo No existe el fichero %directorio%\VTS_01_1.VOB
GOTO ADIOS
:AUDIOMALO
engines\AVI2WAVCMD %directorio%\%pelicula% %directorio%\%pelicula% /INFO
echo El AVI %directorio%\%pelicula%.avi tiene un formato de audio no soportado
GOTO ADIOS
::
:ADIOS
echo .
echo Gracias por usar KSVCD Express - Thanks for using KSVCD Express
::
PAUSE
3.- Deje que terminara de ejecutarse el script por completo, obteniendo el audio en MP2, el video en formato MV1 y el archivo final MPG, ademas de la imagen bin y el archivo cue.
4.- Cuando veo la pelicula comprimida, el delay del audio al principio es poco pero, a medida que avanza la pelicua, éste se va haciendo cada vez mayor.
5.- Gracias por su ayuda.