Розробники
Якщо ви програміст (або хочете ним стати) і зацікавлені у розробці нових функцій, виправленні помилок або покращенні інтерфейсу користувача 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. Також рекомендуємо заповнити нашу коротку форму для учасників та представитися!