Розробники

Якщо ви програміст (або хочете ним стати) і зацікавлені у розробці нових функцій, виправленні помилок або покращенні інтерфейсу користувача OpenShot, наступні розділи пояснять, як почати та долучитися!

Загальна картина

OpenShot Video Editor має 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 для клонування наших 3 репозиторіїв:

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 — це неофіційний репозиторій 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

На цьому етапі ви повинні мати клоновані локальні папки з вихідним кодом усіх 3 компонентів 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 використовувати libopenshot безпосередньо з нашої папки build.

Обгортки мов програмування

API 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 файли Python, *.ui файли PyQt UI тощо), будуть включені. Для цього потрібні бібліотеки libopenshot-audio та libopenshot, і якщо щось пішло не так у попередніх кроках, OpenShot, ймовірно, не запуститься.

Якщо OpenShot запускається на цьому етапі, вітаємо! Тепер у вас є робоча локальна версія OpenShot, яка працює з вашого локального вихідного коду. Спробуйте внести деякі зміни у вихідний код і знову запустити OpenShot… тепер ви повинні побачити свої зміни!

Проблеми на GitHub

Тепер, коли ви успішно скомпілювали та запустили OpenShot Video Editor з вихідного коду, обов’язково перегляньте наш список звітів про помилки на GitHub: OpenShot Issues. Також рекомендуємо заповнити нашу коротку форму для учасників та представитися!

Поділіться своїми змінами

Як тільки ви виправите помилку або додасте чудову нову функцію, обов’язково поділіться цим з командою OpenShot. Ідеально, якщо ми зможемо об’єднати це з нашою основною гілкою вихідного коду. Найпростіший спосіб поділитися своїми змінами — створити форк нашого репозиторію, надіслати свої зміни назад на GitHub і створити Pull Request. Pull Request повідомляє команді OpenShot, що у вас є зміни, готові до об’єднання. Потім ми можемо переглянути їх, надати відгук і, сподіваємося, об’єднати ваші зміни в основну гілку.