المطورون

إذا كنت مبرمجًا (أو ترغب في أن تصبح مبرمجًا)، وتهتم بتطوير ميزات جديدة، أو إصلاح الأخطاء، أو تحسين واجهة المستخدم لـ OpenShot، فإن الأقسام التالية ستشرح كيفية البدء والمشاركة!

الصورة الكبيرة

يتكون محرر الفيديو OpenShot من 3 مكونات رئيسية: واجهة مستخدم Python و PyQt (openshot-qt)، مكتبة صوت C++ (libopenshot-audio) ومكتبة فيديو C++ (libopenshot). إذا لم تكن معتادًا على Python أو PyQt أو C++، فهذه مواضيع رائعة للبحث والتعلم عنها في هذه المرحلة.

ومع ذلك، يمكن إصلاح العديد من الأخطاء وإضافة ميزات جديدة باستخدام معرفة Python فقط، حيث أن مكونات C++ غير متورطة في واجهة المستخدم على الإطلاق. Python لغة رائعة، وممتعة جدًا للتعلم، وهي المهارة الأساسية الوحيدة المطلوبة لتصبح مطورًا في OpenShot!

تحذير

التعليمات التالية مخصصة لنظام Ubuntu Linux، وهو أسهل بيئة لتكوينها لتطوير OpenShot. إذا كنت تستخدم نظام تشغيل آخر، أقترح تشغيل جهاز افتراضي مع Ubuntu LTS قبل المتابعة.

إذا كان عليك استخدام نظام Windows أو Mac للتطوير، ابدأ بالرجوع إلى ملاحظات البناء في ويكي libopenshot. بناء المكتبة مع جميع تبعياتها هو الجزء الأكثر تحديًا في العملية.

الحصول على أحدث شفرة مصدرية

قبل أن نتمكن من إصلاح أي أخطاء أو إضافة ميزات، نحتاج إلى الحصول على الشفرة المصدرية على جهازك.

استخدم git لاستنساخ مستودعاتنا الثلاثة:

git clone https://github.com/OpenShot/libopenshot-audio.git
git clone https://github.com/OpenShot/libopenshot.git
git clone https://github.com/OpenShot/openshot-qt.git

تكوين بيئة التطوير الخاصة بك

لكي تتمكن فعليًا من تجميع أو تشغيل OpenShot، نحتاج إلى تثبيت بعض التبعيات على نظامك. أسهل طريقة لتحقيق ذلك هي باستخدام PPA اليومية الخاصة بنا. PPA هو مستودع Ubuntu غير رسمي يحتوي على حزم برامجنا متاحة للتحميل والتثبيت.

sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
sudo apt-get update
sudo apt-get install openshot-qt \
                     cmake \
                     libx11-dev \
                     libasound2-dev \
                     libavcodec-dev \
                     libavdevice-dev \
                     libavfilter-dev \
                     libavformat-dev \
                     libavresample-dev \
                     libavutil-dev \
                     libfdk-aac-dev \
                     libfreetype6-dev \
                     libjsoncpp-dev \
                     libmagick++-dev \
                     libopenshot-audio-dev \
                     libprotobuf-dev \
                     libqt5svg5-dev \
                     libswscale-dev \
                     libunittest++-dev \
                     libxcursor-dev \
                     libxinerama-dev \
                     libxrandr-dev \
                     libzmq3-dev \
                     pkg-config \
                     python3-dev \
                     protobuf-compiler \
                     qtbase5-dev \
                     libqt5svg5-dev \
                     libxcb-xfixes0-dev \
                     qtmultimedia5-dev \
                     swig

في هذه المرحلة، يجب أن تكون قد استنسخت شفرة المصدر لجميع مكونات OpenShot الثلاثة في مجلدات محلية، وقمت بتثبيت PPA اليومية لـ OpenShot، وثبتت جميع التبعيات اللازمة للتطوير والتشغيل. هذه بداية رائعة، ونحن الآن جاهزون لبدء تجميع بعض الشفرات!

libopenshot-audio (تعليمات البناء)

هذه المكتبة مطلوبة لتشغيل الصوت وتأثيرات الصوت. تعتمد على إطار عمل JUCE للصوت. إليك الأوامر لبنائها:

cd libopenshot-audio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=dist ..
make
make install

بشكل أساسي، ننتقل إلى مجلد libopenshot-audio/build، ثم نشغل cmake .. على المجلد الأب. هذا يعثر على التبعيات وينشئ جميع ملفات Makefiles اللازمة لتجميع هذه المكتبة. ثم يستخدم make تلك الملفات لتجميع المكتبة، و``make install`` لتثبيتها في الموقع الذي حددناه. إذا لم يتم تعيين CMAKE_INSTALL_PREFIX، فسيتم تثبيت الملفات في /usr/local/ (افتراضيًا) وسيتطلب تشغيل make install صلاحيات إدارية.

libopenshot (تعليمات البناء)

هذه المكتبة مطلوبة لفك ترميز الفيديو، الترميز، الرسوم المتحركة، وكل شيء آخر تقريبًا. تقوم بكل الأعمال الثقيلة لتحرير الفيديو وتشغيل الفيديو. إليك الأوامر لبنائها:

cd libopenshot
mkdir build
cd build
cmake -DLIBOPENSHOT_AUDIO_DIR=../../libopenshot-audio/build/dist ..
make

بشكل أساسي، ننتقل إلى مجلد libopenshot/build، ثم نشغل cmake .. على المجلد الأب. هذا يعثر على التبعيات وينشئ جميع ملفات Makefiles اللازمة لتجميع هذه المكتبة. ثم يستخدم make تلك الملفات لتجميع المكتبة. وبما أننا قدمنا موقع تثبيت libopenshot-audio المجمعة، فسيتم استخدام هذا الإصدار من المكتبة بدلاً من إصدار النظام (إن وجد).

لا نقوم بتثبيت libopenshot بعد البناء، لأننا لا نحتاج إلى ذلك. لأغراض الاختبار، يمكننا إخبار OpenShot باستخدام libopenshot مباشرة من دليل build الخاص بنا.

ربط اللغات

واجهة برمجة التطبيقات libopenshot متاحة بعدة لغات من خلال ربط SWIG. تُستخدم Python في واجهة مستخدم OpenShot، ونوفر أيضًا ربط Ruby و Java. يتضمن الدعم التجريبي لـ Godot 4.4 للمطورين الذين يرغبون في دمج ميزات تحرير الفيديو في محرك ألعاب Godot. جميع هذه الروابط تتصل بنفس قاعدة كود C++ بحيث يمكنك تحرير الفيديو من البيئة التي تفضلها.

openshot-qt (تعليمات التشغيل)

هذا هو تطبيقنا الرئيسي PyQt Python. نظرًا لأنه مكتوب بلغة Python، فلا يتطلب أي تجميع للتشغيل. لتشغيل OpenShot من الشفرة المصدرية مع مكتبات libopenshot-audio و libopenshot التي تم بناؤها حديثًا، استخدم الأوامر التالية:

cd openshot-qt
PYTHONPATH=../libopenshot/build/src/bindings/python
python3 src/launch.py

يجب أن يطلق هذا واجهة مستخدم OpenShot. سيتم تضمين أي تغييرات قمت بها على ملفات شفرة المصدر (ملفات *.py بايثون، ملفات *.ui PyQt UI، إلخ...). هذا يتطلب مكتبات libopenshot-audio و libopenshot، وإذا حدث خطأ في الخطوات أعلاه، فمن المحتمل ألا يتم تشغيل OpenShot.

إذا تم تشغيل OpenShot في هذه المرحلة، تهانينا! لديك الآن نسخة محلية عاملة من OpenShot تعمل من شفرة المصدر المحلية الخاصة بك. جرب إجراء بعض التغييرات على شفرة المصدر وأعد تشغيل OpenShot... يجب أن ترى تغييراتك الآن!

مشاكل GitHub

الآن بعد أن نجحت في تجميع وتشغيل محرر فيديو OpenShot من شفرة المصدر، تأكد من مراجعة قائمة تقارير الأخطاء لدينا على GitHub: مشاكل OpenShot. كما يُشجعك على ملء نموذج المساهم السريع الخاص بنا contributor form وتعريف نفسك!

شارك تغييراتك

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