Разработчики
Если вы программист (или хотите им стать) и заинтересованы в разработке новых функций, исправлении ошибок или улучшении пользовательского интерфейса 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. Все изменения, внесённые вами в исходные файлы кода (файлы Python *.py, файлы PyQt UI *.ui и т.д.), будут включены. Для этого требуются библиотеки libopenshot-audio и libopenshot, и если что-то пошло не так на предыдущих шагах, OpenShot, скорее всего, не запустится.
Если OpenShot запускается на этом этапе, поздравляем! Теперь у вас есть рабочая локальная версия OpenShot, которая работает на основе вашего локального исходного кода. Попробуйте внести изменения в исходный код и перезапустить OpenShot… теперь вы должны увидеть свои изменения!
Проблемы на GitHub
Теперь, когда вы успешно скомпилировали и запустили OpenShot Video Editor из исходного кода, обязательно ознакомьтесь с нашим списком отчетов об ошибках на GitHub: OpenShot Issues. Также мы рекомендуем заполнить нашу короткую форму для участников и представиться!