Che ci crediate o no, mpg123 è un software di riproduzione musicale open source in grado di decodificare e riprodurre file MPEG Audio Layer 1, 2 e 3, conosciuti popolarmente come MP3, progettati per eseguire interamente in una console Linux.
Caratteristiche a colpo d'occhio
Le caratteristiche principali includono una libreria di decodifica audio per MPEG Audio Layer 1, 2 e 3, riproduttore audio in tempo reale per i formati MPEG 1.0, 2.0 e 2.5, supporto matematico in virgola mobile e intera, riproduzione audio veloce e di alta qualità, così come il supporto per una vasta gamma di sistemi operativi Linux e UNIX-like.
Opzioni della riga di comando
Tra le opzioni di riga di comando incorporate nell'applicazione, possiamo citare la possibilità di scrivere l'output in un file WAV, saltare i primi n frame, downsample 1: 2 (22 kHz), riprodurre solo ogni n'th frame, mixare entrambi i canali (mono), abilitare i tasti di controllo, riprodurre in ordine casuale (con caratteri jolly), leggere URL, decodificare il canale 0 (sinistra), utilizzare l'autenticazione HTTP, impostare il buffer di output, impostare o forzare il samplerate e controllare le violazioni degli intervalli.
Sotto il cofano e disponibilità
Sebbene l'applicazione sia scritta interamente nel linguaggio di programmazione C, utilizza diverse ottimizzazioni speciali come SSE, 3DNow o ARM e supporta GNU / Linux, BSD, Solaris, AIX, OS / 2, HP-UX, SGI Irix, Mac OS X, sistemi operativi Microsoft Windows.
È disponibile per il download come archivio sorgente, il che significa che l'utente deve configurare, compilare e installare l'applicazione tramite la riga di comando Linux / UNIX. Tuttavia, può essere facilmente installato dai repository software predefiniti di molti SO Linux.
Linea di fondo
Riassumendo, non abbiamo idea di chi sarà questo lettore audio da linea di comando in un mondo pieno di moderne interfacce utente grafiche, ma siamo certi che mpg123 offre una qualità audio molto buona ed è estremamente facile da usare anche se odio il terminale Linux.
Novità in questa versione:
- libout123: corregge i messaggi di errore a partire da OUT123_ARG_ERROR (bug 261 ).
- mpg123: corregge la gestione di --icy-interval per lavorare con lo streaming da stdin. (curl | mpg123 --icy-interval = n -)
- libmpg123: correzione di un'altra lettura non valida e segfault su file danneggiati (fuzzed) con part2_3_length == 0 (set maxband = 1, estratto da imminente 1.26.0).
Novità nella versione 1.25.3:
- Test del silenzio per artsc-config, se non è presente.
- Accertati che -static-libgcc di LDFLAGS passi attraverso libtool, risolvendo i build di Windows a 32 bit (altrimenti dipende da libgcc DLL).
- Correggere build con make non GNU usando plain rm -f invece di silly $ (RM) in libout123 / modules makefile fragment.
- Fai funzionare le build su iOS, incluso il backend coreaudio.
- libmpg123:
- Fornisci infine il codice indipendente dalla posizione per x86 con le ottimizzazioni degli assiemi. I textrels sono andati via grazie a Won Kyu Park e Taihei Momma.
- Chiarire alcuni linguaggi di licenza nei file che discendono dall'ottimizzazione MMX originale.
- Correzione del controllo di overflow del valore di ritorno per MPG123_BUFFERFILL.
- Introdotto mpg123_getformat2 () per abilitare il comando FORMAT per il controllo generico che non ruba MPG123_NEW_FORMAT dal loop di riproduzione principale. La sequenza LOADPAUSED-FORMAT-PAUSE (riproduzione) dovrebbe funzionare ora.
- Abilita le ottimizzazioni aarch64 su * BSD anche per impostazione predefinita. Puoi comunque ignorare quella whitelist del SO stupido usando comunque --with-optimization.
- L'uso del decodificatore i486 è ora scoraggiato in modo più evidente, nell'output di configurazione.
- out123: corregge il crash stupido con la modalità dettagliata e la generazione del tono (stampa la stringa se il puntatore non è nullo, non se è nullo).
- libout123: messaggi di errore più coerenti per moduli dinamici e legacy (integrati). Vale a dire, si ottiene un suggerimento su come scegliere un modulo diverso da quello predefinito per una libout statica123.
Novità nella versione 1.25.0:
- Test del silenzio per artsc-config, se non è presente.
- Accertati che -static-libgcc di LDFLAGS passi attraverso libtool, risolvendo i build di Windows a 32 bit (altrimenti dipende da libgcc DLL).
- Correggere build con make non GNU usando plain rm -f invece di silly $ (RM) in libout123 / modules makefile fragment.
- Fai funzionare le build su iOS, incluso il backend coreaudio.
- libmpg123:
- Fornisci infine il codice indipendente dalla posizione per x86 con le ottimizzazioni degli assiemi. I textrels sono andati via grazie a Won Kyu Park e Taihei Momma.
- Chiarire alcuni linguaggi di licenza nei file che discendono dall'ottimizzazione MMX originale.
- Correzione del controllo di overflow del valore di ritorno per MPG123_BUFFERFILL.
- Introdotto mpg123_getformat2 () per abilitare il comando FORMAT per il controllo generico che non ruba MPG123_NEW_FORMAT dal loop di riproduzione principale. La sequenza LOADPAUSED-FORMAT-PAUSE (riproduzione) dovrebbe funzionare ora.
- Abilita le ottimizzazioni aarch64 su * BSD anche per impostazione predefinita. Puoi comunque ignorare quella whitelist del SO stupido usando comunque --with-optimization.
- L'uso del decodificatore i486 è ora scoraggiato in modo più evidente, nell'output di configurazione.
- out123: corregge il crash stupido con la modalità dettagliata e la generazione del tono (stampa la stringa se il puntatore non è nullo, non se è nullo).
- libout123: messaggi di errore più coerenti per moduli dinamici e legacy (integrati). Vale a dire, si ottiene un suggerimento su come scegliere un modulo diverso da quello predefinito per una libout statica123.
Novità nella versione 1.23.6:
- chiama out123_pause () invece di out123_stop () in comando STOP del telecomando, che fissa la regressione in 1.23.x di non essere in grado di riprendere la riproduzione con un altro LOAD a meno che la nuova traccia non abbia un formato audio differente (bug 234)
Novità nella versione 1.23.5:
- libout123:
- correggi build di portaudio e SDL su win32 (troppe parentesi, grazie a Sandro Cumerlato per averlo indicato)
- make out123_errcode () restituisce OUT123_BAD_HANDLE come documentato (aggiungendo quel valore all'errore enum, è stato documentato ma mancante), ancora una volta grazie a Sandro
- correggi windows-builds.sh (shell quoting in copying stage) e aggiungi alcuni bit all'header spedito per renderlo direttamente utilizzabile in MSVC (define ssize_t, bug 232)
- nessuna sovrascrittura di LIBS in Makefile (costruire regressione di sistema in 1.23, grazie a Peter Korsgaard per averlo segnalato)
- nessuna stampa del messaggio in risposta a SIGPIPE, in quanto ciò potrebbe innescare un blocco se lo stesso stderr è il colpevole inviato (regressione da 1.22, bug 233)
Novità nella versione 1.23.3:
- Questa è una versione stop-gap che include la correzione per bug 216, evitando il rilevamento di spurie surrogate con UTF-16 nei dati ID3v2.
- Ci sono alcuni cambiamenti interessanti nel trunk in attesa di rilascio con la prossima versione, che includerà libout123 e fixup del sistema di generazione generale (make non ricorsivo).
Novità nella versione 1.22.3:
- Questa è una versione stop-gap che include la correzione per il bug 216, che evita il rilevamento di spurie surrogate con UTF-16 nei dati ID3v2.
- Ci sono alcuni cambiamenti interessanti nel trunk in attesa di rilascio con la prossima versione, che includerà libout123 e fixup del sistema di generazione generale (make non ricorsivo).
Novità nella versione 1.22.1:
- Correzione mpg123-id3dump durante la scrittura di immagini con caratteri divertenti ( manipolato) tipo MIME. Stupido errore nel calcolo della lunghezza dell'estensione del file di fallback causato dalla posta indesiderata dalla memoria aggiunta al nome file se la dimensione del puntatore è inferiore a 64 bit. Per i puntatori a 64 bit (o più lunghi) è stato corretto per sbaglio.
- Correggere la generazione pedante eliminando la fonte esterna123, mostrando ora anche la lista di codifica in --longhelp anziché, eventualmente, ancora scrivendo junk dalla memoria.
- Non si collega più libmpg123 contro libltdl (bug 215).
- Aggiorna le porte MSVC ++ un po 'per farle funzionare di nuovo.
Novità nella versione 1.21.0:
- Utilizzare LL come collegamento per il comando remoto LOADLIST, L è già preso (bug 210).
- Meno inquinamento nello spazio dei nomi (MPG123_EXPORT nell'intestazione invece di EXPORT, bug 212).
Novità nella versione 1.20.1:
- I nuovi releas rendono il lettore di feed più efficiente quando salta la posta indesiderata eliminando precocemente i dati da buffer per evitare ri-analisi. Il comportamento precedente ha funzionato male con determinati input (vedi bug gentoo 465744).
Novità nella versione 1.20.0:
- Aggiunto decodificatore ottimizzato NEON per AArch64 (ambiente ARM a 64 bit ):
- abilitato per --with-cpu = neon64 (solo NEON) o --with-cpu = aarch64 (configurazione runtime tra neon e generic_fpu, come arm_fpu)
- compatibile con toolchain aarch64-linux-gnu (da Ubuntu, debian) e Xcode 5
- Aggiunto il nuovo binario out123 solo con la parte di uscita audio di mpg123. Questo è un precursore per separare detto codice in una semplice libreria di output audio. Permette anche di collegare alcune elaborazioni in un tubo prima di passare all'output.
- Previene opendir (NULL) per la directory dei moduli sconosciuti quando si elencano i moduli.
- alcune build fix, tra quelle che hanno risolto mpg123-id3dump su Windows
Novità nella versione 1.18.1:
- Non chiudere il buffer due volte con mpg123 -R (cancella il codice obsoleto in control_generic ()), correggendo l'errore 207.
- Non scherzare con il primo argomento della riga di comando per estrarre il nome del programma, usa invece una copia, risolvendo il bug 205.
- Previene l'uscita prematura dal momento del fallimento dell'apertura di una traccia nella playlist e l'utente che desidera ignorarlo (bug 206).
- Correzione del pasticcio di socket HTTP, evitando anche inutili oggetti FILE (bug 204, patch di Rajeev V. Pillai).
- Correggi il comportamento della playlist su flussi HTTP lenti, saltando indietro (tasto 'd') dalla prima traccia rimane nella prima traccia (grazie a Rajeev di nuovo, sub-bug del bug 206).
- Correggi il controllo di Frankenstein per non inciampare sui tag ID3v1. Mie scuse. Come bonus, la posizione del codice in questione nel parser è ora molto più logica.
Novità nella versione 1.17.0:
- mpg123-id3dump --no-scan; per accelerare
- nascondi il parametro -C da mpg123 --help quando non è supportato
- ha aggiunto Tinyalsa Output (di Jarno Lehtinen)
- costruisci il tweaking del sistema
- alcuni si preoccupano di correggere le build Cygwin
Novità nella versione 1.16.0:
- Il nuovo schema di decodifica di Huffman (configurabile, attivato per impostazione predefinita) offre una buona spinta a mpg123 per renderlo nuovamente il decoder più veloce sulle moderne CPU.
- nuovo decoder AVX
- DCT36 ottimizzato per l'assemblaggio per SSE e AVX
- aggiunte configurazioni per CPU 3DNow (ext) vintage (AMD K6) che utilizzano l'assembly DCT36
- aggiunte configurazioni per CPU SSE vintage (Pentium M), utilizzando C DCT36
- ha aggiunto il comando FORMAT al controllo generico
- aggiunto il supporto per i frame APIC ID3v2
- ha aggiunto mpg123-id3dump come compagno ufficiale per estrarre i metadati (compresa la scrittura di copertine degli album da APIC ai file)
- ha aggiunto mpg123-strip come compagno ufficiale per eliminare lo sporco dagli stream MPEG (compresi i metadati)
- non elimina i dati ID3 subito dopo la stampa nel controllo generico
- caricatore di moduli un po 'più flessibile con MPG123_MODDIR relativo
- Corregge la riproduzione smorzata con l'uscita pulseaudio: drenando l'uscita ora alla chiusura.
- Correzione dell'output di SDL, a) non sminuire la fine eb) underrun non fatale
- Correggi errori evidenti nell'output di win32 ... ora riproduce la fine delle tracce? Hai bisogno di qualcuno per testarlo.
- aggiunto il supporto per i terminali screen e iris-ansi con --title (come richiesto dalla patch da sf.net user canavan)
- correzioni / miglioramenti per l'uscita audio sgi
- libmpg123: alias di file di grandi dimensioni appropriati per sistemi appropriati (FreeBSD con un one-and-only off_t
- Questo abilita il software client che insiste sulla definizione di _FILE_OFFSET_BITS inutili.
- script wrapper src / mpg123-with-modules per alleviare il dolore dell'esecuzione di mpg123 con i moduli senza installazione (impostazione MPG123_MODDIR)
- rimosso il codice ALSA 0.5 (non usato per il long time, ultimo bit GPL-only)
Novità nella versione 1.14.2:
- Con la serie 1.14, nel tentativo di migliorare gestire le situazioni out-of-disk, il codice di scrittura WAV è stato modificato e questo ha rotto la scrittura di WAV sullo standard output (dati grezzi con una singola intestazione WAV in primo piano). Questo funzionerà di nuovo con la versione corrente.
Novità nella versione 1.14.1:
- Questo risolve un bug che è stato scoperto con il (modesta) riorganizzazione del codice parser. Con l'API feeder, è stato possibile perdere un cambio di formato nel flusso (danneggiato), il risultato più grave essendo il buffer di output allocato troppo piccolo (passaggio da MPEG layer 3 con 576 campioni per frame a 1152 campioni per frame).
Novità nella versione 1.14.0:
- libmpg123 API versione 36 (vedi NEWS.libmpg123)
- Aggiungi --ignore-streamlength.
- Ma gestisci anche i flussi concatenati (Frankenstein): non applicando il taglio gapless una volta superato il numero annunciato di frame.
- Aggiungi l'opzione --lyrics per la stampa dei testi (da USLT in ID3v2).
- Aggiunta la gestione di SIGUSR1 e SIGUSER2 al codice di controllo del terminale, configurabile tramite --ctrlusr1 e --ctrlusr2.
- Aggiunti alcuni API di basso livello (mpg123_framedata (), mpg123_framepos (), controllo di buffering e resampling).
- Sono state aggiunte informazioni sul riempimento del buffer di input a mpg123_getstate ().
- ReplayGain: prova a rilevare LAME sotto 3.95 per il diverso livello di riferimento di 83 dB (aggiungendo un preamplificatore di 6 dB). Versione 3.95 stessa (non 3.95.1) Non riesco a rilevare. I valori di guadagno impostati dall'utente non vengono toccati.
- Non parlare del serbatoio bit mancante quando ignori i frame. Questo è il punto (per lo più; -).
- Aggiungi la nuova / vecchia variante WRITE_SAMPLE di MPlayer che rende il decodificatore generico più veloce su CPU meno recenti (almeno x86). Non su x86-64, però (non è abilitato per impostazione predefinita lì).
- Gestisci l'out-of-disk nei file writer (un po ', vedi http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- Aggiunti i file di progetto Xcode per creare libmpg123 su Mac OS e iOS
- Uscita a 32 bit per l'output sndio (patch di Brad Smith).
- L'interfaccia di controllo remoto riconosce il comando LOADLIST ora.
- Ora liberando la memoria dei metadati dopo la stampa.
- Alcune operazioni di pulizia della documentazione, comprese le correzioni manpage di quadrispro.
- Espansione jolly con nuova attivazione su Windows (interrotta dal supporto del nome file unicode).
- Sintassi del tabinit di MMX (grazie a Marcel Muller per averlo indicato)
- Risolto l'output audio SGI (rotto da quando è stato modificato in moduli).
- Correzione del comportamento marginale (mpg123_getformat () che attiva la lettura del fotogramma successivo inutile, probabilmente colpendo falso MPG123_NEED_MORE).
- Il limite di risincronizzazione ora serve anche ad aumentare la quantità di posta indesiderata saltata all'inizio.
- Migliore separazione dell'estremità del flusso e errore di lettura (nel caso in cui non ci sia flusso aperto, pari).
- Non lamentarti sempre della ricerca dell'intestazione in formato libero non riuscita (solo con il livello di dettaglio 3).
I commenti non trovato