Deweloperzy
Jeśli jesteś programistą (lub chcesz nim zostać) i interesuje Cię rozwijanie nowych funkcji, naprawianie błędów lub ulepszanie interfejsu użytkownika OpenShot, poniższe sekcje wyjaśnią, jak zacząć i zaangażować się!
Ogólny obraz
OpenShot Video Editor składa się z 3 głównych komponentów: interfejsu użytkownika w Pythonie i PyQt (openshot-qt), biblioteki audio w C++ (libopenshot-audio) oraz biblioteki wideo w C++ (libopenshot). Jeśli nie znasz Pythona, PyQt ani C++, warto teraz zgłębić te tematy.
Wiele błędów można jednak naprawić, a nowe funkcje dodać, znając tylko Pythona, ponieważ komponenty C++ nie są w ogóle zaangażowane w interfejs użytkownika. Python to niesamowity język, bardzo przyjemny do nauki i jest jedyną wymaganą umiejętnością, aby zostać deweloperem OpenShot!
Ostrzeżenie
Poniższe instrukcje dotyczą Ubuntu Linux, które jest najłatwiejszym środowiskiem do konfiguracji dla rozwoju OpenShot. Jeśli używasz innego systemu operacyjnego, zalecam uruchomienie maszyny wirtualnej z Ubuntu LTS przed kontynuowaniem.
Jeśli musisz używać systemu Windows lub Mac do rozwoju, zacznij od zapoznania się z notatkami dotyczącymi kompilacji w wiki libopenshot. Budowanie biblioteki wraz ze wszystkimi zależnościami jest najtrudniejszą częścią procesu.
Pobieranie najnowszego kodu źródłowego
Zanim naprawimy błędy lub dodamy funkcje, musimy pobrać kod źródłowy na Twój komputer.
Użyj git, aby sklonować nasze 3 repozytoria:
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
Konfiguracja środowiska programistycznego
Aby skompilować lub uruchomić OpenShot, musimy zainstalować kilka zależności w Twoim systemie. Najłatwiej zrobić to za pomocą naszego Daily PPA. PPA to nieoficjalne repozytorium Ubuntu, które zawiera nasze pakiety oprogramowania do pobrania i instalacji.
sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
sudo apt-get update
sudo apt-get install openshot-qt \
build-essential \
cmake \
catch2 \
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 \
python3-zmq \
protobuf-compiler \
qtbase5-dev \
libqt5svg5-dev \
libxcb-xfixes0-dev \
qtmultimedia5-dev \
swig
OpenShot obsługuje PyQt5, PyQt6 oraz PySide6. libopenshot musi być zbudowany dla odpowiedniej wersji Qt zgodnej z używanym powiązaniem (Qt5: PyQt5, Qt6: PyQt6 lub PySide6).
Dla powiązań PySide6 (Qt6) zainstaluj te pakiety:
sudo apt-get install \
python3-pyside6.qtcore \
python3-pyside6.qtgui \
python3-pyside6.qtwidgets \
python3-pyside6.qtstatemachine \
python3-pyside6.qtsvg \
python3-pyside6.qtuitools \
shiboken6
Dla PyQt6 zainstaluj te pakiety:
sudo apt-get install \
qt6-base-dev \
qt6-base-dev-tools \
qt6-tools-dev \
qt6-svg-dev
Środowisko uruchomieniowe PyQt6 musi zawierać QtCore, QtGui, QtWidgets, QtSvg, QtStateMachine oraz uic. Niektóre dystrybucje dzielą te moduły na osobne pakiety. W szczególności pakiet python3-pyqt6 w Ubuntu 24.04 nie zawiera QtStateMachine. W tej wersji użyj powyższych pakietów PySide6 lub zainstaluj kompletny pakiet PyQt6 w wirtualnym środowisku Pythona:
python3 -m venv .venv
.venv/bin/python -m pip install PyQt6
Zweryfikuj wybrane powiązanie Qt oraz wymagane moduły przed uruchomieniem OpenShot:
PYTHONPATH=src OPENSHOT_QT_API=pyqt6 .venv/bin/python -c \
"from qt_api import QT_API, QStateMachine; print(QT_API, QStateMachine)"
Na tym etapie powinieneś mieć sklonowany kod źródłowy wszystkich 3 komponentów OpenShot w lokalnych folderach, zainstalowane dzienne PPA OpenShot oraz wszystkie wymagane zależności do rozwoju i uruchomienia. To świetny początek, teraz możemy zacząć kompilować kod!
libopenshot-audio (Instrukcje kompilacji)
Ta biblioteka jest wymagana do odtwarzania dźwięku i efektów audio. Bazuje na frameworku JUCE. Oto polecenia do jej kompilacji:
cd libopenshot-audio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=dist ..
make
make install
W zasadzie przechodzimy do folderu libopenshot-audio/build, a następnie uruchamiamy cmake .. w folderze nadrzędnym. To znajduje zależności i tworzy wszystkie potrzebne Makefile do kompilacji tej biblioteki. Następnie make używa tych Makefile do kompilacji biblioteki, a make install instaluje ją w określonej lokalizacji. Jeśli CMAKE_INSTALL_PREFIX nie jest ustawiony, pliki zostaną zainstalowane domyślnie do /usr/local/, a make install będzie wymagać uprawnień administratora.
libopenshot (Instrukcje kompilacji)
Ta biblioteka jest wymagana do dekodowania, kodowania wideo, animacji i niemal wszystkiego innego. Wykonuje większość ciężkiej pracy związanej z edycją i odtwarzaniem wideo. Oto polecenia do jej kompilacji:
cd libopenshot
mkdir build
cd build
cmake -DLIBOPENSHOT_AUDIO_DIR=../../libopenshot-audio/build/dist ..
make
W zasadzie przechodzimy do folderu libopenshot/build, a następnie uruchamiamy cmake .. w folderze nadrzędnym. To znajduje zależności i tworzy wszystkie potrzebne Makefile do kompilacji tej biblioteki. Następnie make używa tych Makefile do kompilacji biblioteki. Ponieważ podaliśmy lokalizację naszej skompilowanej instalacji libopenshot-audio, ta wersja biblioteki zostanie użyta zamiast systemowej (jeśli istnieje).
Nie instalujemy libopenshot po kompilacji, ponieważ nie jest to potrzebne. Do celów testowych możemy powiedzieć OpenShot, aby używał libopenshot bezpośrednio z naszego katalogu build.
Więzy językowe
API libopenshot jest dostępne w kilku językach dzięki powiązaniom SWIG. Python jest używany przez interfejs użytkownika OpenShot, a także udostępniamy powiązania dla Ruby i Java. Eksperymentalne wsparcie dla Godot 4.4 jest dostępne dla deweloperów, którzy chcą zintegrować funkcje edycji wideo z silnikiem gry Godot. Wszystkie te powiązania odnoszą się do tej samej bazy kodu C++, dzięki czemu możesz edytować wideo w preferowanym środowisku.
openshot-qt (Instrukcje uruchamiania)
To nasza główna aplikacja PyQt napisana w Pythonie. Ponieważ jest napisana w Pythonie, nie wymaga kompilacji do uruchomienia. Aby uruchomić OpenShot z kodu źródłowego z nowo skompilowanymi bibliotekami libopenshot-audio i libopenshot, użyj następujących poleceń:
cd openshot-qt
PYTHONPATH=../libopenshot/build/src/bindings/python
python3 src/launch.py
To powinno uruchomić interfejs użytkownika OpenShot. Wszelkie zmiany, które wprowadziłeś w plikach źródłowych (plikach Python *.py, plikach PyQt UI *.ui itd.) zostaną uwzględnione. Wymaga to bibliotek libopenshot-audio i libopenshot, a jeśli coś poszło nie tak w powyższych krokach, OpenShot prawdopodobnie się nie uruchomi.
Jeśli OpenShot uruchomi się w tym momencie, gratulacje! Masz teraz działającą lokalną wersję OpenShot, która działa na podstawie twojego lokalnego kodu źródłowego. Spróbuj wprowadzić jakieś zmiany w kodzie źródłowym i ponownie uruchomić OpenShot… teraz powinieneś zobaczyć swoje zmiany!
Zgłoszenia na GitHub
Teraz, gdy udało Ci się skompilować i uruchomić OpenShot Video Editor ze źródła, koniecznie sprawdź naszą listę zgłoszeń błędów na GitHub: OpenShot Issues. Zachęcamy również do wypełnienia naszego krótkiego formularza dla współtwórców i przedstawienia się!