Uwierz lub nie, mpg123 to oprogramowanie odtwarzające muzykę z wiersza poleceń, zdolne do dekodowania i odtwarzania plików MPEG Audio Layer 1, 2 i 3, popularnie zwanych MP3, uruchomione całkowicie w konsoli systemu Linux.
Funkcje na pierwszy rzut oka
Najważniejsze funkcje obejmują bibliotekę dekodowania audio dla MPEG Audio Layer 1, 2 i 3, odtwarzacz audio w czasie rzeczywistym dla formatów MPEG 1.0, 2.0 i 2.5, obsługę zmiennoprzecinkowej i całkowitej matematyki, wysokiej jakości i szybkie odtwarzanie audio, oraz wsparcie dla szerokiej gamy systemów operacyjnych Linux i UNIX.
Opcje wiersza poleceń
Wśród wbudowanych opcji wiersza poleceń aplikacji można wspomnieć o możliwości zapisywania danych wyjściowych do pliku WAV, pomijania pierwszych n ramek, próbki 1: 2 (22 kHz), odtwarzania każdej n-tej ramki, mieszania oba kanały (mono), włącz klawisze kontrolne, odtwarzanie losowe (z symbolami wieloznacznymi), odczytuj adresy URL, dekoduj kanał 0 (tylko lewy), używaj uwierzytelniania HTTP, ustaw bufor wyjściowy, ustaw lub wymusz próbkowanie i sprawdź naruszenia zasięgu.
Pod maską i dostępnością
Chociaż aplikacja jest napisana w całości w języku programowania C, wykorzystuje kilka specjalnych optymalizacji, takich jak SSE, 3DNow lub ARM, i obsługuje systemy GNU / Linux, BSD, Solaris, AIX, OS / 2, HP-UX, SGI Irix, Mac OS X, systemy operacyjne Microsoft Windows.
Jest on dostępny do pobrania jako archiwum źródłowe, co oznacza, że użytkownik musi skonfigurować, skompilować i zainstalować aplikację za pomocą wiersza poleceń systemu Linux / UNIX. Można go jednak łatwo zainstalować z domyślnych repozytoriów oprogramowania wielu systemów operacyjnych Linux.
Dolna linia
Podsumowując, nie mamy pojęcia, kto będzie tym odtwarzaczem audio z linii poleceń w świecie pełnym nowoczesnych graficznych interfejsów użytkownika, ale jesteśmy pewni, że mpg123 oferuje bardzo dobrą jakość dźwięku i jest niezwykle łatwy w użyciu, nawet jeśli Nienawidzę Linux Terminal.
Co nowego w tej wersji:
- libout123: Naprawianie komunikatów o błędach zaczynających się od OUT123_ARG_ERROR (błąd 261 ).
- mpg123: Naprawianie obsługi interakcji --icy-interval do pracy ze strumieniem ze standardowego wejścia. (curl | mpg123 --icy-interval = n -)
- libmpg123: Napraw inny niepoprawny odczyt i segfault na uszkodzonych (zablokowanych) plikach z part2_3_length == 0 (ustaw maxband = 1, wyciągnięty z nadchodzącego 1.26.0).
Co nowego w wersji 1.25.3:
- Test ciszy dla artsc-config, jeśli go tam nie ma.
- Upewnij się, że -static-libgcc od LDFLAGS przechodzi przez libtool, naprawiając 32-bitowe kompilacje systemu Windows (zależnie od biblioteki DLL biblioteki DLL).
- Napraw kompilację z wersją inną niż GNU za pomocą zwykłego rm -f zamiast głupiego $ (RM) w fragmencie fragmentu pliku libout123 / modules.
- Twórz kompilacje w systemie iOS, w tym w backendie coreaudio.
- libmpg123:
- Na koniec podaj kod niezależny od pozycji dla x86 z optymalizacją montażu. The textrels zniknęły dzięki Won Kyu Park i Taihei Momma.
- Wyjaśnij język licencji w plikach pochodzących z oryginalnej optymalizacji MMX.
- Napraw kontrolę przekroczenia wartości zwracanej dla MPG123_BUFFERFILL.
- Wprowadzono mpg123_getformat2 (), aby włączyć polecenie FORMAT dla ogólnej kontroli, nie kradnącą MPG123_NEW_FORMAT z głównej pętli odtwarzania. Sekwencja LOADPAUSED-FORMAT-PAUSE (play) ma teraz działać.
- Włącz domyślnie optymalizacje aarch64 na * BSD. Zawsze możesz przesłonić tę głupią białą listę programów za pomocą --with-optimization.
- Korzystanie z dekodera i486 jest teraz bardziej odradzane, w konfiguracji wyjścia.
- out123: Napraw głupi crash z trybem pełnym i generowaniem tonów (wypisz ciąg, jeśli wskaźnik ma wartość inną niż null, a nie, jeśli jest zerowy).
- libout123: Bardziej spójne komunikaty o błędach dla modułów dynamicznych i starszych (wbudowanych). Mianowicie, otrzymasz podpowiedź, jak wybrać inny moduł niż wbudowany dla statycznego libout123.
Co nowego w wersji 1.25.0:
- Test ciszy dla artsc-config, jeśli go tam nie ma.
- Upewnij się, że -static-libgcc od LDFLAGS przechodzi przez libtool, naprawiając 32-bitowe kompilacje systemu Windows (zależnie od biblioteki DLL biblioteki DLL).
- Napraw kompilację z wersją inną niż GNU za pomocą zwykłego rm -f zamiast głupiego $ (RM) w fragmencie fragmentu pliku libout123 / modules.
- Twórz kompilacje w systemie iOS, w tym w backendie coreaudio.
- libmpg123:
- Na koniec podaj kod niezależny od pozycji dla x86 z optymalizacją montażu. The textrels zniknęły dzięki Won Kyu Park i Taihei Momma.
- Wyjaśnij język licencji w plikach pochodzących z oryginalnej optymalizacji MMX.
- Napraw kontrolę przekroczenia wartości zwracanej dla MPG123_BUFFERFILL.
- Wprowadzono mpg123_getformat2 (), aby włączyć polecenie FORMAT dla ogólnej kontroli, nie kradnącą MPG123_NEW_FORMAT z głównej pętli odtwarzania. Sekwencja LOADPAUSED-FORMAT-PAUSE (play) ma teraz działać.
- Włącz domyślnie optymalizacje aarch64 na * BSD. Zawsze możesz przesłonić tę głupią białą listę programów za pomocą --with-optimization.
- Korzystanie z dekodera i486 jest teraz bardziej odradzane, w konfiguracji wyjścia.
- out123: Napraw głupi crash z trybem pełnym i generowaniem tonów (wypisz ciąg, jeśli wskaźnik ma wartość inną niż null, a nie, jeśli jest zerowy).
- libout123: Bardziej spójne komunikaty o błędach dla modułów dynamicznych i starszych (wbudowanych). Mianowicie, otrzymasz podpowiedź, jak wybrać inny moduł niż wbudowany dla statycznego libout123.
Co nowego w wersji 1.23.6:
- wywołaj out123_pause () zamiast out123_stop () w polecenie STOP zdalnego sterowania, naprawiające regresję w 1.23.x braku możliwości wznowienia odtwarzania z innym LOAD, chyba że nowa ścieżka ma inny format audio (błąd 234)
Co nowego w wersji 1.23.5:
- libout123:
- Napraw kompilację portaudio i SDL na win32 (zbyt wiele nawiasów, dzięki Sandro Cumerlato za wskazanie)
- make out123_errcode () zwraca OUT123_BAD_HANDLE zgodnie z dokumentacją (dodając tę wartość do wyliczenia błędu, została udokumentowana, ale jej brakuje), ponownie dzięki Sandro
- napraw Windows-builds.sh (powłoka powłoki na etapie kopiowania) i dodaj kilka bitów do wysłanego nagłówka, aby był bezpośrednio użyteczny w MSVC (zdefiniuj ssize_t, bug 232)
- brak nadpisywania LIBS w Makefile (kompilacja systemu kompilacji w 1.23, dzięki Peterowi Korsgaardowi za zgłoszenie tego)
- brak drukowania komunikatu w odpowiedzi na SIGPIPE, ponieważ może to spowodować zawieszenie się, jeśli stderr sam jest oszustem (regresja z wersji 1.22, błąd 233)
Co nowego w wersji 1.23.3:
- Jest to wydanie z przerwą, w tym poprawka dla błędu 216, unikając fałszywego wykrywania zastępczego z UTF-16 w danych ID3v2.
- Jest kilka interesujących zmian w bagażniku oczekujących na wydanie z następną wersją funkcji, która będzie zawierała libout123 i ogólne poprawki systemu kompilacji (nierekurencyjna marka).
Co nowego w wersji 1.22.3:
- To jest wersja z przerwami, zawierająca poprawkę dla błędu 216, unikająca fałszywego wykrywania zastępczego z UTF-16 w danych ID3v2.
- Jest kilka interesujących zmian w bagażniku oczekujących na wydanie z następną wersją funkcji, która będzie zawierała libout123 i ogólne poprawki systemu kompilacji (nierekurencyjna marka).
Co nowego w wersji 1.22.1:
- Napraw mpg123-id3dump podczas pisania obrazów ze śmiesznymi ( zmanipulowany) Typ MIME. Głupi błąd w obliczeniach długości rozszerzenia pliku rezerwowego spowodował, że śmieci z pamięci były dołączane do nazwy pliku, jeśli rozmiar wskaźnika jest mniejszy niż 64-bitowy. Dla wskaźników 64-bitowych (lub dłuższych) była ona poprawna przypadkowo.
- Napraw pedantyczną kompilację przez wyczyszczenie źródła out123, również teraz pokazując listę kodowania w -longhelp zamiast ewentualnie, ponownie, zapisując śmieci z pamięci.
- Nie łączenie już libmpg123 z biblioteką libltdl (błąd 215).
- Aktualizuj trochę porty MSVC ++, aby znów działały.
Co nowego w wersji 1.21.0:
- Użyj LL jako skrótu do polecenia zdalnego LOADLIST, L jest już zajęty (błąd 210).
- Mniejsze zanieczyszczenie przestrzeni nazw (MPG123_EXPORT w nagłówku zamiast EXPORT, błąd 212).
Co nowego w wersji 1.20.1:
- Najnowsze wydania sprawiają, że czytnik kanałów jest bardziej wydajny, gdy pomijamy śmieci przez wczesne odrzucanie danych z bufory, aby uniknąć ponownego analizowania. Poprzednie zachowanie miało zły wpływ na pewne dane wejściowe (patrz bug gentoo 465744).
Co nowego w wersji 1.20.0:
- Dodano zoptymalizowany NEON dekoder dla AArch64 (środowisko ARM 64-bitowe ):
- włączone dla --with-cpu = neon64 (tylko NEON) lub --with-cpu = aarch64 (konfiguracja runtime pomiędzy neonem a generic_fpu, jak arm_fpu)
- zgodny z toolchains aarch64-linux-gnu (z Ubuntu, debian) i Xcode 5
- Dodano nowy plik binarny out123 tylko z częścią wyjściową audio mpg123. Jest to prekursor do oddzielania wspomnianego kodu do prostej biblioteki wyjściowej audio. Pozwala również na podłączenie części przetwarzania w rurze przed dostarczeniem do wyjścia.
- Zapobiegaj opendirowi (NULL) dla nieznanego katalogu modułów podczas wymieniania modułów.
- niektóre poprawki do kompilacji, między naprawiającymi mpg123-id3dump w systemie Windows
Co nowego w wersji 1.18.1:
- Nie zamykaj dwa razy bufora z mpg123-R (usuń nieaktualny kod w control_generic ()), naprawiając błąd 207.
- Nie zadzieraj z pierwszym argumentem wiersza poleceń, aby wyodrębnić nazwę programu, użyj zamiast tego kopii, naprawiając błąd 205.
- Zapobiegaj przedwczesnemu wychodzeniu z powodu niepowodzenia otwierania utworu na liście odtwarzania i użytkownika, który chce go pominąć (błąd 206).
- Naprawiono błąd mesy HTTP, unikając niepotrzebnych obiektów FILE (błąd 204, łatka Rajeva V. Pillai).
- Napraw zachowanie listy odtwarzania na powolnych strumieniach HTTP, przeskakiwanie ("klawisz d") z pierwszego utworu pozostaje na pierwszym utworze (dzięki Rajeevowi ponownie, sub-bugowi błędu 206).
- Naprawianie sprawdzania Frankensteina, aby nie potknąć się o znaczniki ID3v1. Przepraszam. Jako bonus, pozycja danego kodu w parserze jest teraz znacznie bardziej logiczna.
Co nowego w wersji 1.17.0:
- mpg123-id3dump --no-scan; dla przyspieszenia
- ukryj -C parametr z mpg123 --help gdy nie jest obsługiwany
- dodane wyjście tinyalsa (przez Jarno Lehtinena)
- kompilacja systemu kompilacji
- trochę dbałości o poprawianie kompilacji Cygwin
Co nowego w wersji 1.16.0:
- Nowy schemat dekodowania Huffmana (konfigurowalny, domyślnie włączony) przynosi miłe wsparcie dla mpg123, aby uczynić z niego najszybszy dekoder na nowoczesnych procesorach.
- nowy dekoder AVX
- Zoptymalizowany pod kątem montażu DCT36 dla SSE i AVX
- dodane konfiguracje dla vintage 3DNow (ext) procesorów (AMD K6) z wykorzystaniem zespołu DCT36
- dodano konfiguracje dla starych procesorów SSE (Pentium M), wykorzystujących C DCT36
- dodano polecenie FORMAT do kontroli ogólnej
- dodano obsługę ramek ID3v2 APIC
- dodał mpg123-id3dump jako oficjalny towarzysz do wyodrębniania danych meta (w tym pisanie okładek albumów z APIC do plików)
- dodał mpg123-strip jako oficjalnego towarzysza do usuwania brudu ze strumieni MPEG (w tym metadanych)
- nie usuwanie danych ID3 zaraz po wydrukowaniu w formancie ogólnym
- Moduł ładujący jest nieco bardziej elastyczny w stosunku do MPG123_MODDIR
- Napraw przycięte odtwarzanie z wyjściem pulseaudio: opróżnianie wyjścia po zamknięciu.
- Naprawianie wyjścia SDL, a) nie rąbanie końca i b) niezakłócony underrun
- Napraw błędy w wynikach Win32 ... czy teraz odtwarza koniec ścieżek? Potrzebujesz kogoś, kto to przetestuje.
- dodano obsługę terminali screen i iris-ansi z opcją --title (zgodnie z monitem od użytkownika sf.net canavan)
- poprawki / rozszerzenia dla wyjścia audio sgi
- libmpg123: właściwe aliasy dużych plików dla odpowiednich systemów (FreeBSD z jednym jedynym off_tem
- Umożliwia to oprogramowanie klienckie, które nalega na definiowanie bezcelowego _FILE_OFFSET_BITS.
- skrypt wrappera src / mpg123-with-modules, aby zmniejszyć ból podczas uruchamiania mpg123 z modułami bez instalacji (ustawienie MPG123_MODDIR)
- usunięto kod ALSA 0.5 (nieużywany dla długiego, ostatniego bitu tylko GPL)
Co nowego w wersji 1.14.2:
- Seria 1.14, próbując poprawić poradzono sobie z sytuacjami poza dyskiem, kod zapisu WAV został zmieniony, a to zepsuło zapis WAV do standardowego wyjścia (surowe dane z jednym nagłówkiem WAV z przodu). To powinno znów działać z bieżącą wersją.
Co nowego w wersji 1.14.1:
- To naprawia błąd, który został odsłonięty za pomocą (skromna) reorganizacja kodu parsera. Dzięki API podajnikowi możliwe było pominięcie zmiany formatu w strumieniu (uszkodzonym), tym trudniejszym wynikiem jest przydzielenie bufora wyjściowego, który jest zbyt mały (przejście z warstwy MPEG 3 z 576 próbkami na ramkę do 1152 próbek na ramkę).
Co nowego w wersji 1.14.0:
- libmpg123 Wersja API 36 (patrz NEWS.libmpg123)
- Dodaj --ignore-streamlength.
- Ale radzimy sobie również z połączonymi strumieniami (Frankenstein): Nie stosuje się cięcia bez przerw po przekroczeniu podanej liczby ramek.
- Dodaj --lyrics do wydruku tekstów (z USLT w ID3v2).
- Dodano obsługę SIGUSR1 i SIGUSER2 do kodu kontrolnego terminala, konfigurowalne za pomocą --ctrlusr1 i --ctrlusr2.
- Dodano niektóre API niskiego poziomu (mpg123_framedata (), mpg123_framepos (), buforowanie i kontrola ponownego próbkowania).
- Dodano informacje o wypełnieniu bufora wejściowego do mpg123_getstate ().
- ReplayGain: Spróbuj wykryć LAME poniżej 3,95 dla różnych poziomów odniesienia 83 dB (dodając przedwzmacniacz 6 dB). Wersja 3.95 sama (nie 3.95.1) Nie mogę wykryć. Wartości wzmocnienia ustawione przez użytkownika nie są dotykane.
- Podczas ignorowania ramek milcz na temat brakującego rezerwuaru bitów. To jest cały punkt (głównie; -).
- Dodaj nowy / stary wariant WRITE_SAMPLE z MPlayera, który sprawia, że dekoder jest szybszy na starszych procesorach (przynajmniej x86). Nie na x86-64 (jednak nie jest domyślnie włączony).
- Obsługa nieużywanych elementów w programach piszących (trochę, zobacz http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- Dodano pliki projektu Xcode do budowania libmpg123 na Mac OS i iOS
- 32-bitowe wyjście dla wyjścia sndio (łatka według Brada Smitha).
- Interfejs zdalnego sterowania zna teraz polecenie LOADLIST.
- Teraz uwalniasz pamięć danych meta po wydruku.
- Trochę czyszczenia dokumentacji, w tym poprawek strony podręcznika przez quadrispro.
- Ponownie włączono rozszerzenie znaków wieloznacznych w systemie Windows (zostało złamane przez obsługę nazw plików w Unicode).
- Napraw składnię tabulatury MMX (dzięki Marcelowi Mullerowi za wskazanie tego).
- Naprawiono wyjście audio SGI (zostało przerwane od czasu przejścia do modułów).
- Napraw pewne zachowanie się prążków (mpg123_getformat () powodujące niepotrzebne czytanie następnej klatki, prawdopodobnie uderzając w fałszywą MPG123_NEED_MORE).
- Limit resynchronizacji umożliwia teraz zwiększenie ilości pomijanych śmieci na początku.
- Lepsza separacja końca strumienia i błąd odczytu (w przypadku, gdy nie ma otwartego strumienia, nawet).
- Nie zawsze narzekaj na nieudane wyszukiwanie nagłówków w formacie wolnym (tylko z poziomem gadatliwości 3).
Komentarze nie znaleziono