توسعه‌دهندگان

اگر برنامه‌نویس هستید (یا می‌خواهید برنامه‌نویس شوید) و علاقه‌مند به توسعه ویژگی‌های جدید، رفع اشکال یا بهبود رابط کاربری OpenShot هستید، بخش‌های زیر نحوه شروع و مشارکت را توضیح می‌دهند!

نمای کلی

OpenShot Video Editor دارای ۳ بخش اصلی است: یک رابط کاربری 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، باید برخی وابستگی‌ها را روی سیستم شما نصب کنیم. آسان‌ترین راه برای انجام این کار استفاده از Daily PPA ما است. PPA یک مخزن غیررسمی اوبونتو است که بسته‌های نرم‌افزاری ما را برای دانلود و نصب فراهم می‌کند.

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 .. را روی پوشه والد اجرا می‌کنیم. این کار وابستگی‌ها را پیدا کرده و تمام Makefileهای لازم برای کامپایل این کتابخانه را ایجاد می‌کند. سپس make از این Makefileها برای کامپایل کتابخانه استفاده می‌کند و 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 .. را روی پوشه والد اجرا می‌کنیم. این کار وابستگی‌ها را پیدا کرده و تمام Makefileهای لازم برای کامپایل این کتابخانه را ایجاد می‌کند. سپس make از این Makefileها برای کامپایل کتابخانه استفاده می‌کند. چون محل نصب libopenshot-audio کامپایل شده ما را مشخص کرده‌ایم، آن نسخه از کتابخانه به جای نسخه سیستم (در صورت وجود) استفاده خواهد شد.

پس از ساخت، libopenshot را نصب نمی‌کنیم چون نیازی به آن نیست. برای اهداف تست، می‌توانیم به OpenShot بگوییم که مستقیماً از پوشه build ما از libopenshot استفاده کند.

بایندینگ‌های زبان

رابط برنامه‌نویسی 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، فایل‌های رابط کاربری PyQt *.ui و غیره) داده‌اید، شامل خواهد شد. این نیازمند کتابخانه‌های libopenshot-audio و libopenshot است و اگر در مراحل بالا مشکلی پیش آمده باشد، احتمالاً OpenShot راه‌اندازی نخواهد شد.

اگر در این مرحله OpenShot راه‌اندازی شد، تبریک می‌گوییم! اکنون یک نسخه محلی و عملیاتی از OpenShot دارید که از کد منبع محلی شما اجرا می‌شود. سعی کنید تغییراتی در کد منبع ایجاد کرده و OpenShot را دوباره راه‌اندازی کنید... اکنون باید تغییرات خود را ببینید!

مشکلات GitHub

اکنون که با موفقیت OpenShot Video Editor را از کد منبع کامپایل و اجرا کرده‌اید، حتماً فهرست گزارش‌های باگ ما در GitHub را بررسی کنید: OpenShot Issues. همچنین، از شما دعوت می‌شود فرم سریع مشارکت‌کننده را پر کرده و خود را معرفی کنید!

تغییرات خود را به اشتراک بگذارید

پس از رفع یک باگ یا افزودن یک ویژگی جدید عالی، حتماً آن را با تیم OpenShot به اشتراک بگذارید. ایده‌آل این است که بتوانیم این تغییرات را در شاخه اصلی کد منبع ادغام کنیم. ساده‌ترین راه برای به اشتراک گذاشتن تغییرات شما، ایجاد یک فورک از مخزن ما، ارسال تغییرات به GitHub و ایجاد یک Pull Request است. یک Pull Request به تیم OpenShot اطلاع می‌دهد که تغییرات شما آماده ادغام هستند. سپس می‌توانیم آن‌ها را بررسی کنیم، بازخورد دهیم و امیدواریم تغییرات شما را در شاخه اصلی ادغام کنیم.