Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: ovichan en 3 Mayo 2012, 02:13 am



Título: es posible usar funcion dll en bat??
Publicado por: ovichan en 3 Mayo 2012, 02:13 am
Hola, no soy un gran experto pero al codificar audio mediante archivos bat, me he topado con un problemilla. Para solventarlo tendria  que usar una funcion exportable de una dll llamada nicaudio.dll. Mi pregunta reside en si existe la posibilidad de invocarla en bat y poder usarla en un bucle de codificacion.

Por ahora lo que tengo es:

Código
  1. FOR %%A in (*.wav) do (C:\flac.exe -f -8 %%A)

El problema es que flac no soporta wav de 32bits depth. Lo que necesito es poder usar desde bat es la funcion ConvertAudioTo24bit() de la funcion nicaudio.dll de avisynth

Es posible usando rundll32??

Gracias


Título: Re: es posible usar funcion dll en bat??
Publicado por: Eleкtro en 3 Mayo 2012, 07:25 am
Hola,

No puedo darte una solución a tu problema respecto al funcionamiento de rundll32, Pero creo que para invocar una dll desde fuera del programa (Ya sea con rundll o un vbs), Esta dll debe tener programada unos atributos especiales, Lo mejor que podrias hacer es preguntarle al autor del projecto, O en el foro de preguntas de la web de FLAC avisynth (No se si tiene un foro).

Pero puedes usar SOX para hacer la re-conversión (O cualquier otro conversor con soporte wav, como ffmpeg por ejemplo.):
Código
  1. SOX "audio de 32 bit.wav" -e signed-integer -b 24 "Nuevo audio de 24 Bit.wav"
http://sourceforge.net/projects/sox/files/sox/



Por otro lado, Es posible que la solución en tu caso no séa necesaria, por eso quiero preguntarte:

¿De donde proceden los audios? Es decir: ¿Conviertes CD's a Wav de 32 bit?, ¿Estás convirtiendo archivos mp3 a wav?, ¿O Haces las grabaciones a 32 bit directamente en tu PC?

¿Has comprobado que tu tarjeta de audio soporta 32 bit? ¿Lo pone en las especificaciones de tu tarjeta?

Si la fuente del archivo original no era un .wav, ¿Has comprobado si la profundidad original del archivo era de 32 bit?


Pregunto por estas sencillas razones:

1. El 99% del mundo sigue usando tarjetas de audio limitadas a 16 Bit depth.
 
2. No ganarias ABSOLUTAMENTE NADA si tu tarjeta de audio solo soporta 16-24 bit y tienes un Archivo.WAV en 32 bit.

3. Tampoco ganarias ninguna mejora posible de audio si has convertido un archivo (Del formato que séa) con 16 o 24 Bit depth, A un WAV de 32 Bit.

4. Si estás convirtiendo CD's a archivos WAV de 32 bit es una tonteria, Porque el formato aceptado internacionalmente es de 16 Bit, Todos los cd's de audio están en 16 Bit, Con lo cual tampoco ganarías ninguna mejora.

Obviamente, Si ese es tu caso, Deberias replantearte lo que has hecho hasta ahora, Y tener los archivos WAV en 16 Bit, Así evitarias el problema de tener que reconvertir el archivo a 24 Bit.

Saludos!
 



Título: Re: es posible usar funcion dll en bat??
Publicado por: ovichan en 3 Mayo 2012, 12:15 pm
Gracias por responder.ls audios inicialmente proceden de ac3, y son cecodificados a wav de 24 bitdepth, para su edicion, con eac3to. Tras editarlos en audition y trabajar con ellos en premiere, los exporto a 32bit para codificarlos a flac. Realmente los quiero asi solo para guardarlos si en un futuro los tuviese que reutilizar. Para su uso real, utilizo dolbyac3, tambien desde premiere.
Usar bat era para ahorrar tiempo y no tener que rexportar todo a 24, ya que me habian anteriormente comentado que guardar a 32, no era interesante.

Mi tarjeta de audio es una Realtek ALC889, y solo soporta hasta 24, pero como he dicho no es para su uso sino para al macenar. En cuanto a usar sox, ffmpeg, besweet, megui, avisynth y demas ya sabia de su soporte, solo keria intentar o saber hacerlo desde bat.

El ac3 original es de 16bitdepth segun mediainfo, pero eac3to informa tras el analisis que es 24.

Saludos