[BATCH] [APORTE] Auto Music Converter 3.0 (Automatiza conversiones a MP3)

Iniciado por Eleкtro, 16 Octubre 2012, 15:47 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Auto Music Converter es un script de uso personal para automatizar conversiones masivas de audio, a MP3 de "X" bitrate, en cualquier directorio simplemente pinchando click derecho sobre el mismo.

SOLO ES COMPATIBLE CON WINDOWS 7 (x64)






- Explicación detallada de para que sirve el script:

Imaginemos que tenemos una carpeta (con o sin subcarpetas) llena de archivos de música, de distintos formatos y a distintos bitrates...

Nosotros queremos que el bitrate general de esos archivos no supere por ejemplo los "192 kbps", osea, que en esa carpeta puedan haber archivos con bitrate inferior al indicado (192) PERO NO SUPERIOR AL INDICADO (192)...

Entonces el script comparará el bitrate de todos los archivos en esa carpeta con el bitrate indicado, y si encuentra algún archivo con bitrate MAYOR al indicado (192), lo convertirá a MP3 con el bitrate indicado (192).

PD: El script no afecta a archivos que tengan un bitrate inferior al indicado, ya que es una tontería convertir un archivo de bitrate inferior a superior...






Auto Music Converter es la renovación de mi antiguo script Audio Bitrate Changer http://foro.elhacker.net/empty-t322340.0.html
(Optimizado, simplificado, con más formatos soportados, y ahora es totálmente customizable)

El script usa el convertidor por línea de comandos (coreconverter.exe) de dbPoweramp y aparte depende de los siguientes programas:

  • colous
  • FART
  • mediainfo
  • mp3gain
  • mp3val
  • nircmd

Formatos soportados:

  • AIF/AIFF
  • APE
  • FLA/FLAC
  • M4A
  • MP3
  • OGG
  • W64
  • WAV
  • WMA
  • WV

PD: Está todo incluido en el instalador y no hay que instalar nada de lo mencionado manualmente.






- Explicación de las opciones más importantes del script:

SET "MAX_BITRATE=192"
Esto significa que el script buscará archivos que tengan bitrate MAYOR de 192, y si encuentra alguno MAYOR lo convertirá a MP3 de 192 bitrate.
Se puede cambiar el valor por: 128 | 160 | 192 | 224 | 256 | 320

Set "QUALITY=0"
Indica la calidad de conversión del MP3. El valor máximo es 0, el mínimo 9.

Set "BITRATE_MODE=--cbr"
Indica el modo de bitrate. CBR = bitrate constante, ABR = Average bitrate, V = Variable bitrate.

Set "Normalize=YES"
Indica si se le aplicará una ganancia (no destructiva) al MP3. para desactivarlo escribir "NO"

Set "GAIN=5"
Indica la ganancia sobre 10 que se le aplica. el valor máximo es 10.
5 equivale a 94 db en MP3Gain.





- Algunas imagenes:
















- DESCARGA:



PD: El instalador crea un acceso directo en el menú inicio para modificar las opciones manualmente en el bloc de notas.





- El script:

Código (dos) [Seleccionar]
@echo off

:: ###############################
:: #                             #
:: #  Auto Music Converter v3.0  #
:: #  A.   M.    C.              #
:: #                             #
:: ###############################
::
:: By Elektro H@cker

REM Este script busca archivos de audio que tengan un bitrate superior a "X" kbps y convierte esos archivos a formato MP3 de "X" kbps.
REM
REM Formatos soportados:
REM AIF | AIFF | APE | FLA | FLAC | M4A | MP3 | OGG | W64 | WAV | WMA | WV

:: ###################
:: #                 #
:: #  CONFIGURACIÓN  #
:: #                 #
:: ###################
::
:: Script options
::
SET "MAX_BITRATE=192" & REM 128|160|192|224|256|320
::
Set "FORMATS=*.AIF;*.AIFF;*.APE;*.FLA;*.FLAC;*.M4A;*.MP3;*.OGG;*.W64;*.WAV;*.WMA;*.WV"
Set "CONVERTED_PATH=%Temp%\BitrateChanger_PATH_%RANDOM%.txt"
Set "INDEX=%Temp%\BitrateChanger_INDEX_%RANDOM%.txt"
Set "LIST=%Temp%\BitrateChanger_LIST_%RANDOM%.txt"
Set "RESUMEONERROR=YES"
Set "AUTOEND=YES"
Set /A "Num=0", "Rate=0", "Scanned=0"
::
:: Encoder options
::
Set "EFFECTS=-dspeffect1="Preserve Source Attributes" -dspeffect2="Delete Source File=" -dspeffect3="Delete Destination File on Error=""
Set "PROFILE=slow"       & REM fast|normal|slow
Set "QUALITY=0"          & REM (MAX) 0-9 (MIN)
Set "BITRATE_MODE=--cbr" & REM --abr|-V (0-9)
SET "CHANNELS=auto"      & REM mono|stereo|joint stereo|forced joint stereo|dual channels
Set "PRIORITY=normal"    & REM idle|low|normal|high
Set "OTHER=-noidtag --noreplaygain"
::
:: Gain options
Set "Normalize=YES"
Set "GAIN=5"
::
:: :: :: :: :: :: :: :: :: :: :: :: ::

CALL :FILEEXIST "colous.exe"
CALL :FILEEXIST "coreconverter.exe"
CALL :FILEEXIST "mediainfo.exe"
CALL :FILEEXIST "mp3gain.exe"
CALL :FILEEXIST "mp3val.exe"
CALL :FILEEXIST "nircmd.exe"

:START
Title "Auto Music Converter %CD%"
Mode con cols=30 lines=3
Color 07
CD "%D%" >nul 2>&1
DEL /Q "%LIST%" >nul 2>&1
Echo+
IF /I "%~1" EQU "RECURSIVE" (Set "RECURSIVE=/S")
Colous writesec "[7] Buscando archivos"    & nircmd wait 300 & cls & echo+
Colous writesec "[7] Buscando archivos."   & nircmd wait 300 & cls & echo+
Colous writesec "[7] Buscando archivos.."  & nircmd wait 300 & cls & echo+
Colous writesec "[7] Buscando archivos..." & nircmd wait 250

:INDEX
DIR /B %RECURSIVE% %FORMATS% 1> "%INDEX%" 2>NUL || (Goto :NOMUSIC)
FOR /F %%# in ('Find /V /C "" ^< "%INDEX%"') do (set "TOTAL=%%#")

:FIND_BITRATE
Mode con cols=30 lines=3
FOR /F "tokens=*" %%# in ('DIR /B %RECURSIVE% %FORMATS%') do (
cls
Echo+
Call set /a scanned+=1
Call Colous writesec "[7] Buscando archivos... [14]%%Scanned%%[7]/[14]%TOTAL%"
IF "%MAX_BITRATE%" EQU "128" (mediainfo "%%#" "--Inform=General;%%BitRate%%" | FINDSTR "^129... ^1[3-9][0-9]... ^[2-9]..... ^[1-9]......"     >nul && (CALL :CONVERT "%%#"))
IF "%MAX_BITRATE%" EQU "160" (mediainfo "%%#" "--Inform=General;%%BitRate%%" | FINDSTR "^16[1-9]... ^1[7-9][0-9]... ^[2-9]..... ^[1-9]......" >nul && (CALL :CONVERT "%%#"))
IF "%MAX_BITRATE%" EQU "192" (mediainfo "%%#" "--Inform=General;%%BitRate%%" | FINDSTR "^19[3-9]... ^[2-9]..... ^[1-9]......"                 >nul && (CALL :CONVERT "%%#"))
IF "%MAX_BITRATE%" EQU "224" (mediainfo "%%#" "--Inform=General;%%BitRate%%" | FINDSTR "^22[5-9]... ^2[3-9][0-9]... ^[3-9]..... ^[1-9]......" >nul && (CALL :CONVERT "%%#"))
IF "%MAX_BITRATE%" EQU "256" (mediainfo "%%#" "--Inform=General;%%BitRate%%" | FINDSTR "^25[7-9]... ^2[6-9][0-9]... ^[3-9]..... ^[1-9]......" >nul && (CALL :CONVERT "%%#"))
IF "%MAX_BITRATE%" EQU "320" (mediainfo "%%#" "--Inform=General;%%BitRate%%" | FINDSTR "^32[1-9]... ^3[3-9][0-9]... ^[4-9]..... ^[1-9]......" >nul && (CALL :CONVERT "%%#"))
)
Goto :END

:CONVERT
POPD
PUSHD "%~dp1"
Title "Auto Music Converter: %~nx1"
Mode con cols=80 lines=25
cls
echo+
FOR /F "tokens=*" %%%% in ('mediainfo "%~1" "--Inform=General;%%BitRate/String%%"') do (set "Rate=%%~%%")
Colous writesec "[8]%~dp1"
Echo+
Colous writesec "[7] Archivo :[6] %~nx1"
Colous writesec "[7] Bitrate :[6] %RATE:~0,-5% [8]>[2] %MAX_BITRATE%"
Echo+
Colous writesec "[8]________________________________________________________________________________"
coreconverter.exe -infile="%~nx1" -outfile="%~n1.mp3" -convert_to="mp3 (Lame)" %EFFECTS% -encoding="%PROFILE%" -b %MAX_BITRATE% %BITRATE_MODE% --extracli="-q %QUALITY%" %OTHER% -channels="%CHANNELS%" -priority="%PRIORITY%" && set /a "num+=1" && Echo "%~nx1">> "%LIST%" || (CALL :ERROR "%~1")
IF /I "%NORMALIZE%" EQU "YES" (
Echo+
Colous writesec "[2] Aplicando una ganancia de %GAIN%/10 al archivo..."
mp3gain /c /r /d %GAIN% "%~n1.mp3" >nul 2>&1
)
Title "Auto Music Converter %CD%"
DEL /Q "%temp%\%~nx1.txt" >nul 2>&1
Mode con cols=30 lines=3
GOTO:EOF

:ERROR
CLS
MODE con cols=60 lines=9
color 0c
Title Auto Music Converter... ERROR "%~nx1"
Echo+
Colous writesec "[12] No se ha podido convertir el siguiente archivo:"
Echo+
Colous writesec "[8] %CD%\[14]%~nx1"
IF /I NOT "%RESUMEONERROR%" EQU "YES" (PAUSE)
Timeout /T 60
Mode con cols=30 lines=3
color 07
IF /I "%~x1" EQU ".MP3" (
mp3val "%~1" -f           >nul 2>&1
DEL /Q "%~1.bak"          >nul 2>&1
DEL /Q "%temp%\%~nx1.txt" >nul 2>&1
CALL :CONVERT "%~1" || (GOTO:EOF)
)
GOTO:EOF

:FILEEXIST
IF NOT EXIST "%WINDIR%\System32\%~1" (
color 0c
Echo ERROR
Echo Necesitas el programa %* para utilizar este script...
Pause&Exit
)
GOTO :EOF

:NOMUSIC
mode con lines=3 cols=49
Title Auto Music Converter... NO MUSIC
echo+
Colous writesec "[7] La carpeta no contiene archivos de audio."           & nircmd wait 500 & cls & echo+
Colous writesec "[7] La carpeta no contiene archivos de audio.  [8]3..."  & nircmd wait 500 & cls & echo+
Colous writesec "[7] La carpeta no contiene archivos de audio.  [8]2.."   & nircmd wait 500 & cls & echo+
Colous writesec "[7] La carpeta no contiene archivos de audio.  [8]1."    & nircmd wait 500 & cls & echo+
Colous writesec "[7] Bye.                                       [8]0"     & nircmd wait 500
EXIT

:END
IF DEFINED RECURSIVE (Echo %D% > "%CONVERTED_PATH%") ELSE (CD > "%CONVERTED_PATH%")
set Num2=%num%
Set /a Num2+=11
Title Auto Music Converter...
If exist "%LIST%" (
cls
color 2
echo+
If %Num2% GEQ 40 (
mode con cols=70 lines=44
for /f "tokens=*" %%a in ('Type "%CONVERTED_PATH%"') do (Title %num% archivos convertidos. "%%a")
FART.exe -q "%LIST%" \" --remove
REM "
sort "%LIST%" | MORE /E /C
) ELSE (
mode con cols=70 lines=%num2%
Echo+
Colous writesec "[7] Se han convertido [10]%num%[7] archivo(s)..."
Echo+
for /f "tokens=*" %%a in ('Type "%CONVERTED_PATH%"') do (Colous writesec "[8] %%a\")
Echo+
FART.exe -q "%LIST%" \" --remove
REM "
sort "%LIST%"
)
DEL /Q "%LIST%"           >nul 2>&1
DEL /Q "%CONVERTED_PATH%" >nul 2>&1
DEL /Q "%INDEX%"          >nul 2>&1
echo+
Colous writesec "[7] Presiona una tecla para salir del programa..."
IF /I NOT "%AUTOEND%" EQU "YES" (PAUSE & EXIT) ELSE (TIMEOUT /T 60)
) ELSE (
mode con lines=3 cols=65 | MORE
Colous writesec "[7] No se ha encontrado ningun audio superior a +%MAX_BITRATE% kbps."           & nircmd wait 500 & cls & echo+
Colous writesec "[7] No se ha encontrado ningun audio superior a +%MAX_BITRATE% kbps.  [8]3..."  & nircmd wait 500 & cls & echo+
Colous writesec "[7] No se ha encontrado ningun audio superior a +%MAX_BITRATE% kbps.  [8]2.."   & nircmd wait 500 & cls & echo+
Colous writesec "[7] No se ha encontrado ningun audio superior a +%MAX_BITRATE% kbps.  [8]1."    & nircmd wait 500 & cls & echo+
Colous writesec "[7] Bye.                                                    [8]0"     & nircmd wait 500
DEL /Q "%CONVERTED_PATH%" >nul 2>&1
DEL /Q "%INDEX%" >nul 2>&1
)

EXIT


Que lo disfruten!