Το mpg123 είναι ένα λογισμικό αναπαραγωγής μουσικής γραμμής εντολών ανοιχτού κώδικα ικανό να αποκωδικοποιεί και να αναπαράγει αρχεία MPEG Audio Layer 1, 2 και 3, τα οποία είναι ευρέως γνωστά ως MP3, σχεδιασμένα για τρέχει εξ ολοκλήρου σε μια κονσόλα Linux.
Χαρακτηριστικά με μια ματιά
Τα βασικά χαρακτηριστικά περιλαμβάνουν μια βιβλιοθήκη αποκωδικοποίησης ήχου για το MPEG Audio Layer 1, 2 και 3, αναπαραγωγής ήχου σε πραγματικό χρόνο για τις μορφές MPEG 1.0, 2.0 και 2.5, υποστήριξη πλέγματος με κυμαινόμενο σημείο και ακέραιο, υψηλή ποιότητα και γρήγορη αναπαραγωγή ήχου, καθώς και υποστήριξη για ένα ευρύ φάσμα λειτουργικών συστημάτων Linux και UNIX.
Επιλογές γραμμής εντολών
Μεταξύ των ενσωματωμένων επιλογών γραμμής εντολών της εφαρμογής, μπορούμε να αναφέρουμε την ικανότητα εγγραφής εξόδου σε ένα αρχείο WAV, να παραλείψετε πρώτα τα n καρέ, το downsample 1: 2 (22 kHz), να παίξετε κάθε n'th frame, mix και τα δύο κανάλια (μονοφωνικά), επιτρέπουν τα πλήκτρα ελέγχου, αναπαραγωγή με τυχαία σειρά (με μπαλαντέρ), διαβάζουν τις διευθύνσεις URL, αποκωδικοποιούν μόνο το κανάλι 0 (αριστερά), χρησιμοποιούν έλεγχο ταυτότητας HTTP, ρυθμίζουν το buffer εξόδου, p>
Κάτω από την κουκούλα και τη διαθεσιμότητα
Ενώ η εφαρμογή είναι γραμμένη εξ ολοκλήρου στη γλώσσα προγραμματισμού C, χρησιμοποιεί διάφορες ειδικές βελτιστοποιήσεις όπως SSE, 3DNow ή ARM και υποστηρίζει GNU / Linux, BSD, Solaris, AIX, OS / 2, HP-UX, SGI Irix, Mac OS X, λειτουργικά συστήματα Microsoft Windows.
Είναι διαθέσιμο για λήψη ως αρχείο προέλευσης, το οποίο σημαίνει ότι ο χρήστης πρέπει να διαμορφώσει, να μεταγλωττίσει και να εγκαταστήσει την εφαρμογή μέσω της γραμμής εντολών Linux / UNIX. Ωστόσο, μπορεί εύκολα να εγκατασταθεί από τις προεπιλεγμένες αποθήκες λογισμικού πολλών λειτουργικών συστημάτων Linux.
Συμπέρασμα
Συνοψίζοντας, δεν έχουμε ιδέα ποιος θα είναι αυτός ο ακουστικός παίκτης γραμμής εντολών σε έναν κόσμο γεμάτο από σύγχρονες γραφικές διεπαφές χρηστών, αλλά είμαστε αρκετά βέβαιοι ότι το mpg123 προσφέρει πολύ καλή ποιότητα ήχου και είναι εξαιρετικά εύκολο στη χρήση ακόμα και αν
Τι είναι καινούργιο σε αυτή την έκδοση:
- libout123: ).
- mpg123: Διόρθωση - χειρισμός διαστήματος για εργασία με ροή από stdin. (curl | mpg123 --icy-interval = n -)
- libmpg123: Διορθώστε μια άλλη μη έγκυρη ανάγνωση και segfault στα κατεστραμμένα αρχεία με part2_3_length == 0 (ορίστε maxband = 1, τραβηγμένο από το επερχόμενο 1.26.0).
Τι νέο υπάρχει στην έκδοση 1.25.3:
- Δοκιμή σιωπής για το artsc-config αν δεν υπάρχει.
- Βεβαιωθείτε ότι το static-libgcc από το LDFLAGS μεταφέρεται μέσω του libtool, καθορίζοντας τα 32 bit των Windows (εξαρτάται από το DLL libccc διαφορετικά).
- Διορθώστε την κατασκευή με μη-GNU μάρκα χρησιμοποιώντας απλό rm -f αντί για ανόητο $ (RM) στο fragment makefile libout123 / modules.
- Κάντε εργασίες δημιουργίας στο iOS, συμπεριλαμβανομένου του backup της coreaudio.
- libmpg123:
- Τέλος, παρέχετε κώδικα ανεξάρτητο από τη θέση x86 με βελτιστοποιήσεις συναρμολόγησης. Τα textrels έχουν φύγει χάρη στο Won Kyu Park και το Taihei Momma.
- Αποσαφηνίστε κάποια γλώσσα άδειας χρήσης σε αρχεία που κατεβαίνουν από την αρχική βελτιστοποίηση MMX.
- Επιδιόρθωση ελέγχου υπερχείλισης επιστροφής για το MPG123_BUFFERFILL.
- Παρουσιάστηκε το mpg123_getformat2 () για να ενεργοποιήσει την εντολή FORMAT για τον γενικό έλεγχο που δεν κλέβει το MPG123_NEW_FORMAT από τον κύριο βρόχο αναπαραγωγής. Η ακολουθία LOADPAUSED-FORMAT-PAUSE (παιχνίδι) υποτίθεται ότι λειτουργεί τώρα.
- Ενεργοποιήστε επίσης τις βελτιστοποιήσεις aarch64 στο * BSD από προεπιλογή. Μπορείτε πάντα να αντικαταστήσετε αυτό το ηλίθιο κατάλογο επιτρεπτών λειτουργιών με τη χρήση - με-βελτιστοποίηση, ούτως ή άλλως.
- Η χρήση του αποκωδικοποιητή i486 αποθαρρύνεται πλέον περισσότερο, στην έξοδο των παραμέτρων.
- out123: Διορθώστε την ηλίθια συντριβή με τη λειτουργία verbose και την παραγωγή τόνων (εκτυπώστε τη συμβολοσειρά αν ο δείκτης είναι μηδενικός, όχι αν είναι null).
- libout123: Πιο σταθερά μηνύματα σφάλματος για δυναμικές και παλαιότερες (ενσωματωμένες) ενότητες. Συγκεκριμένα, μπορείτε να υποδείξετε πώς αν επιλέξετε διαφορετική ενότητα από τις ενσωματωμένες για ένα static libout123.
Τι νέο υπάρχει στην έκδοση 1.25.0:
- Δοκιμή σιωπής για το artsc-config αν δεν υπάρχει.
- Βεβαιωθείτε ότι το static-libgcc από το LDFLAGS μεταφέρεται μέσω του libtool, καθορίζοντας τα 32 bit των Windows (εξαρτάται από το DLL libccc διαφορετικά).
- Διορθώστε την κατασκευή με μη-GNU μάρκα χρησιμοποιώντας απλό rm -f αντί για ανόητο $ (RM) στο fragment makefile libout123 / modules.
- Κάντε εργασίες δημιουργίας στο iOS, συμπεριλαμβανομένου του backup της coreaudio.
- libmpg123:
- Τέλος, παρέχετε κώδικα ανεξάρτητο από τη θέση x86 με βελτιστοποιήσεις συναρμολόγησης. Τα textrels έχουν φύγει χάρη στο Won Kyu Park και το Taihei Momma.
- Αποσαφηνίστε κάποια γλώσσα άδειας χρήσης σε αρχεία που κατεβαίνουν από την αρχική βελτιστοποίηση MMX.
- Επιδιόρθωση ελέγχου υπερχείλισης επιστροφής για το MPG123_BUFFERFILL.
- Παρουσιάστηκε το mpg123_getformat2 () για να ενεργοποιήσει την εντολή FORMAT για τον γενικό έλεγχο που δεν κλέβει το MPG123_NEW_FORMAT από τον κύριο βρόχο αναπαραγωγής. Η ακολουθία LOADPAUSED-FORMAT-PAUSE (παιχνίδι) υποτίθεται ότι λειτουργεί τώρα.
- Ενεργοποιήστε επίσης τις βελτιστοποιήσεις aarch64 στο * BSD από προεπιλογή. Μπορείτε πάντα να αντικαταστήσετε αυτό το ηλίθιο κατάλογο επιτρεπτών λειτουργιών με τη χρήση - με-βελτιστοποίηση, ούτως ή άλλως.
- Η χρήση του αποκωδικοποιητή i486 αποθαρρύνεται πλέον περισσότερο, στην έξοδο των παραμέτρων.
- out123: Διορθώστε την ηλίθια συντριβή με τη λειτουργία verbose και την παραγωγή τόνων (εκτυπώστε τη συμβολοσειρά αν ο δείκτης είναι μηδενικός, όχι αν είναι null).
- libout123: Πιο σταθερά μηνύματα σφάλματος για δυναμικές και παλαιότερες (ενσωματωμένες) ενότητες. Συγκεκριμένα, μπορείτε να υποδείξετε πώς αν επιλέξετε διαφορετική ενότητα από τις ενσωματωμένες για ένα static libout123.
Τι νέο υπάρχει στην έκδοση 1.23.6:
- κλήση out123_pause εντολή STOP του απομακρυσμένου ελέγχου, καθορίζοντας την παλινδρόμηση στο 1.23.x να μη μπορεί να συνεχίσει την αναπαραγωγή με άλλο LOAD εκτός αν το νέο κομμάτι έχει διαφορετική μορφή ήχου (σφάλμα 234)
Τι νέο υπάρχει στην έκδοση 1.23.5:
- libout123:
- καθορίστε την κατασκευή του portaudio και του SDL στο win32 (πάρα πολλές παρενθέσεις, χάρη στον Sandro Cumerlato για την επισήμανση του)
- κάνει out123_errcode () επιστρέφει OUT123_BAD_HANDLE όπως τεκμηριώνεται (προσθέτοντας αυτή την τιμή στο σφάλμα enum, τεκμηριώνεται αλλά λείπει), και πάλι χάρη στην Sandro
- να καθορίσετε τα παράθυρα-builds.sh (το κέλυφος παραθέτουμε στο στάδιο της αντιγραφής) και να προσθέσουμε μερικά bit στην κεφαλίδα αποστολής για να το κάνουμε άμεσα χρησιμοποιήσιμο στο MSVC (καθορίστε ssize_t, σφάλμα 232)
- χωρίς αντικατάσταση του LIBS στο Makefile (δημιουργία κλίσης συστήματος στο 1,23, χάρη στον Peter Korsgaard για την αναφορά αυτού)
- καμία εκτύπωση μηνύματος σε απάντηση στο SIGPIPE, καθώς αυτό θα μπορούσε να προκαλέσει ένα hang up εάν ο ίδιος ο stderr είναι ο σωστός ένοχος (παλινδρόμηση από 1.22, σφάλμα 233)
Τι νέο υπάρχει στην έκδοση 1.23.3:
- για το σφάλμα 216, αποφεύγοντας την παραπλανητική ανίχνευση υποκατάστατων με UTF-16 σε δεδομένα ID3v2.
- Υπάρχουν κάποιες ενδιαφέρουσες αλλαγές στον κορμό που περιμένει απελευθέρωση με την επόμενη έκδοση χαρακτηριστικών, η οποία θα περιλαμβάνει το libout123 και τη γενική σταθεροποίηση του συστήματος build (μη επαναλαμβανόμενη μάρκα).
Τι νέο υπάρχει στην έκδοση 1.22.3:
- Πρόκειται για μια απελευθέρωση gap-stop που περιλαμβάνει την επιδιόρθωση για το σφάλμα 216, αποφεύγοντας την παραπλανητική ανίχνευση υποκατάστατων με UTF-16 σε δεδομένα ID3v2.
- Υπάρχουν κάποιες ενδιαφέρουσες αλλαγές στον κορμό που περιμένει απελευθέρωση με την επόμενη έκδοση χαρακτηριστικών, η οποία θα περιλαμβάνει το libout123 και τη γενική σταθεροποίηση του συστήματος build (μη επαναλαμβανόμενη μάρκα).
Τι είναι καινούργιο στην έκδοση 1.22.1: Fix mpg123-id3dump όταν γράφετε εικόνες με αστεία χειραγώγηση) τύπου MIME. Ελαττωματικό σφάλμα στον υπολογισμό μήκους της επέκτασης αρχείου καταστροφής επέφερε σκουπίδια από τη μνήμη που επισυνάπτονται στο όνομα αρχείου αν το μέγεθος του δείκτη είναι μικρότερο από 64 bit. Για δείκτες 64 bit (ή περισσότερο) ήταν σωστό από λάθος.
Τι νέο υπάρχει στην έκδοση 1.21.0:
- Χρησιμοποιήστε LL ως συντόμευση για LOADLIST έχει ήδη ληφθεί (bug 210).
- Λιγότερη ρύπανση χώρου ονομάτων (MPG123_EXPORT στην κεφαλίδα αντί EXPORT, σφάλμα 212).
Τι νέο υπάρχει στην έκδοση 1.20.1:
- Οι πιο πρόσφατες απελευθερώσεις καθιστούν τον αναγνώστη τροφοδοσίας αποτελεσματικότερο όταν παρακάμπτονται τα σκουπίδια με την πρόωρη απόρριψη δεδομένων buffers για να αποφύγετε την εκ νέου ανάλυση. Η προηγούμενη συμπεριφορά αλληλεπίδρασε άσχημα με συγκεκριμένες εισόδους (δείτε το σφάλμα του gentoo 465744).
- Προστέθηκε NEON βελτιστοποιημένος αποκωδικοποιητής για το AArch64 ):
- είναι ενεργοποιημένη για --with-cpu = neon64 (NEON μόνο) ή --with-cpu = aarch64 (διαδρομή χρόνου εκτέλεσης μεταξύ neon και generic_fpu, όπως arm_fpu)
- συμβατό με τις εργαλειομηχανές aarch64-linux-gnu (από Ubuntu, debian) και Xcode 5
- Προστέθηκε νέο δυαδικό out123 μόνο με το τμήμα εξόδου ήχου του mpg123. Πρόκειται για πρόδρομο για τον διαχωρισμό του εν λόγω κώδικα σε απλή βιβλιοθήκη εξόδου ήχου. Επιτρέπει επίσης τη σύνδεση με κάποια επεξεργασία σε ένα σωλήνα πριν από την τροφοδοσία στην έξοδο.
- Αποκλείστε το opendir (NULL) για τον άγνωστο κατάλογο μονάδων κατά την εισαγωγή ενοτήτων.
- μερικές διορθώσεις δημιουργίας, μεταξύ αυτών που καθορίζουν το mpg123-id3dump στα Windows
Τι νέο υπάρχει στην έκδοση 1.18.1:
- Μην κλείνετε το buffer δύο φορές με mpg123-R (διαγράψτε τον παλιό κώδικα στο control_generic ()), καθορίζοντας το σφάλμα 207.
- Μην ανακατεύετε με το πρώτο όρισμα της γραμμής εντολών για να εξαγάγετε το όνομα του προγράμματος, χρησιμοποιήστε αντίγραφο αντίγραφο και διορθώστε το σφάλμα 205.
- Αποτρέψτε την πρόωρη έξοδο σχετικά με το χρονοδιάγραμμα της αδυναμίας ανοίγματος ενός κομματιού στη λίστα αναπαραγωγής και του χρήστη που επιθυμεί να το παρακάμψει (σφάλμα 206).
- Διόρθωση του χάσματος υποδοχής HTTP, αποφεύγοντας επίσης περιττά αντικείμενα FILE (σφάλμα 204, patch από τον Rajeev V. Pillai).
- Διόρθωση της συμπεριφοράς της λίστας αναπαραγωγής στις αργές ροές HTTP, το άλμα πίσω από το πρώτο κομμάτι παραμένει στο πρώτο κομμάτι (χάρη στον Rajeev και το υπο-σφάλμα bug 206).
- Διορθώστε το Frankenstein να μην σκοντάψετε πάνω από τις ετικέτες ID3v1. Συγγνώμη. Ως μπόνους, η θέση του σχετικού κώδικα στον αναλυτή είναι πλέον πολύ πιο λογική.
Τι νέο υπάρχει στην έκδοση 1.17.0:
- mpg123-id3dump - για επιτάχυνση
- Hide parameter από mpg123 --help όταν δεν υποστηρίζεται
- Προστέθηκε tinyalsa Έξοδος (από τον Jarno Lehtinen)
- να χτίσετε την προσαρμογή του συστήματος
- Κάποια φροντίδα για την εγκατάσταση του Cygwin χτίζει
Τι νέο υπάρχει στην έκδοση 1.16.0:
- Το νέο πρόγραμμα αποκωδικοποίησης Huffman (ρυθμιζόμενο, ενεργοποιημένο από προεπιλογή) προσφέρει ωραία ώθηση στο mpg123 για να γίνει ο γρηγορότερος αποκωδικοποιητής στις σύγχρονες CPUs ξανά.
- νέος αποκωδικοποιητής AVX
- DCT36 βελτιστοποιημένο για το SSE και AVX
- προστέθηκαν config για επεξεργαστές 3DNow (ext) επεξεργαστές (AMD K6) χρησιμοποιώντας το συγκρότημα DCT36
- προστέθηκαν configs για vintage SSE CPUs (Pentium M), χρησιμοποιώντας C DCT36
- προστέθηκε η εντολή FORMAT στο γενικό έλεγχο
- πρόσθεσε υποστήριξη για πλαίσια APIC ID3v2
- Προστέθηκε mpg123-id3dump ως επίσημος σύντροφος για την εξαγωγή μεταδεδομένων (συμπεριλαμβανομένης της εγγραφής της τέχνης άλμπουμ από APIC σε αρχεία)
- Προστέθηκε η mpg123-strip ως επίσημος σύντροφος για να απαλλαγεί από τις ροές MPEG (συμπεριλαμβανομένων των μεταδεδομένων)
- να μην διαγράφονται τα δεδομένα ID3 αμέσως μετά την εκτύπωση σε γενικό έλεγχο
- φορτωτής μονάδας λίγο πιο ευέλικτος με σχετικό MPG123_MODDIR
- Ρυθμίστε την αναπαραγωγή με ψεκασμό με έξοδο pulseaudio: αποστράγγιση της εξόδου τώρα κατά το κλείσιμο.
- Καθορισμός εξόδου SDL, α) μη τεμαχισμό άκρου και β) μη θανατηφόρα υποκίνηση
- Διορθώστε εμφανή σφάλματα στην έξοδο win32 ... το παίζει τώρα το τέλος των κομματιών; Χρειάζεσθε κάποιος να το δοκιμάσει.
- Προστέθηκε υποστήριξη για τερματικά οθόνης και iris-ansi με τίτλο (όπως ζητήθηκε από την ενημερωμένη έκδοση κώδικα από το χρήστη sfavi user canavan)
- διορθώνει / βελτιώνει την έξοδο ήχου sgi
- libmpg123: κατάλληλα ψευδώνυμα μεγάλων αρχείων για κατάλληλα συστήματα (FreeBSD με ένα και μόνο off_t
- Αυτό επιτρέπει στο λογισμικό πελάτη που επιμένει να ορίζει άχρηστο _FILE_OFFSET_BITS.
- script περιτύλιξης src / mpg123-with-modules για να διευκολύνει τον πόνο από τη λειτουργία του mpg123 με μονάδες χωρίς εγκατάσταση (ρύθμιση MPG123_MODDIR)
- αφαιρέθηκε ο κώδικας ALSA 0.5 (αχρησιμοποίητος για μακροχρόνιο, τελευταίο bit GPL)
- Με τη σειρά 1.14, να χειρίζονται τις καταστάσεις εκτός δίσκου, ο κώδικας εγγραφής WAV έχει αλλάξει και αυτό έσπασε τη γραφή των WAV σε κανονική έξοδο (ακατέργαστα δεδομένα με μία κεφαλίδα WAV μπροστά). Αυτό θα λειτουργήσει ξανά με την τρέχουσα απελευθέρωση.
Τι νέο υπάρχει στην έκδοση 1.14.1:
- Αυτό διορθώνει ένα σφάλμα που αποκαλύφθηκε (μέτρια) αναδιοργάνωση του κώδικα ανάλυσης. Με το API του τροφοδότη, ήταν πιθανό να χάσετε μια αλλαγή μορφής στο (κατεστραμμένο) ρεύμα, το πιο άσχημο αποτέλεσμα είναι το υπερβολικά μικρό απομεμακρυσμένο buffer εξόδου (μεταγωγή από το στρώμα MPEG 3 με 576 δείγματα ανά πλαίσιο σε 1152 δείγματα ανά πλαίσιο).
Τι νέο υπάρχει στην έκδοση 1.14.0:
- libmpg123 Έκδοση API 36 (βλ. NEWS.libmpg123)
- Προσθέστε το --ignore-streamlength.
- Αλλά ασχολείστε επίσης με τα συσσωματωμένα ρεύματα (Frankenstein): Μην εφαρμόζετε κοπιαστικές κοπές όταν είμαστε πάνω από τον ανακοινωμένο αριθμό πλαισίων.
- Προσθέστε - lyrics για την εκτύπωση στίχων (από το USLT στο ID3v2).
- Προστέθηκε ο χειρισμός των SIGUSR1 και SIGUSER2 στον κώδικα ελέγχου τερματικού, ρυθμιζόμενο μέσω των --ctrlusr1 και --ctrlusr2.
- Κάποια προστιθέμενα API χαμηλού επιπέδου (mpg123_framedata (), mpg123_framepos (), έλεγχος buffering και επαναδειγματοληψία).
- Προστέθηκαν πληροφορίες σχετικά με τη συμπλήρωση buffer της εισόδου στο mpg123_getstate ().
- ReplayGain: Προσπαθήστε να ανιχνεύσετε LAME κάτω από 3.95 για το διαφορετικό επίπεδο αναφοράς των 83 dB (προσθήκη προενισχυτή 6 dB). Η ίδια η έκδοση 3.95 (όχι 3.95.1) Δεν μπορώ να εντοπίσω. Οι τιμές κέρδους που έχουν οριστεί από το χρήστη δεν έχουν αγγιχτεί.
- Μείνετε σιωπηλοί σχετικά με την έλλειψη δεξαμενής κομματιών όταν αγνοείτε τα πλαίσια. Αυτό είναι το όλο θέμα (ως επί το πλείστον, -).
- Προσθέστε την νέα / παλιά παραλλαγή WRITE_SAMPLE από το MPlayer που κάνει τον γενικό αποκωδικοποιητή γρηγορότερο σε παλαιότερες CPU (τουλάχιστον x86). Όχι στο x86-64, αν και (δεν είναι ενεργοποιημένο ανά προεπιλογή).
- Χειριστείτε το δίσκο εκτός δίσκου στους συγγραφείς αρχείων (λίγο, δείτε http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=67259)
- Προστέθηκαν αρχεία έργου Xcode για την κατασκευή του libmpg123 σε Mac OS και iOS
- Έξοδος 32 bit για έξοδο sndio (patch by Brad Smith).
- Η διασύνδεση τηλεχειριστηρίου γνωρίζει τώρα την εντολή LOADLIST.
- Απελευθερώστε τώρα τη μνήμη μετα-δεδομένων μετά την εκτύπωση.
- Κάποια εκκαθάριση της τεκμηρίωσης, συμπεριλαμβανομένων των διορθώσεων της σελίδας από το quadrispro.
- Επανενεργοποίηση επέκτασης χαρακτήρων μπαλαντέρ σε Windows (κατεστραμμένο με υποστήριξη ονόματος αρχείου unicode).
- Διορθώστε τη σύνταξη tabinit MMX (χάρη στον Marcel Muller για να το δείξετε αυτό).
- Διορθώστε την έξοδο ήχου SGI (έχει σπάσει από την αλλαγή σε ενότητες).
- Διορθώστε κάποια συμπεριφορά περιθωρίου (mpg123_getformat () που ενεργοποιεί την περιττή ανάγνωση του επόμενου πλαισίου, ενδεχομένως να χτυπήσει το ψεύτικο MPG123_NEED_MORE).
- Ο περιορισμός επανασύνδεσης τώρα επίσης χρησιμεύει για την αύξηση της ποσότητας των παραλειπόμενων σκουπιδιών στην αρχή.
- Καλύτερος διαχωρισμός του τέλους ροής και του σφάλματος ανάγνωσης (σε περίπτωση που δεν υπάρχει ανοιχτό ρεύμα, ομοιόμορφο).
- Μην διαμαρτύρονται πάντα για την αποτυχημένη αναζήτηση κεφαλίδας ελεύθερου μορφοτύπου (μόνο με επίπεδο λέξεων 3)
Τα σχόλια δεν βρέθηκε