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 \
                     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

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ę!

Udostępnij swoje zmiany

Gdy naprawisz błąd lub dodasz niesamowitą nową funkcję, koniecznie podziel się tym z zespołem OpenShot. Najlepiej, jeśli uda nam się scalić to z główną gałęzią kodu źródłowego. Najłatwiejszym sposobem na udostępnienie swoich zmian jest utworzenie forka naszego repozytorium, wypchnięcie zmian na GitHub i utworzenie Pull Request. Pull Request informuje zespół OpenShot, że masz gotowe zmiany do scalenia. Następnie możemy je przejrzeć, udzielić opinii i, miejmy nadzieję, scalić twoje zmiany z główną gałęzią.