هل أنت من محبي مشاهدة القنوات الفضائية باستخدم كرت سكايب أو تويهان و مؤخرا انتقلت لنظام جنو / لينكس ؟ بكل تأكيد فأنت تستخدم برنامج كافيين لتشغيل القنوات الفضائية ، ولكن هل تعلم أن برنامج كافيين ما هو إلا مجرد واجهة رسومية متقدمة لبرنامج آخر يدعى xine يعمل كمحرك داخلي للملتميديا ؟ حسنا إذا كانت لا تعرف فهذه المقالة ستخبرك عن تاريخ هذا المحرك.
ما هو برنامج xine ؟
برنامج xine وينطق بشكل رسمي كسن هو محرك لتشغيل الملتمديا لأنظمة اليونكس واللينكس ، يندرج تحت ترخيص GPL. وهو مشابه لبرنامج VLC و MPlayer ولكنه يعمل بشكل رسمي على أنظمة المتوافقة مع اليونكس ، ويتميز أنه مبني على مكتبة مشتركة تدعى xine-lib وهي تدعم واجهات مختلفة من مشغلات الملتميديا.
بمعنى آخر تصور أنك تريد بناء تطبيق يشغل ملفات الملتميديا ، ولكن لا تريد أن تبرمج كل شيء من جديد ، أو ما يسمى إعادة ابتكار العجلة، فإن برنامج كسن يعمل كمنصة عامة للملتميديا بحيث يستطيع أي برنامج أن يتصل بها وعن طريقها تقدم الدعم لكافة أنواع الفيديو والصوت المتوفرة.
برنامج xine طور بشكل وحدات ، وذلك حتى يسهل صيانته و تطويره ، وثانيا حتى يستطيع أن يعمل كمحرك للملتيمديا ، وهو يتكون من الوحدات التالية:
- xine-lib : هي المحرك الرئيسي لكسن وتحوي على كل الملحقات والأشياء الأساسية للعمل كمحرك لتشغيل الملتيمديا وهي تتكون من الوحدات التالية:
1- xine-engine
وهو نواة كسن المسؤولة عن مزامنة الصوت والفيديو معا ، وهي تقدم أداء عالي في مهام التواصل بين الوحدات.
2- input plugins
وهي ملحقات الإدخال ومهمتها تقدم البيانات الدخل إلى محرك كسن ، وهي يمكن تتخيل كطبقة مجردة لـ DVD أو الملفات أو موقع وب ، لذا باقي أجزاء كسن لا داعي أن تعرف من أين تأتي البيانات، وهناك العديد من ملحقات الإدخال متوفرة لكسن من أطراف ثالثة متوفرة في الإنترنت.
3- demuxer plugins
وهي ملحقات مسؤولة عن فهم هيئة الملفات مثل AVI و MOV و ASF وغيرها. هيئات الملفات هذه لا تعرّف كيف ترمز الصوت والفيديو ولكن تعرف كيف ترمز البيانات وتدمج مع بعضها البعض . فمثلا ملف AVI على سبيل المثال يمكن أن يحوي على فيديو مرمز بصيغة DivX4 و صوت مرمز بصيغة MP3 أو فيديو MPEG2 و صوت AC3 وهكذا.
4- decoder plugins
هذه الملحقات تستقبل البيانات المرمزة ( صوت أو فيديو أو ترجمة ) ثم تعيدها بشكل غير مضغوط إلى المحرك حتى يعرضها. من أمثل الهيئات المرمزة ( يطلق عليها كودك ) MPEG2 و MP3 و Ogg Vorbis .
5-output plugins
بما أن برنامج كسن يعمل على شريحة واسعة من العتاد و أنظمة التشغيل فهو بحاجة إلى ملحقات خاصة بالعرض متناسبة مع العتاد و نظام التشغيلي. هذه الملحقات مثل المشغلات ، فهي تتعامل مباشرة مع النظام ، لذا فمحرك كسن لا يحتاج أن يتعامل مع التفاصيل.
6- post effect plugins
هذه الملحقات تقوم بإضافة مؤثرات إلى الصوت والفيديو قبل أن ترسل إلى العرض. على سبيل المثال ملحق GOOM ( يقوم بإنشاء صور ملونة من الصوت الذي يشغل ) وملاحق الصوت مثل الصدى .
- xine-ui : هي واجهة رسومية للتعامل مع محرك كسن ، وهي مبنة على مكتبة xlib مباشرة
-gxine: وهي واجهة متطورة تعمل كمشغل للميديا ، برمجت باستخدام gtk وتأتي مع ملحق لمتصفح موزيلا
برنامج كسن لم يبرمج كل شيء من الصفر ، بل استعان بمكتبات خارجية ليتعامل معها في محركه xine-lib وهذه المكتبات هي :
- مكتبة liba52 :وهي مكتبة لفك ترميز مسارات ATSC A/52 وهي تستخدم في الكثير من التطبيقات الحرة لأنها مرخصة تحت رخصة GPL.
- مكتبة libmpeg2 وهي مكتبة حرة لفك ترميز مسارات الفيديو mpeg-1 و mpeg 2 .
- مكتبة FFmpeg وقد تكلمنا عنها سابقة في مقالة غنية بالمعلومات ،ويسخدمها كسن لفك العديد من ترميزات الفيديو.
- مكتبة libmad و هي لفك ترميزات الصوتيات بصيغة MPEG .
- مكتبة FAAD2 وهي مكتبة لفك ترميزات MPEG-4 و MPEG-2 AAC وهي مكتبة حرة تحت ترخيص GPL.
ما تاريخ XINE؟
بدأ مشروع كسن في عام 2000م على يد Günter Bartsch ، في ذلك الوقت كان تشغيل DVD على نظام جنو/لينكس يوصف بأنها عملية ملتوية وصعبة. ولد مشروع كسن كمحاولة تجربية للتعامل مع ملفات الصوت والفيديو معا ، و تطور تدريجيا ليصبح مشغل ميديا يواكب التطور الحاصل في تقنية المعلومات وكذلك ليمتلك معمارية تدعم تعدد المهام.
وخلال عملية تطوير كسن ظهرت بعض الجهود لفصل بين محرك المشغل xine-lib و واجهة الرسومية xine-ui بشكل واضح، ومنذ الإصدارة الأولى في عام 2004 اعتبرت دوال xine-lib مستقرة و هناك العديد من المشغلات التي تعتمد عليها.
ترك Günter المشروع في عام 2003 عندما أعلن بشكل رسمي عن المسؤولين الجدد للمشروع وهم : Miguel Freitas و Michael Roitzsch و Mike Melanson و Thibaut Mattern.
المشروع لازل حتى الآن ولكن يتطور بشكل أبطأ من مراحله الأولى.
ما مميزات كسن؟
- برنامج حر ومرخص تحت رخصة GPL وهو مجاني بالكامل.
- سريع ويدعم تعدد المهام.
- قابل للتمدد ، فكما شاهد فإنه مبني بشكل وحدات وملحقات يسهل إضافتها و يوجد وحدات إضافية متوفر عبر الانترنت.
- قابل الاستخدام:
فبرنامج كسن أصبح في الآونة الأخيرة يعمل كمنصة وبيئة عمل متكامل للتعامل مع الميديا فمحرك xine-lib يتوفر له عدة واجهات برمجية وقد بني عليه عدة تطبيقات شهيرة من مثل Totem و kaffeine وغيرها من التطبيقات .
كذلك أيضا منصة Phonon وهي منصة الخاصة بمكتبة Qt للتعامل مع الصوت والفيديو.
- يدعم كم هائل من صيغ الفيديو و الصوت يمكن الإطلاع عليها من هنا ، وكذل يكمنه أن يستخدم ترميزات win32 مباشرة.
- يدعم تشكيلة واسعة بروتكولات البث مثل :
- MMS (Microsoft Media)
- PNM (Real Media)
-RTSP (Real Media and others)
- HTTP
-raw TCP socket streaming (tcp://-style mrls)
- يدعم العديد من عتاد الملتيمديا مثل:
-DXR3 (EM8300) – MPEG 1/2 decoder with TV output
-كروت DVB (Digital TV) مثل Hauppauge WinTV NOVA
- Video 4 Linux (V4L) – video capturing board
- WinTV-PVR 250/350 pci (ivtv driver)
في نهاية المقال أود أن أنوه أن هذا البرنامج بدأ في التراجع قليلا أمام منصة الملتميديا Gstreamer الجديدة والتي بدأت الكثير من التوزيعات بإضافتها بشكل افتراضي.
عسى أن نجد مستعا من الوقت حتى نتكلم عنها.
ماذا بعد؟
أي إضافات أو تعليقات أو تصحيحات مرحب بها.