Ontwikkelaars

Als je een programmeur bent (of programmeur wilt worden) en geïnteresseerd bent in het ontwikkelen van nieuwe functies, het oplossen van bugs of het verbeteren van de gebruikersinterface van OpenShot, leggen de volgende secties uit hoe je kunt beginnen en meedoen!

Het Grote Overzicht

OpenShot Video Editor heeft 3 hoofdcomponenten: een Python & PyQt gebruikersinterface (openshot-qt), een C++ audiobibliotheek (libopenshot-audio) en een C++ videobibliotheek (libopenshot). Als je niet bekend bent met Python, PyQt of C++, zijn dat goede onderwerpen om nu te onderzoeken en meer over te leren.

Veel bugs kunnen echter worden opgelost en nieuwe functies toegevoegd met alleen Python-kennis, omdat de C++-componenten helemaal niet betrokken zijn bij de gebruikersinterface. Python is een geweldige taal, erg leuk om te leren, en is de enige vereiste vaardigheid om OpenShot-ontwikkelaar te worden!

Waarschuwing

De volgende instructies zijn voor Ubuntu Linux, de gemakkelijkste omgeving om te configureren voor OpenShot-ontwikkeling. Als je een ander besturingssysteem gebruikt, raad ik aan eerst een virtuele machine met Ubuntu LTS te draaien voordat je verder gaat.

Als je voor ontwikkeling een Windows- of Mac-systeem moet gebruiken, begin dan met de bouwinstructies in de libopenshot wiki. Het bouwen van de bibliotheek met al zijn afhankelijkheden is het meest uitdagende deel van het proces.

De nieuwste broncode verkrijgen

Voordat we bugs kunnen oplossen of functies kunnen toevoegen, moeten we de broncode op je computer krijgen.

Gebruik git om onze 3 repositories te klonen:

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

Je ontwikkelomgeving configureren

Om OpenShot daadwerkelijk te compileren of uit te voeren, moeten we enkele afhankelijkheden op je systeem installeren. De gemakkelijkste manier is via onze Daily PPA. Een PPA is een onofficiële Ubuntu-repository met onze softwarepakketten om te downloaden en installeren.

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

Op dit punt zou je de broncode van alle 3 OpenShot-componenten in lokale mappen moeten hebben gekloond, de OpenShot daily PPA geïnstalleerd en alle benodigde ontwikkel- en runtime-afhankelijkheden geïnstalleerd. Dit is een geweldige start, en we zijn nu klaar om code te compileren!

libopenshot-audio (Bouwinstructies)

Deze bibliotheek is vereist voor audio-afspelen en audio-effecten. Het is gebaseerd op het JUCE audio-framework. Hier zijn de commando’s om het te bouwen:

cd libopenshot-audio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=dist ..
make
make install

In feite schakelen we over naar de map libopenshot-audio/build, en voeren dan cmake .. uit in de bovenliggende map. Dit zoekt afhankelijkheden en maakt alle benodigde Makefiles om deze bibliotheek te compileren. Daarna gebruikt make die Makefiles om de bibliotheek te compileren, en make install installeert ze op de opgegeven locatie. Als CMAKE_INSTALL_PREFIX niet is ingesteld, worden de bestanden standaard geïnstalleerd in /usr/local/ en vereist make install beheerdersrechten.

libopenshot (Bouwinstructies)

Deze bibliotheek is vereist voor video-decoding, encoding, animatie en vrijwel alles. Het doet al het zware werk van video bewerken en afspelen. Hier zijn de commando’s om het te bouwen:

cd libopenshot
mkdir build
cd build
cmake -DLIBOPENSHOT_AUDIO_DIR=../../libopenshot-audio/build/dist ..
make

In feite schakelen we over naar de map libopenshot/build, en voeren dan cmake .. uit in de bovenliggende map. Dit zoekt afhankelijkheden en maakt alle benodigde Makefiles om deze bibliotheek te compileren. Daarna gebruikt make die Makefiles om de bibliotheek te compileren. Omdat we de locatie van onze gecompileerde libopenshot-audio installatie hebben opgegeven, wordt die versie van de bibliotheek gebruikt in plaats van de systeemversie (indien aanwezig).

We installeren onze libopenshot niet na het bouwen, omdat dat niet nodig is. Voor testdoeleinden kunnen we OpenShot vertellen om libopenshot direct vanuit onze build-map te gebruiken.

Taalbindings

De libopenshot API is beschikbaar in meerdere talen via SWIG-bindings. Python wordt gebruikt door de OpenShot-gebruikersinterface, en we bieden ook Ruby- en Java-bindings. Experimentele ondersteuning voor Godot 4.4 is inbegrepen voor ontwikkelaars die video-bewerkingsfuncties in de Godot game engine willen integreren. Al deze bindings verwijzen naar dezelfde C++ codebasis, zodat je video kunt bewerken vanuit de omgeving die je verkiest.

openshot-qt (Startinstructies)

Dit is onze hoofd-PyQt Python-applicatie. Omdat het in Python is geschreven, hoeft het niet gecompileerd te worden om te draaien. Om OpenShot vanuit de broncode te starten met onze nieuw gebouwde libopenshot-audio en libopenshot bibliotheken, gebruik je de volgende commando’s:

cd openshot-qt
PYTHONPATH=../libopenshot/build/src/bindings/python
python3 src/launch.py

Dit zou de OpenShot-gebruikersinterface moeten starten. Alle wijzigingen die u hebt aangebracht in de broncodebestanden (*.py Python-bestanden, *.ui PyQt UI-bestanden, enzovoort) worden meegenomen. Dit vereist de libopenshot-audio en libopenshot bibliotheken, en als er iets misging met de bovenstaande stappen, zal OpenShot waarschijnlijk niet starten.

Als OpenShot op dit punt start, gefeliciteerd! U hebt nu een werkende lokale versie van OpenShot, die draait vanaf uw lokale broncode. Probeer wat wijzigingen aan te brengen in de broncode en start OpenShot opnieuw… u zou nu uw wijzigingen moeten zien!

GitHub-problemen

Nu u OpenShot Video Editor succesvol hebt gecompileerd en gestart vanuit de broncode, bekijk zeker onze lijst met foutmeldingen op GitHub: OpenShot Issues. Ook moedigen we u aan om ons korte bijdragersformulier in te vullen en uzelf voor te stellen!

Deel uw wijzigingen

Zodra u een bug hebt opgelost of een geweldige nieuwe functie hebt toegevoegd, deel dit dan met het OpenShot-team. Idealiter kunnen we dit samenvoegen in onze hoofdbroncodebranch. De gemakkelijkste manier om uw wijzigingen te delen is door een fork van onze repository te maken, uw wijzigingen terug naar GitHub te pushen en een Pull Request aan te maken. Een Pull Request laat het OpenShot-team weten dat u wijzigingen klaar hebt om samengevoegd te worden. Vervolgens kunnen we dit beoordelen, feedback geven en hopelijk uw wijzigingen in de hoofdbranch samenvoegen.