Manual de usuario de la aplicación Resize Audio v0.5 Índice Autor La aplicación ha sido programada en C++ por Francisco Javier Rojas durante el mes de agosto de 2015. Correo electrónico para contactar: frojasg1@hotmail.com Introducción La aplicación Resize Audio permite transformar un fichero de audio de entrada en un fichero de audio de salida, cuya duración es la duración original multiplicada por un factor que puede ser mayor o menor que 1. Es una aplicación que se ejecuta desde la interfaz de comandos. Soporta los siguientes formatos de entrada y salida: Entrada: wav, mp3, ac3, dts Salida: mp3, ac3 De momento sólo está disponible la versión de Windows y no es probable que vaya a haber versiones para otras plataformas. Licencia Esta aplicación tiene licencia GPL. Eso quiere decir que su código está abierto para cualquiera que quiera verlo, utilizarlo o modificarlo, siempre que las nuevas aplicaciones que hagan uso de él tengan a su vez licencia GPL. Para más información sobre este tipo de licencias, se puede consultar este enlace: http://www.gnu.org/licenses/gpl-3.0.en.html Cómo bajarse el código Para bajarse el código de la aplicación, así como de las librerías que utiliza, consultar este enlace: https://sourceforge.net/projects/audio-synchonization/ Inicio rápido Para comenzar a utilizar la aplicación, sigue los siguientes pasos: Abre una ventana de interfaz de comandos (Tecla de Windows + R y escribe "cmd" + Return). Muévete al directorio donde está el binario de Resize Audio (estará en el directorio donde has descomprimido el .tar.gz de la aplicación, en el subdirectorio _binary). ejecutando el comando: cd ruta.../_binary. Ejecuta el siguiente comando: PATH=%PATH%;lib Ahora ya podemos ejecutar la aplicación. La aplicación acepta varios parámetros de entrada, que permiten modificar su comportamiento y que serán explicados en puntos posteriores de este manual. Una forma sencilla de invocar a la aplicación podría ser esta: resizeAudioFile.exe "Fichero_de_entrada" "Fichero_de_salida" -factor _factor_ Parámetros En este capítulo se verán los parámetros que puede tomar la aplicación como entrada, así como las posibilidades que hay para rellenarlos. El formato del comando de invocación a la aplicación es este: resizeAudioFile.exe "Fichero_de_entrada" "Fichero_de_salida" [-factor _factor_] [-lowQuality|-highQuality] [-tb entero_inversoDeLaBandaDeTransicionTotal] [-br bitrate_de_la_salida_en_kbps] Los primeros parámetros son obligatorios y tienen que aparecer exactamente en el mismo orden en el que están escritos en la línea anterior. Los corchetes: [ ], indican que el parámetro que hay en su interior es opcional. La barra vertical | indica que o bien aparece la posibilidad de la izquierda, o bien aparece la posibilidad de la derecha, pero no ambas a la vez. Los parámetros opcionales no es necesario que estén ordenados tal y como se indica en la línea de formato del comando. Fichero_de_entrada y Fichero_de_salida Estos parámetros son obligatorios y deben ir en el orden indicado. Fichero_de_entrada y Fichero_de_salida pueden estar entre comillas para incluir la posibilidad de que se incluyan espacios en los nombres de fichero o sus rutas. Pueden incluir paths absolutos o paths relativos hacia los ficheros. Se puede utilizar la opción de completar del intérprete de comandos, escribiendo parte del nombre del fichero, y pulsando una o varias veces el tabulador. Eso se puede repetir para cada directorio, y además normalmente el intérprete de comandos añade automáticamente las comillas en caso de ser necesario cuando se utiliza el tabulador. Los formatos de entrada que reconoce la aplicación, son algunos de los que proporciona la librería ffmpeg. Para cada formato de entrada, la aplicación asigna un formato de salida y esta asignación no puede modificarse. Los formatos de los ficheros de entrada y de salida se emparejan de esta forma: [-factor _factor_] Este parámetro es opcional. Si se omite, se tomará un factor 1 (el audio no se transforma). _factor_ debe substituirse por el factor que se quiera aplicar a la duración. Debe estar en formato anglosajón, es decir, utilizando el . como separador entre la parte entera y la parte decimal. Por ejemplo, para aplicar un factor del 101%, habría que poner como _factor_ 1.01. La invocación al comando quedaría así: resizeAudioFile.exe "Fichero_de_entrada" "Fichero_de_salida" -factor 1.01 La aplicación permite una resolución máxima para el factor de 5 cifras decimales, y aproximará el factor de la entrada dentro de esa resolución (el factor aplicado normalmente será ligeramente diferente del factor de entrada, pero respetando la resolución de 5 dígitos decimales). [-lowQuality|-highQuality] Este parámetro es opcional. Si no está presente, la aplicación se comporta como si se hubiera introducido -highQuality. Para seleccionar la calidad, se debe introducir uno y sólo uno de los parámetros. -lowQuality. Cuando se utiliza este parámetro, la calidad de la interpolación es menor para las altas frecuencias. Utilizar este parámetro hace que para el filtrado de interpolación se utilice el filtro paso bajo ideal con una ventana rectangular, que tiene menos calidad que la opción de -highQuality, pero es el doble de rápida que esa. -highQuality. Cuando se utiliza este parámetro, la calidad de la interpolación es mayor para las altas frecuencias. Utilizar este parámetro hace que para el filtrado de interpolación se utilice el filtro paso bajo ideal con una ventana de Hamming, que tiene más calidad que la opción de -lowQuality, pero es el doble de lenta que esa. [-tb entero_inversoDeLaBandaDeTransicionTotal] Este parámetro es opcional. En caso de que no aparezca entre los parámetros de entrada del comando de invocación a la aplicación se tomarán los siguientes valores por defecto, en función de la frecuencia de muestreo de la señal de audio: En el caso de que la frecuencia de muestreo sea diferente de 44100 Hz y diferente de 48000 Hz, en ese caso se ha supuesto un valor para este parámetro igual a 6, aunque a ciegas, y es posible que ese valor no sea apropiado. En caso de que la frecuencia sea diferente de 44100 Hz y diferente de 48000 Hz, habría que incluir este parámetro indicando un valor apropiado para este parámetro. Valores mayores de este parámetro, dan bandas de transición menores para los filtros paso bajo, y por lo tanto dan mejor calidad. Sin embargo, el tiempo empleado en el procesamiento de las muestras de audio, es proporcional a este parámetro, por lo que si se dobla el valor de este parámetro, se dobla el tiempo de procesamiento de las muestras de audio. Existe una fórmula para calcular un buen valor para este parámetro: entero_inversoDeLaBandaDeTransicionTotal = Fm / 4 / ( Fm / 2 - AnchoDeBandaSeñalDeAudio ) Donde Fm es la frecuencia de muestreo. Recordad que la aplicación espera un valor entero para este parámetro. Por ejemplo: Audio con frecuencia de muestreo = 8000 Hz ancho de banda de la señal = 3800 Hz Entonces entero_inversoDeLaBandaDeTransicionTotal =8000 / 4 / ( 8000 / 2 - 3800 ) = 2000 / 200 = 10 Para este ejemplo el comando de invocación a la aplicación quedaría así: resizeAudioFile.exe "Fichero_de_entrada" "Fichero_de_salida" -factor 1.01 -tb 10 [-br bitrate_de_la_salida_en_kbps] Este parámetro es opcional, y si no se especifica, se utilizará el valor por defecto. El valor por defecto para este parámetro depende del formato del fichero de audio de entrada: Como puede apreciarse en la tabla, cuando el formato de salida es igual al de entrada el bitrate por defecto de salida es el bitrate de entrada. Cuando el formato de salida difiere del de entrada, el bitrate por defecto es el máximo permitido para el formato de salida. Si se necesitan bitrates específicos diferentes de los de por defecto, habrá que utilizar este parámetro. Como ejemplo podemos ver el comando de invocación a la aplicación para transformar un fichero .dts en un fichero .ac3 con bitrate de 384 kbps: resizeAudioFile.exe "entrada.dts" "salida.ac3" -br 384 Teoría en la que se basa la aplicación Para ver la teoría en la que se basa la aplicación, consultar el directorio: ...\_docs\theory Agradecimientos - A los creadores de la librería ffmpeg. - A los creadores de las librerías en las que se basa ffmpeg. - Al creador de la librería FOBS4JMF (), recubrimiento de la librería ffmpeg que simplifica mucho su uso. Sin estas librerías (un trabajo monstruoso), el desarrollo de la pequeña aplicación de Resize Audio no habría sido posible. Enlaces http://frojasg1.com http://fobs.sourceforge.net/index.html