Créalo o no, mpg123 es un software de reproducción de música de línea de comandos de código abierto capaz de decodificar y reproducir archivos MPEG Audio Layer 1, 2 y 3, conocidos popularmente como MP3, diseñados para ejecutarse por completo en una consola Linux.
Características de un vistazo
Las características clave incluyen una biblioteca de decodificación de audio para MPEG Audio Layer 1, 2 y 3, reproductor de audio en tiempo real para los formatos MPEG 1.0, 2.0 y 2.5, soporte matemático de punto flotante y entero, reproducción de audio de alta calidad y rápida así como soporte para una amplia gama de sistemas operativos Linux y UNIX.
Opciones de línea de comando
Entre las opciones de línea de comandos incorporadas en la aplicación, podemos mencionar la capacidad de escribir salida en un archivo WAV, omitir los primeros n cuadros, reducir la resolución 1: 2 (22 kHz), reproducir cada enésimo marco solamente, mezclar ambos canales (mono), activar teclas de control, reproducción aleatoria (con comodines), leer URL, decodificar canal 0 (izquierda) solamente, usar autenticación HTTP, establecer el búfer de salida, establecer o forzar la frecuencia de muestreo y verificar violaciones de rango.
Debajo del capó y la disponibilidad
Mientras la aplicación está escrita completamente en el lenguaje de programación C, utiliza varias optimizaciones especiales como SSE, 3DNow o ARM, y es compatible con GNU / Linux, BSD, Solaris, AIX, OS / 2, HP-UX, SGI Irix, Sistemas operativos Mac OS X, Microsoft Windows.
Está disponible para descargar como archivo de origen, lo que significa que el usuario debe configurar, compilar e instalar la aplicación a través de la línea de comandos de Linux / UNIX. Sin embargo, puede instalarse fácilmente desde los repositorios de software predeterminados de muchos sistemas operativos Linux.
Línea de fondo
Resumiendo, no tenemos idea de quién será este reproductor de audio de línea de comandos en un mundo lleno de interfaces gráficas modernas, pero estamos bastante seguros de que mpg123 ofrece una muy buena calidad de audio y es extremadamente fácil de usar, incluso si odio la Terminal de Linux.
¿Qué hay de nuevo en esta versión?
- libout123: Reparar los mensajes de error a partir de OUT123_ARG_ERROR (error 261 ).
- mpg123: Se corrigió el manejo del intervalo de ciclo para trabajar con stream desde stdin. (curl | mpg123 --icy-interval = n -)
- libmpg123: Corrige otra lectura no válida y segfault en archivos dañados (fuzzed) con part2_3_length == 0 (set maxband = 1, extraído de la próxima 1.26.0).
Qué hay de nuevo en la versión 1.25.3:
- Prueba de silencio para artsc-config si no está allí.
- Asegúrese de que -static-libgcc de LDFLAGS pase por libtool, corrigiendo compilaciones de Windows de 32 bits (de lo contrario, dependa de la DLL libgcc).
- Repara la compilación con make non-GNU usando rm simple -f en lugar de tonto $ (RM) en el fragmento de archivo make de libout123 / modules.
- Haga que la construcción funcione en iOS, incluido el back-end de coreaudio.
- libmpg123:
- Finalmente, proporcione código de posición independiente para x86 con optimizaciones de ensamblaje. Los textos desaparecieron gracias a Won Kyu Park y Taihei Momma.
- Aclare algún idioma de licencia en archivos que descienden de la optimización original de MMX.
- Corrige la comprobación de desbordamiento del valor de retorno para MPG123_BUFFERFILL.
- Introdujo mpg123_getformat2 () para habilitar el comando FORMAT para que el control genérico no robe MPG123_NEW_FORMAT del bucle de reproducción principal. Se supone que la secuencia LOADPAUSED-FORMAT-PAUSE (play) funciona ahora.
- Habilite las optimizaciones de aarch64 en * BSD de forma predeterminada, también. Siempre puede anular esa estúpida lista blanca del sistema operativo usando --with-optimization, de todos modos.
- El uso del decodificador i486 ahora se desalienta de forma más destacada, en la salida de configuración.
- out123: soluciona el bloqueo estúpido con el modo detallado y la generación de tonos (imprima la cadena si el puntero no es nulo, no si es nulo).
- libout123: mensajes de error más consistentes para módulos dinámicos y heredados (incorporados). A saber, puede obtener una pista sobre cómo elegir un módulo diferente de los integrados para libout123 estáticos.
Qué hay de nuevo en la versión 1.25.0:
- Prueba de silencio para artsc-config si no está allí.
- Asegúrese de que -static-libgcc de LDFLAGS pase por libtool, corrigiendo compilaciones de Windows de 32 bits (de lo contrario, dependa de la DLL libgcc).
- Repara la compilación con make non-GNU usando rm simple -f en lugar de tonto $ (RM) en el fragmento de archivo make de libout123 / modules.
- Haga que la construcción funcione en iOS, incluido el back-end de coreaudio.
- libmpg123:
- Finalmente, proporcione código de posición independiente para x86 con optimizaciones de ensamblaje. Los textos desaparecieron gracias a Won Kyu Park y Taihei Momma.
- Aclare algún idioma de licencia en archivos que descienden de la optimización original de MMX.
- Corrige la comprobación de desbordamiento del valor de retorno para MPG123_BUFFERFILL.
- Introdujo mpg123_getformat2 () para habilitar el comando FORMAT para que el control genérico no robe MPG123_NEW_FORMAT del bucle de reproducción principal. Se supone que la secuencia LOADPAUSED-FORMAT-PAUSE (play) funciona ahora.
- Habilite las optimizaciones de aarch64 en * BSD de forma predeterminada, también. Siempre puede anular esa estúpida lista blanca del sistema operativo usando --with-optimization, de todos modos.
- El uso del decodificador i486 ahora se desalienta de forma más destacada, en la salida de configuración.
- out123: soluciona el bloqueo estúpido con el modo detallado y la generación de tonos (imprima la cadena si el puntero no es nulo, no si es nulo).
- libout123: mensajes de error más consistentes para módulos dinámicos y heredados (incorporados). A saber, puede obtener una pista sobre cómo elegir un módulo diferente de los integrados para libout123 estáticos.
¿Qué hay de nuevo en la versión 1.23.6:
- invoque123_pause () en lugar de out123_stop () en control remoto comando STOP, arreglando la regresión en 1.23.x de no poder reanudar la reproducción con otra CARGA a menos que la nueva pista tenga un formato de audio diferente (error 234)
Qué hay de nuevo en la versión 1.23.5:
- libout123:
- arregla la construcción de portaudio y SDL en win32 (demasiados paréntesis, gracias a Sandro Cumerlato por señalarlo)
- make out123_errcode () devuelve OUT123_BAD_HANDLE como está documentado (agregando ese valor a la enumeración de error, fue documentado pero falta), de nuevo gracias a Sandro
- arregla windows-builds.sh (cotización de shell en la etapa de copia) y agrega algunos bits al encabezado enviado para que se pueda utilizar directamente en MSVC (define ssize_t, error 232)
- no se sobrescribe LIBS en Makefile (la regresión del sistema de compilación en 1.23, gracias a Peter Korsgaard por informar de eso)
- no se imprime el mensaje en respuesta a SIGPIPE, ya que eso podría desencadenar un bloqueo si stderr en sí mismo es el culpable del canal (regresión desde 1.22, error 233)
Qué hay de nuevo en la versión 1.23.3:
- Esta es una versión provisional que incluye la solución para el error 216, evitando la detección indirecta espuria con UTF-16 en los datos de ID3v2.
- Hay algunos cambios interesantes en el tronco esperando su lanzamiento con la próxima versión de la característica, que incluirá libout123 y una corrección general del sistema de compilación (marca no recursiva).
Qué hay de nuevo en la versión 1.22.3:
- Esta es una versión provisional que incluye la solución para el error 216, evitando la detección indirecta espuria con UTF-16 en los datos de ID3v2.
- Hay algunos cambios interesantes en el tronco esperando su lanzamiento con la próxima versión de la característica, que incluirá libout123 y una corrección general del sistema de compilación (marca no recursiva).
¿Qué hay de nuevo en la versión 1.22.1:
- Repara mpg123-id3dump al escribir imágenes divertidas ( manipulado) tipo MIME. El error estúpido en el cálculo de longitud de la extensión de archivo de reserva causó que los archivos basura de la memoria se anexen al nombre del archivo si el tamaño del puntero es menor que 64 bits. Para punteros de 64 bits (o más) fue correcto por accidente.
- Arregla la compilación pedante limpiando la fuente out123, ahora también mostrando realmente la lista de codificación en --longhelp en lugar de posiblemente, de nuevo, escribiendo basura de la memoria allí.
- Ya no enlazaba libmpg123 contra libltdl (error 215).
- Actualiza los puertos MSVC ++ un poco para que funcionen nuevamente.
¿Qué hay de nuevo en la versión 1.21.0:
- Use LL como acceso directo para el comando LOADLIST remote, L ya se tomó (error 210).
- Menos contaminación del espacio de nombres (MPG123_EXPORT en el encabezado en lugar de EXPORT, error 212).
Novedades en la versión 1.20.1:
- El lanzamiento más nuevo hace que el lector de feeds sea más eficiente cuando se salta la basura al descartar los datos de buffers para evitar volver a analizar. El comportamiento anterior interactuó mal con cierta entrada (ver gentoo error 465744).
Qué hay de nuevo en la versión 1.20.0:
- Decodificador optimizado NEON para AArch64 (entorno ARM de 64 bits) ):
- habilitado para --with-cpu = neon64 (solo NEON) o --with-cpu = aarch64 (configuración del tiempo de ejecución entre neon y generic_fpu, como arm_fpu)
- compatible con las cadenas de herramientas aarch64-linux-gnu (de Ubuntu, debian) y Xcode 5
- Agregó un nuevo binario out123 solo con la parte de salida de audio de mpg123. Esto es un precursor para separar dicho código en una biblioteca de salida de audio simple. También permite enchufar algún procesamiento en una tubería antes de alimentar a la salida.
- Impedir opendir (NULL) para el directorio de módulos desconocido al enumerar los módulos.
- algunas correcciones de compilación, entre las que arreglan mpg123-id3dump en Windows
Qué hay de nuevo en la versión 1.18.1:
- No cierre el búfer dos veces con mpg123 -R (elimine el código obsoleto en control_generic ()) y solucione el error 207.
- No te metas con el primer argumento de la línea de comando para extraer el nombre del programa, utiliza una copia en su lugar, soluciona el error 205.
- Evita la salida prematura en el momento en que falla la apertura de una pista en la lista de reproducción y el usuario que desea omitirla (error 206).
- Arreglo del desorden del socket HTTP, también evitando los objetos innecesarios FILE (error 204, parche de Rajeev V. Pillai).
- Corregir el comportamiento de la lista de reproducción en secuencias HTTP lentas, saltando hacia atrás (tecla "d") desde la primera pista permanece en la primera pista (gracias a Rajeev nuevamente, sub-bug del error 206).
- Corrige el error de Frankenstein para no tropezar con las etiquetas ID3v1. Mis disculpas. Como extra, la posición del código en cuestión en el analizador ahora es mucho más lógica.
Qué hay de nuevo en la versión 1.17.0:
- mpg123-id3dump --no-scan; para acelerar
- hide -C parámetro de mpg123 --help cuando no es compatible
- agregó Tinyalsa Output (por Jarno Lehtinen)
- ajustar el sistema de compilación
- algo de cuidado para arreglar compilaciones de Cygwin
Qué hay de nuevo en la versión 1.16.0:
- El nuevo esquema de decodificación de Huffman (configurable, activado por defecto) brinda un buen impulso a mpg123 para convertirlo en el decodificador más rápido en las CPU modernas de nuevo.
- nuevo decodificador AVX
- DCT36 optimizado para montaje para SSE y AVX
- configuraciones añadidas para CPU 3DNow (ext) antiguas (AMD K6) que utilizan el ensamblaje DCT36
- configuraciones añadidas para CPUs antiguas SSE (Pentium M), utilizando C DCT36
- se agregó el comando FORMAT al control genérico
- soporte agregado para marcos ID3v2 APIC
- agregó mpg123-id3dump como compañero oficial para extraer los metadatos (incluida la escritura de la portada del álbum de APIC a los archivos)
- agregó mpg123-strip como acompañante oficial para eliminar la suciedad de las transmisiones MPEG (incluidos los metadatos)
- no elimina datos ID3 justo después de imprimir en control genérico
- cargador de módulos un poco más flexible con relativa MPG123_MODDIR
- Repara la reproducción recortada con la salida de pulseaudio: agota la salida ahora al cerrarse.
- Corrección de salida SDL, a) sin cortar el extremo yb) subdesbordamiento no fatal
- Repara errores obvios en la salida de win32 ... ¿ahora toca el final de las pistas? Necesito que alguien lo pruebe.
- soporte adicional para terminales de pantalla y iris-ansi con --title (como se lo solicita el parche de sf.net user canavan)
- correcciones / mejoras para la salida de audio sgi
- libmpg123: alias apropiados de archivos grandes para los sistemas adecuados (FreeBSD con un one_and-only off_t
- Esto habilita el software del cliente que insiste en definir _FILE_OFFSET_BITS sin sentido.
- guión de envoltura src / mpg123-with-modules para aliviar la molestia de ejecutar mpg123 con módulos sin instalación (configuración MPG123_MODDIR)
- eliminó el código ALSA 0.5 (sin usar durante mucho tiempo, el último bit de solo GPL)
Qué hay de nuevo en la versión 1.14.2:
- Con la serie 1.14, en un intento de mejorar manejar situaciones fuera del disco, el código de escritura WAV cambió y eso rompió la escritura de WAV a la salida estándar (datos en bruto con un solo encabezado WAV en el frente). Esto funcionará nuevamente con la versión actual.
¿Qué hay de nuevo en la versión 1.14.1:
- Este soluciona un error que se descubrió con el (modesto) reorganización del código del analizador. Con el API alimentador, era posible pasar por alto un cambio de formato en la secuencia (dañada), siendo el resultado más grave el buffer de salida asignado demasiado pequeño (pasando de la capa 3 de MPEG con 576 muestras por fotograma a 1152 muestras por fotograma).
Qué hay de nuevo en la versión 1.14.0:
- API libmpg123 versión 36 (ver NOTICIAS.libmpg123)
- Añadir --ignore-streamlength.
- Pero también se ocupan de las transmisiones concatenadas (Frankenstein): no se aplica el corte gapless una vez que se supera el número anunciado de fotogramas.
- Agregue - ricks para la impresión de letras (de USLT en ID3v2).
- Manejo adicional de SIGUSR1 y SIGUSER2 al código de control de terminal, configurable mediante --ctrlusr1 y --ctrlusr2.
- Se agregó una API de bajo nivel (mpg123_framedata (), mpg123_framepos (), almacenamiento en búfer y control de remuestreo).
- Se agregó información sobre el relleno del búfer de entrada a mpg123_getstate ().
- ReplayGain: Intente detectar LAME por debajo de 3.95 para el nivel de referencia diferente de 83 dB (añadiendo un preamplificador de 6 dB). La versión 3.95 sí mismo (no 3.95.1) no puedo detectar. Los valores de ganancia establecidos por el usuario no se tocan.
- Manténgase en silencio sobre la pérdida del depósito cuando ignora los marcos. Ese es el punto (principalmente; -).
- Agregue la nueva / vieja variante WRITE_SAMPLE de MPlayer que hace que el decodificador genérico sea más rápido en las CPU antiguas (x86 al menos). Sin embargo, no está en x86-64 (no está habilitado por defecto allí).
- Manejar fuera del disco en los escritores de archivos (un poco, ver http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- Agregó archivos de proyecto Xcode para compilar libmpg123 en Mac OS e iOS
- Salida de 32 bits para la salida de sndio (parche de Brad Smith).
- La interfaz de control remoto conoce el comando LOADLIST ahora.
- Ahora libera la memoria de metadatos después de la impresión.
- Parte de la limpieza de la documentación, incluidas las correcciones de páginas de manual de quadrispro.
- Se ha vuelto a habilitar la expansión de comodines en Windows (se ha roto con el soporte de nombres de archivos Unicode).
- Repara la sintaxis de tabinit de MMX (gracias a Marcel Muller por señalar eso).
- Repara la salida de audio SGI (se ha roto desde que se cambió a los módulos).
- Repara un comportamiento marginal (mpg123_getformat () desencadenando la lectura innecesaria del siguiente fotograma, posiblemente al fallar MPG123_NEED_MORE).
- El límite de resincronización ahora también sirve para aumentar la cantidad de basura saltada al principio.
- Mejor separación del final de la secuencia y error de lectura (en caso de que no haya ninguna secuencia abierta, incluso).
- No siempre se queja de la búsqueda fallida de encabezado de formato libre (solo con nivel de detalle 3).
Comentarios que no se encuentran