
Estoy usando macOS 10.3.6 (High Sierra) y hace un tiempo tenía una caja de 4 CD con música, extraje las pistas a MP3 y simplemente almacené los archivos en mi sistema. Tuve que etiquetar y agregar metadatos manualmente a cada una de las más de 100 pistas (no preguntes) y también me deshice de los CD originales hace un tiempo (tampoco preguntes), por lo que no puedo volver a copiarlos fácilmente. a ellos.
Así que aquí está el problema: Aparentemente, la herramienta MP3 que usaba en ese momento agregaba una fracción de segundo "pop" al comienzo de cada pista. No me di cuenta, o no presté atención, en ese momento, pero cada una de las más de 100 pistas tiene ese pop molesto justo al comienzo de la pista.
Leí este hilo en Stack Overflow, "Haga clic en el sonido al principio cuando use LAME” y si bien el consejo es sólido (explica cómo a veces LAME puede codificar accidentalmente el encabezado de un archivo de audio como audio puro), la realidad es que las soluciones presentadas me obligarían a transmitir el MP3 ya codificado a través de algo comofseek
y luego volver a codificar el MP3 (también conocido como transcodificarlo), lo cual está lejos de ser ideal.
Entonces, ¿hay alguna manera de recortar aproximadamente 1/8 de segundo de estos MP3 ya codificados para eliminar el "pop" y evitar la transcodificación de los MP3?
Estoy buscando específicamente una solución relativamente simple basada en macOS que, como máximo, solo requeriría la instalación de una nueva herramienta (si es necesario) a través de Homebrew. No pido un script completo, pero al menos una herramienta y un consejo de configuración que me indiquen la dirección correcta.
Respuesta1
Bien, logré resolver esto usando la magia de FFmpeg (que ya instalé en macOS a través de Homebrew). Específicamente el-ss
(también conocido como: búsqueda) parámetro¡Junto con la copy
opción aplicada a la transmisión de audio, funciona de maravilla! El comando se puede resumir en esto:
ffmpeg -ss 0.125 -i "input.mp3" -acodec copy "output.mp3"
Configurar -ss
to 0.125
y luego simplemente especificar la entrada y salida con un copy
set to -acodec
es todo lo que hay que hacer.
Y como, como se explica en la pregunta, en mi caso tengo más de 100 archivos con los que lidiar, creé un script Bash simple que encontrará todos los MP3 que deberían tener 1/8 del audio de apertura recortado y los volcará en un mp3/
subdirectorio. ¡Espero que esto ayude a alguien en una situación similar!
find -E "path/to/audio/files" -type f -iregex ".*\.(MP3)$" |\
while read full_audio_filepath
do
# Break up the full audio filepath stuff into different directory and filename components.
audio_dirname=$(dirname "${full_audio_filepath}");
audio_basename=$(basename "${full_audio_filepath}");
audio_filename="${audio_basename%.*}";
# Set the MP3 directory.
mp3_dirpath="${audio_dirname}/mp3";
mp3_filepath="${mp3_dirpath}/${audio_filename}.mp3";
# Create the child MP3 directory.
mkdir -p "${mp3_dirpath}";
# And here is where the magic happens.
ffmpeg -y -v quiet -ss 0.125 -i "$full_audio_filepath" -acodec copy "$mp3_filepath" < /dev/null;
done