Este fin de semana en un curso el profesor comentaba que los ficheros mp3 se degradaban con el uso y terminaban dando problemas como cortes y que era mejor usar otros formatos como WAV o FLAC. Me sorprendió lo comentado, ya que según mi entendimiento, cuando abres un fichero mp3, este se carga en memoria (RAM) y desde ahí se realiza todo el proceso de descompresión.
Así que el objetivo de este post es el de comprobar y demostrar lo comentado. Esto también me sirve para corroborar a nivel de perito informático qué ocurre con la reproducción de ficheros de audio, vídeo y fotografías (el concepto es el mismo).
Para ello voy a usar un script que reproduzca 100 veces un clip de audio y compruebe en cada reproducción el hash del fichero.
Antes de empezar voy a instalar sox y libsox-fmt-mp3 para reproducir el mp3 en consola
# apt install sox libsox-fmt-mp3
Y voy a usar el siguiente script
$ vi play_mp3_and_check_hash.sh #!/bin/bash AUDIO_FILE=duck_quack.mp3 for ((i=1;i<=100;i++)); do SUM=`md5sum ${AUDIO_FILE}` echo "Loop number: ${i}, hash is: ${SUM}" play -q ${AUDIO_FILE} 2>/dev/null done
Le doy permisos y lo ejecuto
$ chmod +x play_mp3_and_check_hash.sh $ ./play_mp3_and_check_hash.sh Loop number: 1, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 2, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 3, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 4, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 5, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 [...] Loop number: 97, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 98, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 99, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3 Loop number: 100, hash is: 50c8fa8d674e6598951ab69bf2596c5d duck_quack.mp3
Y la conclusión es que, efectivamente, al reproducir el fichero mp3 100 veces no habido ningún tipo de alteración en él. Así que el profesor es posible que en algún momento se encontrase con algún fichero mp3 corrupto (normalmente ocurre cuando las transferencias no terminan del todo) o que incluso el dispositivo que usó cuando se encontró con el problema tuviese problemas con la RAM.
¿Qué ocurre con un fichero mp3 transferido “a medias”?
Es una duda que me ha surgido en la anterior conclusión, así que he cogido el audio anterior y simplemente lo he dividido en dos. Después lo he reproducido para ver si funcionaba
$ split -n2 duck_quack.mp3 $ mv xaa{,.mp3}; mv xab{,.mp3} $ play xaa.mp3 play WARN alsa: can't encode 0-bit Unknown or not applicable xaa.mp3: File Size: 37.1k Bit Rate: 193k Encoding: MPEG audio Channels: 2 @ 16-bit Samplerate: 44100Hz Replaygain: off Duration: 00:00:01.54 In:98.5% 00:00:01.52 [00:00:00.02] Out:66.8k [ | ] Hd:1.0 Clip:0 Done. $ play xab.mp3 play WARN alsa: can't encode 0-bit Unknown or not applicable play WARN mp3-util: MAD lost sync xab.mp3: File Size: 37.1k Bit Rate: 192k Encoding: MPEG audio Channels: 2 @ 16-bit Samplerate: 44100Hz Replaygain: off Duration: 00:00:01.54 In:98.1% 00:00:01.52 [00:00:00.03] Out:66.8k [ | ] Clip:0 Done. $ play duck_quack.mp3 play WARN alsa: can't encode 0-bit Unknown or not applicable duck_quack.mp3: File Size: 74.1k Bit Rate: 192k Encoding: MPEG audio Channels: 2 @ 16-bit Samplerate: 44100Hz Replaygain: off Duration: 00:00:03.08 In:99.2% 00:00:03.06 [00:00:00.03] Out:135k [ | ] Hd:1.0 Clip:0 Done.
El primer audio xaa.mp3 se reproduce correctamente, el segundo, xab.mp3 también pero genera un error.
Y listos, dudas resueltas :)
¿Por qué usar wav y flac en lugar de mp3?
En el curso que estoy haciendo, lo común es empezar a usar altavoces un poco más tochos que los que solemos usar en el escritorio o en casa. MP3 es un formato que se vale de la compresión mediante la pérdida de calidad del audio. Básicamente, lo que se hace es cortar las frecuencias más altas y más bajas, dejando solo las centrales. Esto hace que cuando se usan equipos de audio mas potentes, los bajos o el brillo de las canciones diminuyan. Por este motivo, en el caso de querer pinchar música con equipos más potentes, para que no se pierda toda la experiencia se recomienda hacer uso de otros formatos de archivos de audio con menos compresión y en el caso de querer usar mp3 lo suyo es usar ficheros mp3 con compresión 320Kbps, 256kbps, como mucho 192kbps. Por debajo de los 128kbps incluso con unos altavoces normaluchos ya se puede empezar a notar esta pérdida.
Gracias Rodrigo ;)
Hoy en día con opus yo apostaría a usar dicho formato en vez de mp3 y de formatos sin perdidas flac o wavpack