صدق أو لا تصدق ، mpg123 عبارة عن برنامج تشغيل موسيقى مفتوح المصدر يعمل ببرنامج سطر الأوامر قادر على فك تشفير وتشغيل ملفات MPEG Audio Layer 1 و 2 و 3 ، والمعروفة باسم MP3s ، والمصممة لتشغيلها بالكامل في وحدة تحكم Linux.
الميزات في لمحة
تتضمن الميزات الأساسية مكتبة فك تشفير الصوت لطبقة الصوت MPEG Audio Layer 1 و 2 و 3 ، ومشغل الصوت في الوقت الفعلي لتنسيقات MPEG 1.0 و 2.0 و 2.5 ، ودعم الفاصلة العائمة والرياضيات الصحيحة ، وتشغيل الصوت بسرعة عالية ، بالإضافة إلى دعم مجموعة كبيرة من أنظمة التشغيل التي تشبه Linux و UNIX.
خيارات سطر الأوامر
من بين خيارات سطر الأوامر المضمنة في التطبيق ، يمكننا ذكر القدرة على كتابة المخرجات إلى ملف WAV ، وتخطي الإطارات الأولى n ، والتخفيض 1: 2 (22 كيلو هرتز) ، وتشغيل كل إطار n'th فقط ، وخلطه كلتا القناتين (أحادية) ، وتمكين مفاتيح التحكم ، والتشغيل العشوائي (مع أحرف البدل) ، وقراءة عناوين URL ، وفك شفرة القناة 0 (يسارًا) فقط ، واستخدام مصادقة HTTP ، وتعيين المخزن المؤقت للإخراج ، وتعيين أو فرض عملية الفحص ، والتحقق من انتهاكات النطاق.
تحت غطاء المحرك والتوافر
أثناء كتابة التطبيق بالكامل بلغة البرمجة 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: إصلاح رسائل الخطأ التي تبدأ من OUT123_ARG_ERROR (bug 261).
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 بت Windows builds (تعتمد على libgcc DLL خلاف ذلك).
قم بإصلاح الإنشاء باستخدام غير GNU باستخدام rm -f بدلاً من silly $ (RM) في libout123 / modules makefile fragment.
يمكنك إنشاء أعمال بناء على iOS ، بما في ذلك الخلفية الأمامية.
libmpg123:
وأخيراً ، قم بتوفير رمز مستقل عن الموضع لـ x86 مع تحسينات التجميع. وقد ذهبت النصوص بفضل وون كيو بارك و تايهي موما.
وضح بعض لغة الترخيص في الملفات المنحدرة من تحسين MMX الأصلي.
إصلاح التحقق من تجاوز قيمة الإرجاع لـ MPG123_BUFFERFILL.
المقدمة mpg123_getformat2 () لتمكين الأمر FORMAT للتحكم عام لا سرقة MPG123_NEW_FORMAT من حلقة التشغيل الرئيسية. التسلسل LOADPAUSED-FORMAT-PAUSE (play) من المفترض أن يعمل الآن.
قم بتمكين التحسينات aarch64 على * BSD بشكل افتراضي أيضًا. يمكنك دائمًا تجاوز تلك القائمة البيضاء لنظام التشغيل الغبي باستخدام - مع التحسين ، على أي حال.
يتم الآن تثبيط استخدام أداة فك تشفير i486 بشكل بارز ، في تهيئة المخرجات.
out123: إصلاح الأعطال الغبية مع وضع verbose وتوليد النغمة (طباعة السلسلة إذا كان المؤشر غير صفري ، وليس إذا كان فارغًا).
libout123: رسائل خطأ أكثر اتساقًا للوحدات الديناميكية والموروثة (المضمنة). وبالتحديد ، تحصل على تلميح عن كيفية اختيار وحدة نمطية مختلفة عن تلك المدمجة في libout123 الثابت.
ما هو الجديد في الإصدار 1.25.0:
اختبار الصمت لـ artsc-config إذا لم يكن موجودًا.
تأكد -static-libgcc من LDFLAGS يحصل من خلال libtool ، إصلاح 32 بت Windows builds (تعتمد على libgcc DLL خلاف ذلك).
قم بإصلاح الإنشاء باستخدام غير GNU باستخدام rm -f بدلاً من silly $ (RM) في libout123 / modules makefile fragment.
يمكنك إنشاء أعمال بناء على iOS ، بما في ذلك الخلفية الأمامية.
libmpg123:
وأخيراً ، قم بتوفير رمز مستقل عن الموضع لـ x86 مع تحسينات التجميع. وقد ذهبت النصوص بفضل وون كيو بارك و تايهي موما.
وضح بعض لغة الترخيص في الملفات المنحدرة من تحسين MMX الأصلي.
إصلاح التحقق من تجاوز قيمة الإرجاع لـ MPG123_BUFFERFILL.
المقدمة mpg123_getformat2 () لتمكين الأمر FORMAT للتحكم عام لا سرقة MPG123_NEW_FORMAT من حلقة التشغيل الرئيسية. التسلسل LOADPAUSED-FORMAT-PAUSE (play) من المفترض أن يعمل الآن.
قم بتمكين التحسينات aarch64 على * BSD بشكل افتراضي أيضًا. يمكنك دائمًا تجاوز تلك القائمة البيضاء لنظام التشغيل الغبي باستخدام - مع التحسين ، على أي حال.
يتم الآن تثبيط استخدام أداة فك تشفير i486 بشكل بارز ، في تهيئة المخرجات.
out123: إصلاح الأعطال الغبية مع وضع verbose وتوليد النغمة (طباعة السلسلة إذا كان المؤشر غير صفري ، وليس إذا كان فارغًا).
libout123: رسائل خطأ أكثر اتساقًا للوحدات الديناميكية والموروثة (المضمنة). وبالتحديد ، تحصل على تلميح عن كيفية اختيار وحدة نمطية مختلفة عن تلك المدمجة في libout123 الثابت.
ما هو الجديد في الإصدار 1.23.6:
استدعاء out123_pause () بدلاً من out123_stop () في أمر STOP للتحكم عن بعد ، إصلاح الانحدار في 1.23.x لعدم القدرة على استئناف التشغيل مع جهاز LOAD آخر ما لم يكن للملف الجديد تنسيق صوت مختلف (علة 234)
ما هو الجديد في الإصدار 1.23.5:
وlibout123:
إصلاح إصدار portaudio و SDL على win32 (عدد كبير جدًا من الأقواس ، وذلك بفضل Sandro Cumerlato للإشارة إليه)
جعل out123_errcode () العودة OUT123_BAD_HANDLE كما وثقت (إضافة تلك القيمة إلى التعداد الخطأ ، تم توثيقه ولكن في عداد المفقودين) ، مرة أخرى بفضل ساندرو
إصلاح windows-builds.sh (قذيفة نقلا في مرحلة النسخ) وإضافة بعض البتات إلى رأس شحنها لجعلها قابلة للاستخدام مباشرة في MSVC (تعريف ssize_t ، علة 232)
عدم الكتابة عن LIBS في Makefile (انحدار نظام البناء في 1.23 ، بفضل Peter Korsgaard للإبلاغ عن ذلك)
عدم طباعة الرسالة ردا على SIGPIPE ، لأن ذلك يمكن أن يؤدي إلى تعليق إذا كان stderr نفسه هو الجاني المسبب للأنابيب (الانحدار من 1.22 ، علة 233)
ما هو الجديد في الإصدار 1.23.3:
هذا هو إصدار لإيقاف الثغرات بما في ذلك الإصلاح الخاص بالخلل 216 ، مع تجنب الكشف الباطن البليغ مع UTF-16 في بيانات ID3v2.
هناك بعض التغييرات المثيرة للاهتمام في الجذع الذي ينتظر إصداره مع إصدار الميزة التالي ، والذي سيتضمن libout123 ونظام التثبيت العام (إصلاح غير متكرر).
ما هو الجديد في الإصدار 1.22.3:
يعد هذا إصدارًا لإيقاف الفجوة بما في ذلك الإصلاح الخاص بالخلل 216 ، مع تجنب اكتشاف بديل بديِل باستخدام UTF-16 في بيانات ID3v2.
هناك بعض التغييرات المثيرة للاهتمام في الجذع الذي ينتظر إصداره مع إصدار الميزة التالي ، والذي سيتضمن libout123 ونظام التثبيت العام (إصلاح غير متكرر).
ما هو الجديد في الإصدار 1.22.1:
إصلاح mpg123-id3dump عند كتابة الصور باستخدام نوع MIME مضحك (معالج). خطأ غبي في حساب طول ملحق الملف الاحتياطي تسبب غير المرغوب فيه من الذاكرة يتم إلحاقها إلى اسم الملف إذا كان حجم المؤشر أقل من 64 بت. ولمؤشرات 64 بت (أو أطول) كانت صحيحة بالصدفة.
إصلاح بناء pedantic عن طريق تنظيف مصدر out123 ، كما تظهر الآن حقا قائمة الترميز في --longhelp بدلا من ربما ، مرة أخرى ، كتابة غير المرغوب فيه من الذاكرة في هناك.
لا يربط libmpg123 ضد libltdl بعد الآن (علة 215).
قم بتحديث منافذ MSVC ++ قليلاً لجعلها تعمل مرة أخرى.
ما هو الجديد في الإصدار 1.21.0:
استخدم LL كاختصار لأمر LOADLIST عن بعد ، يتم أخذ L بالفعل (bug 210).
أقل تلوث مساحة اسم (MPG123_EXPORT في رأس بدلاً من EXPORT ، bug 212).
ما هو الجديد في الإصدار 1.20.1:
تجعل أحدث إصدارات برنامج التغذية أكثر كفاءة عند تخطي البريد غير المرغوب فيه عن طريق التخلص المبكر من البيانات من المخازن المؤقتة لتجنب إعادة التحليل. تفاعل السلوك السابق بشكل سيء مع بعض المدخلات (انظر علة جنتو 465744).
ما هو الجديد في الإصدار 1.20.0:
تمت إضافة أداة فك ترميز NEON محسنة لـ AArch64 (بيئة ARM 64 بت):
تمكين من أجل --with-cpu = neon64 (NEON فقط) أو --with-cpu = aarch64 (تبديل وقت التشغيل بين النيون و generic_fpu ، مثل arm_fpu)
متوافق مع مجموعات الأدوات aarch64-linux-gnu (من Ubuntu ، debian) و Xcode 5
وأضاف الجديدة الثنائية out123 فقط مع جزء إخراج الصوت من mpg123. هذا هو مقدمة لفصل الكود المذكور إلى مكتبة إخراج صوتية بسيطة. كما يسمح بتوصيل بعض المعالجات في أنبوب قبل التغذية للإخراج.
منع opendir (NULL) للدليل وحدة نمطية غير معروفة عند إدراج الوحدات.
بعض إصلاحات البناء ، من بين أولئك الذين يقومون بإصلاح mpg123-id3dump على Windows
ما هو الجديد في الإصدار 1.18.1:
لا تغلق العازلة مرتين مع mpg123 -R (احذف الشفرة القديمة في control_generic ()) ، إصلاح الخطأ 207.
لا تعبث مع وسيطة سطر الأوامر الأولى لاستخراج اسم البرنامج ، استخدم نسخة بدلاً من ذلك ، إصلاح الخطأ 205.
منع الخروج من السابق لأوانه على توقيت الفشل في فتح مسار في قائمة التشغيل والمستخدم الذي يريد تجاوزه (علة 206).
Fixup من الفوضى مأخذ HTTP ، أيضا تجنب كائنات FILE غير الضرورية (علة 204 ، التصحيح بواسطة Rajeev V. Pillai).
إصلاح سلوك قائمة التشغيل على تدفقات HTTP البطيئة ، والقفز إلى الخلف ('d' key) من أول مسار يبقى في المسار الأول (بفضل Rajeev مرة أخرى ، و sub-bug of bug 206).
إصلاح Frankenstein تحقق من عدم التعثر على علامات ID3v1. اعتذاري. كمكافأة ، أصبح الآن موقع الشفرة المعنية في المحلل أكثر منطقية.
ما هو الجديد في الإصدار 1.17.0:
mpg123-id3dump - no-scan؛ لتسريع
hide -C parameter from mpg123 --help when it is not supported
إضافة الإخراج tinyalsa (من قبل Jarno Lehtinen)
بناء نظام التغيير والتبديل
بعض الرعاية لإصلاح يبني Cygwin
ما هو الجديد في الإصدار 1.16.0:
يوفر نظام فك تشفير Huffman الجديد (القابل للتكوين ، بشكل افتراضي) دفعة جيدة لـ mpg123 لجعله أسرع أداة فك ترميز على وحدات المعالجة المركزية الحديثة مرة أخرى.
جهاز فك التشفير الجديد AVX
الجمعية الأمثل DCT36 ل SSE و AVX
تهيئات إضافية لوحدات المعالجة المركزية ثلاثية الأبعاد (ext) ثلاثية الأبعاد (AMD K6) باستخدام التجميع DCT36
إضافة التكوينات لوحدات المعالجة المركزية SSE (Pentium M) ، باستخدام C DCT36
إضافة أمر FORMAT إلى عنصر تحكم عام
إضافة دعم لإطارات ID3v2 APIC
إضافة mpg123-id3dump كرافقة رسمية لاستخراج البيانات الوصفية (بما في ذلك كتابة صورة الألبوم من APIC إلى الملفات)
إضافة mpg123-strip كصاحب رسمي لتجريد الأوساخ من تدفقات MPEG (بما في ذلك بيانات التعريف)
لا يتم حذف بيانات ID3 مباشرةً بعد الطباعة في عنصر تحكم عام
وحدة محمل أكثر مرونة مع النسبية MPG123_MODDIR
ثبت التشغيل المقطوع مع خرج pulseaudio: استنزاف الإخراج الآن عند الإغلاق.
SDL إخراج الإصلاح ، أ) لا تقطيع نهاية وب) underrun غير قاتلة
إصلاح أخطاء واضحة في إخراج win32 ... هل تلعب الآن نهاية المسارات؟ بحاجة الى شخص ما لاختبار هذا.
إضافة دعم للشاشة ومحطات iris-ansi مع --title (على النحو المطلوب من قبل التصحيح من canafan المستخدم sf.net)
إصلاحات / تحسينات لإخراج الصوت sgi
libmpg123: الأسماء المستعارة الكبيرة المناسبة للأنظمة الصحيحة (FreeBSD مع one-one-only off_t
يمكّن هذا البرنامج العميل الذي يصر على تعريف _FILE_OFFSET_BITS لا قيمة له.
المجمع النصي src / mpg123-with-modules لتخفيف ألم تشغيل mpg123 مع الوحدات بدون تثبيت (ضبط MPG123_MODDIR)
إزالة ALSA 0.5 code (غير مستخدمة لفترة طويلة ، آخر بت GPL-only)
ما هو الجديد في الإصدار 1.14.2:
مع سلسلة 1.14 ، في محاولة للتعامل بشكل أفضل مع حالات الخروج من القرص ، تم تغيير رمز WAV للكتابة وكسر ذلك كتابة WAVs إلى الإخراج القياسي (البيانات الأولية مع رأس WAV واحد في المقدمة). يجب أن يعمل هذا مرة أخرى مع الإصدار الحالي.
ما هو الجديد في الإصدار 1.14.1:
يعمل هذا على إصلاح الخلل الذي تم كشفه عن طريق إعادة تنظيم رمز المحلل اللغوي (المتواضع). باستخدام واجهة برمجة تطبيقات المغذي ، كان من الممكن أن يغيب عن تغيير النسق في التدفق (التالف) ، حيث تكون المخزن المؤقت للإخراج المخصص أصغر من اللازم (التحويل من طبقة MPEG 3 مع 576 عينة لكل إطار إلى 1152 عينة لكل إطار).
ما هو الجديد في الإصدار 1.14.0:
libmpg123 API version 36 (انظر NEWS.libmpg123)
أضف - lineore-streamlength.
لكن أيضًا تعامل مع تيارات متسلسلة (فرانكنشتاين): عدم تطبيق قطع بدون فراغ بمجرد أن ننتهي من العدد المعلن للإطارات.
أضف -lyrics لطباعة من كلمات (من USLT في ID3v2).
إضافة معالجة من SIGUSR1 و SIGUSER2 إلى رمز التحكم الطرفي ، شكلي عبر --ctrlusr1 و --ctrlusr2.
تمت إضافة بعض API ذات المستوى المنخفض (mpg123_framedata () و mpg123_framepos () والتحكم في التخزين المؤقت وإعادة التشكيل).
واضاف معلومات عن ملء المدخلات العازلة ل mpg123_getstate ().
ReplayGain: حاول اكتشاف LAME أدناه 3.95 لمستوى مرجعي مختلف يبلغ 83 ديسيبل (إضافة preamp بمقدار 6 ديسيبل). الإصدار 3.95 نفسه (وليس 3.95.1) لا أستطيع الكشف عن. لا يتم لمس قيم الكسب التي يحددها المستخدم.
التزم الصمت حول الخزان القليل المفقود عند تجاهل الإطارات. هذا هو بيت القصيد (في الغالب ؛-).
أضف متغير WRITE_SAMPLE الجديد / القديم من MPlayer الذي يجعل أداة فك الترميز العامة أسرع في وحدات المعالجة المركزية القديمة (x86 على الأقل). ليس على x86-64 ، على الرغم من (لم يتم تمكينها بشكل افتراضي هناك).
التعامل مع القرص الصلب في كتّاب الملفات (قليلاً ، راجع http://bugs.debian.org/cgi-bin/bugreport.cgi؟bug=67259)
تمت إضافة ملفات مشروع Xcode لإنشاء libmpg123 على نظام التشغيل Mac OS و iOS
إخراج 32 بت لإخراج sndio (التصحيح بواسطة براد سميث).
تعرف واجهة التحكم عن بعد الأمر LOADLIST الآن.
الآن تحرير ذاكرة البيانات الوصفية بعد الطباعة.
بعض الوثائق تنظيف ، بما في ذلك إصلاحات manpage بواسطة quadrispro.
إعادة تمكين استخدام حرف البدل على Windows (تم كسره بواسطة دعم اسم ملف unicode).
إصلاح تركيب MMX tabinit (بفضل Marcel Muller للإشارة إلى ذلك).
إصلاح خرج الصوت SGI (تم كسره منذ تغيير الوحدات).
إصلاح بعض السلوكيات الهامشية (mpg123_getformat ()) مما يؤدي إلى قراءة غير ضرورية للإطار التالي ، من المحتمل أن تضرب صورة وهمية MPG123_NEED_MORE).
يعمل Resync limit الآن أيضًا على زيادة كمية الرسائل غير المرغوبة التي تم تخطيها في البداية.
أفضل فصل لنهاية الدفق وقراءة الخطأ (في حالة عدم وجود تيار مفتوح ، حتى).
لا تشتكي دائمًا من فشل البحث في عنوان التنسيق الحر (فقط مع مستوى الإزاحة 3).
لم يتم العثور على التعليقات