Skip to Content

إطار عمل الوسائط المتعددة GStreamer

إذا كنت أحد مستخدمي توزيعة أوبنتو أو فيدورا أو ماندريفا فإنك وبكل تأكيد مرت عليك كلمة GStreamer plugins  عندما تريد أن تشغل أحد صيغ الفيديو غير الحرة مثل AVI أو MPEG ، حيث سيطلب منك النظام الاتصال بالانترنت للبحث عن الترميز المناسب للصيغة التي تريد تشغيلها. وبعد ذلك سيطلب منك الموافقة على تثبيت ملحقات good أو bad  أو ugly ، وبعد تثبيتها ستنعم بسلام مع أي صيغة ملتميديا تواجهك.
شعار gstreamer
ولكن ما هي GStreamer ؟
بكل بساطة يمكننا أن نعرف ج-ستريمر بأنها إطار عمل framework للملتميديا مكتوبة بلغة السي ، وهي مبني على فلسفة خط الأنبوب pipeline.
وهي ليست موجهة للمستخدم النهائي بل موجهة للمطورين بحيث تمكنهم من برمجة شريحة عريضة من المكونات التي تتعامل مع الميدياوتشمل مشغل الصوتيات و مشغل الفيديو والصوت معا و عمل بث مباشر للفيديو و تحرير الملتميديا.
 
 دعونا نفهم أولا ما هي فلسفة خط الأنبوب ؟
 في هندسة البرمجيات خط الانبوب يحوي على سلسلة من عناصر المراد معالجتها مرتبة بحيث أن خرج كل عنصر يكون هو دخل العنصر التالي. فمثلا إذا أردنا أن نبحث في وثيقة ما عن كلمة معينة ولكن لا نريد أن نفتح هذه الوثيقة ببرنامج خاص ، ومن ثم نستخدم عملية البحث ، تقدم لنا فلسفة خط الأنبوب مرونة عالية فهي في هذه الحالة ستسخدم برنامج للقراءة الوثيقة ولكن بدلا من عرض الوثيقة ستمرر خرج الوثيقة إلى برنامج آخر للبحث عن الكلمة المقصودة والنتيجة النهائية ستكون عرض النتائج فقط.
 فلسفة خط الأنبوب مطبقة كثيرا في عالم اليونكس و أبنائه في نظام أوامر الشل ، ويستخدمها كثير من مدراء الأنظمة وذلك لتوفيرها للوقت والجهد.
 تصميم خط الأنبوب لمنصة GStreamer  أعطاها القوة لأن تخدم كقاعدة لإنشاء أنواع عديدة من تطبيقات الملتيمديا مثل محررات الفيديو و خوادم بث الميديا و مشغلات الملتميديا.
 صممت منصة GStreamer  لتكون متعددة المنصات فهي تعمل على اللينكس ( معالجات x86 و PowerPC و ARM) ونظام سولاريز ( معالجات x86 و SPARC) و نظام الماك Mac OS X  و نظام مايكروسوفت ويندوز و OS/400 .
 تتوفر واجهات برمجية لمنصة GStreamer بحيث يمكنك استخدامها بلغتك المفضلة ومن بين هذه اللغات : بايثون و السي بلاس بلاس و روبي و GNU Guile . وترخص منصة GStreamer  تحت رخصة LGPL.
 
 تاريخ تطورها:
 بدأ المشروع في عام 1999 على يد Erik Walthinsen ، أتت العديد من أفكار تصميم نواة ج-ستريمر من مشروع بحثي في معهد Oregon Graduate . وبعد سنة من العمل أطلقت النسخة الأولى من المنصة 0.1 .
 في عام 2004 تأسست شركة Fluendo الأسبانية لتقديم حلول الملتيمديا في سوق البرامج الحرة باستخدام منصة GStreamer ، وفي ذلك الوقت كانت المنصة في سلسلة 0.8 ولم تكن مشهورة بسبب مشاكل في الثبات و نقص شديد في المميزات بالمقارنة مع المشاريع المنافسة مثل Xine  أو MPlayer  أو VLC.
 قررت الشركة استئجار معظم فريق تطوير منصة ج-ستريمر الأساسيين حتى الذين غادروا المشروع مثل Wim Taymans وذلك لهدف دفع منصة ج-ستريمر إلى مستوى الإحترافية و حتى يعتمدها مجتمع المصادر الحرة.
 في هذه الأثناء سعت شركة Fluendo على الحصول على اتفاقيات لتراخيص براءات الاختراع من الشركات المالكة لها مثل مايكروسوفت و شركة MPEG LA  وغيرها من الشركات ، وذلك حتى تقدم حلول للترميزات بشكل قانوني للشركات التي ترغب في استخدام ج-ستريمر في منتجاتها الخاصة.

Fluendo_Logo
 قدمت شركة Fluendo حلول تعتمد على ج-ستريمر من أمثال خوادم بث الملتميديا بترميزات الحرة و الترميزات ذات براءات الاختراع وكان ذلك عبر مشروع خادم بث الملتميديا Flumotion.
 وبالفعل قدم المطورون تحسينات واسعة في بنية ج-ستريمر في سلسلة 0.9 و في سلسلة 0.10 والتى صدرت في عام 2005 وصلت منصة ج-ستريمر إلى عصرها الذهبي من حيث الأداء و الثبات والموثوقية ، وأصبحت توزع بشكل افتراضي في كل توزيعات جنو/لينكس الشهيرة مثل أوبنتو و فيدورا و أوبن سوز ، وتستخدم في العديد من المشاريع التجارية المختلفة.
 في عام 2007 غادر بعض المطورين شركة Fluendo  وانضموا إلى عدة شركات أخرى من مثل شركة Collabora و صن مايكروسيستم و SongBird، ومن ذلك الحين بدأت عملية تطوير ج-ستريمر بواسطة عدة شركات مختلفة مثل نوكيا و موترولا وليس شركة واحدة، وأصبحت منصة عمل للملتيمديا متعددة المنصات و قوية جدا.
 حاليا يستضيف مشروع Freedesktop.org  هذه المنصة و هو يهدف بشكل ضمني إلى تحسين التوافقية و مشاركةالتكنولوجيا بين أسطح المكتب المختلفة.
 
 كيف تعمل هذه المنصة؟
 كما قلنا سابقا هذه المنصة مبنية على فلسفة خط الأنبوب ، فمنصة ج-ستريمر تقوم بمعالجة الميديا وذلك بوصل عدد من عناصر المعالجة داخل خط الانبوب. وكل عنصر يزود بواسطة ملحق ، والعناصر يمكن أن تجمع في حاوية ، و تتواصل العناصر بواسطة أربطة وسطية ، فالرباط المرسل لعنصر ما يمكن أن يتصل إلى الرباط المستقبل في العنصر الآخر. و عندما يكون خط الأنبوب في حالة التشغيل فسيل البيانات يتدفق من رباط المصدر إلى رباط المستقبل.
 في المخطط التالي يشرح كيفية قراءة ملف MP3 باستخدام ج-ستريمر. ملف المصدر يقرأ ملف mp3 من قرص الصلب ويرسله إلى فاك تشفير mp3 ، و يقوم فاك التشفير بفك البيانات ويحولها إلى PCM والتي يمكن تمريرها بعد ذلك إلى تعريف الصوت ALSA. بعد ذلك يقوم تعريف الصوت ALSA  بإرسال أصوات PCM إلى سماعات الحاسوب.
 نظرة تقنية
 المحلقات:
 تستخدم منصة ج-ستريمر معمارية الملحقات وقد تكلمنا قليلا عنها عندما تحدثنا عن بنية xine ، هذه المعمارية جعلت معظم وظائف ج-ستريمر  تعد كمكتبات مشتركة. بنية وظائف ج-ستريمر الأساسية تحوي على وظائف لتسجيل و تحميل المحلقات وتوفير الوظائف الأساسية. مكتبات الملاحق تحمل بشكل ديناميكي لدعم طيف واسع من الترميزات و الحاويات و مشغلات الدخل والخرج و المؤثرات.
 منذ الإصدارة 0.10 تأتي المحلقات مجموعة في ثلاثة أصناف:
 حزمة الملحقات الجيدة: وهي تحوي على المحلقات ذات جودة عالية ومرخصة تحت ترخيص LGPL.
 حزمة الملحقات السيئة: وهي تحوي على الملحقات مقاربة لجودة حزمة المحلقات الجيدة ولكن ينقصها شيء ما مثل: مراجعة جيدة للكود  ، أو بعض التوثيقات ، أو المسؤول عن صيانتها بشكل دائم.
 حزمةالملحقات القبيحة: وهي المحلقات التي تخلق مشاكل في التوزيع.
 
 كذلك يوجد ملحق GStreamer FFmpeg plug-in وهو ملحق يحوي على ملحق واحد مع مجموعة من العناصر تستخدم كود مكتبة FFmpeg ، وهذا المحلق يحوي على أشهر مفكات التشفير decode.
 
 تطبيقات تعتمد على منصة ج-ستريمر
 هناك قائمة طويلة من التطبيقات التي تعتمد على هذه المنصة الرائعة ، يكفي أن تعرف أن مشروع سطح مكتب جنوم هو أول مستخدم رئيسي لتكنولوجيا ج-ستريمر ، بحيث ضمن هذه المنصة منذ إصدارة جنوم 2.2 ، وهو يشجع تطبيقات جنوم و GTK على استخدامها. من المشاريع الكبيرة التي تستخدمها منصة الميديا Chameleo  و مكتبة Phonon  و مشغل الميديا Songbird.
 كذلك تعمل ج-ستريمر على الأجهزة المضمنة مثل Nokia 770 و N800 و Palm Pre و N810.
 وهناك قائمة طويلة من التطبيقات المتوسطة والصغيرة التي تستخدمها وسأذكر بعضا منها:
 برنامج  Pitivi : وهو محرر فيديو غير خطي ، تطوره شركة Collabora بحيث استأجرت مبرمجين للعمل عليه بدوام كامل ، وقد صدرت نسخة منه قريبا بتطويرات هائلة.

برنامج PiTiVi

برنامج PiTiVi

 برنامج Jokosher : وهو برنامج قوي للتعامل مع المسارات المتعددة، بحيث يمكنك إنشاء وتسجيل الموسيقى ونشرها من بيئة متكاملة وبسيطة.

jokosher

 برنامج Flumotion : وهو خادم لتوزيع بث الميديا ، وقد تكلمنا عنه سابقا.
 برنامج Buzztard  : وهو مشروع يهدف لتقديم استيدو موسيقى حر ومفتوح المصدر ، وقد بني بشكل عام على مفهوم برنامج للنظام الويندوز تجاري يطلق عليه Buzz ، هذا البرنامج التجاري لم يحصل على تطوير إضافي لأن المطور الاساسي فقد مصدره.

buzztard
 
 ماذا بعد؟
 أود أن أنوه أن منصة ج-ستريمر تدعم العربية بشكل جيد ، بخلاف بقية مشغلات الميديا التى تكلمنا عنها سابقا. هذا وأي إضافة أو تعديل أو استفسار مرحب به.

 

 

تعليقات فيسبوك

التعليقات

خيارات عرض التعليق

اختر الطريقة التي تفضلها لعرض التعليقات، ثم اضغط على "احفظ الإعدادات" لتفعل التغيرات.

شكرا لك   لي مقالة عن معالجة

شكرا لك

 

لي مقالة عن معالجة الملفات الصوتية بها

http://cltb.ojuba.org/ar/articles/audio.html

 

ما شاء الله أستاذنا مؤيد ،

ما شاء الله أستاذنا مؤيد ، مقالة عميقة جدا و مليئة بالتفصيلات التقنية ، شكرا عليها ، لم انتبه لها من قبل حتى أقتبس منها .

موضوع جيد جدا .. و معلومات

موضوع جيد جدا .. و معلومات مفيدة كثيرا ..

يعطيكم العافية

استفسار

جزاك الله خيرا فقد فوضحت لي الكثير حول ج-ستريمر والتي كانت بالنسبة لي مثل لغز لا ادري عنه شيء
ولي استفسار بسيط وهو لماذا لا تتضمن توزيعة أوبونتو (وغيرها) هذا الاطار للعمل، لماذا لا يتضمن التراميز المناسبة للصيغ المشهور مثل mp3 ...
يعني الكل يحتاج الى تشغيل مثل هذه الصيغ فلماذا لا يكون ترميزها متوافر مع النظام

وشكرا

صورة زايد

السبب يا طويل العمر هو أن

السبب يا طويل العمر هو أن القانون الأمريكي لا يسمح لك بتشغيل ملفات mp3 بدون أن تدفع التراخيص اللازمة  لذلك بسبب أن هذه التنسيقة هي تنسيقة مملوكة و تجارية ، الحل هو أن تشتري برنامج مرخص (أي لديه ترخيص لتشغيل هذه التنسيقة بعد دفع مبلغ محترم ) وبسبب أن أوبنتو غيرها مجانية و توزع في الولايات المتحدة و غير مستعدة لأن تدفع تكاليف التراخيص فهي غير متاحة بشكل افتراضي.

الحل سهل هو وجود خط انترنت مشبوك على الجهاز ، و على بعد خمس نقرات أو أقل تستطيع أن تشغل كل التنسيقات بما فيها mp3 بشكل مجاني !

pipline means Feach & Decode

pipline means Feach & Decode in the same time

 

مثلما قال أخونا السعدي ، هي

مثلما قال أخونا السعدي ، هي عملية مثل خط التصنيع كلما انتهت عملية بدأت العملية الثانية ، وكما أوضحت في الرسم البياني كيفية تشغيل ملفاتmp3 من القرص الصلب.

ولو قرأت مقالة التي وضع وصلتها أستاذنا السعدي للاحظت كيف تتم عملية خط الأنبوب بشكل واضح ودقيق.

لا أخي pipline هنا مصطلح

لا أخي pipline هنا مصطلح آخر

 الكلمة بالأصل تعني نموذج في التصنيع (مثلا في صناعة السيارات) حيث يتم تجميع الأجزاء بالترتيب في سلسلة قطعة بعد الاخرى أي عندما تصل سيارة للآلة الثانية لإضافة الزجاج مثلا تكون هناك سيارة دخلت للآلة الأولى لتركيب الأبواب وهكذا

وفي عملية المعالجة عندما تغادر تعليمة طور الجلب وتدخل طور الفك decode فإن تعليمة جديدة تدخل في طور الجلب

 

هذا تقريبا اول او ثاني مقال

هذا تقريبا اول او ثاني مقال باللغة العربية أفخر بأن اضعه فى مضفلتي

 

لَقِّم المحتوى لَقِّم المحتوى


المتصلون الأن

يوجد حاليا لا مستخدمين و 44 ضيفا عالخط.