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 \
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 \
pkg-config \
python3-dev \
protobuf-compiler \
qtbase5-dev \
libqt5svg5-dev \
libxcb-xfixes0-dev \
qtmultimedia5-dev \
swig
OpenShot ondersteunt PyQt5, PyQt6 en PySide6. libopenshot moet worden gebouwd tegen de juiste Qt-versie voor de binding die u gebruikt (Qt5: PyQt5, Qt6: PyQt6 of PySide6).
Voor PySide6 (Qt6) bindings, installeer deze pakketten:
sudo apt-get install \
python3-pyside6.qtcore \
python3-pyside6.qtgui \
python3-pyside6.qtwidgets \
python3-pyside6.qtstatemachine \
python3-pyside6.qtsvg \
python3-pyside6.qtuitools \
shiboken6
Voor PyQt6, installeer deze pakketten:
sudo apt-get install \
qt6-base-dev \
qt6-base-dev-tools \
qt6-tools-dev \
qt6-svg-dev
De PyQt6-runtime moet QtCore, QtGui, QtWidgets, QtSvg, QtStateMachine en uic bevatten. Sommige distributies splitsen deze modules in aparte pakketten. In het bijzonder bevat het python3-pyqt6 pakket van Ubuntu 24.04 QtStateMachine niet. Gebruik in die release de bovenstaande PySide6-pakketten of installeer het volledige PyQt6-wiel in een Python virtuele omgeving:
python3 -m venv .venv
.venv/bin/python -m pip install PyQt6
Controleer de geselecteerde Qt-binding en de vereiste modules voordat u OpenShot start:
PYTHONPATH=src OPENSHOT_QT_API=pyqt6 .venv/bin/python -c \
"from qt_api import QT_API, QStateMachine; print(QT_API, QStateMachine)"
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!
Opdrachtregelopties
Deze opties werken met de geïnstalleerde OpenShot-toepassing, inclusief openshot-qt.exe op Windows. Bij het uitvoeren vanuit de broncode, gebruik python3 src/launch.py in plaats van de toepassingsnaam. Plaats opties vóór de bestandslocaties die OpenShot moet openen.
Optie |
Wat het doet |
|---|---|
|
Toon de beschikbare opties en sluit af. |
|
Toon de OpenShot-versie en sluit af. |
|
Gebruik de gekozen interface-taal voor deze start. De code moet een van de getoonde zijn bij |
|
Toon ondersteunde taalcodes en sluit af. |
|
Voeg een map toe aan het zoekpad voor Python-modules. Je kunt deze optie herhalen om meerdere mappen toe te voegen. |
|
Toon de feedbackmelding bij het starten zonder de uitnodiging als getoond te markeren in opgeslagen instellingen. |
|
Toon de update-melding bij het starten. Beide preview-opties kunnen samen worden gebruikt. |
|
Schakel Qt’s datamodeltester in voor ontwikkeling (vereist Qt 5.11 of later). |
|
Voeg gedetailleerde interfaceberichten toe aan het logbestand en de terminal. |
|
Voeg gedetailleerde video- en audio-engineberichten toe aan het logbestand en de terminal. |
|
Stel het logniveau in voor beide delen van OpenShot, in bestanden en de terminal. |
|
Stel het logniveau in in beide logbestanden. |
|
Stel het logniveau in de terminal in voor beide delen van OpenShot. |
|
Voeg gedetailleerde interfaceberichten alleen toe aan het logbestand. Deze oudere optie wordt geaccepteerd maar niet getoond bij |
|
Voeg gedetailleerde interfaceberichten alleen toe aan de terminal. Deze oudere optie wordt geaccepteerd maar niet getoond bij |
|
Open een project wanneer het eerste bestandspad eindigt op |
Gebruik voor LEVEL debug, info, warning, error, critical of off. Zie Logbestanden gebruiken om een probleem op te lossen voor locaties van logbestanden, voorbeelden en meer informatie over het kiezen van logopties.
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!