Geliştiriciler

Eğer bir programcıysanız (veya programcı olmak istiyorsanız) ve OpenShot için yeni özellikler geliştirmek, hataları düzeltmek veya kullanıcı arayüzünü iyileştirmekle ilgileniyorsanız, aşağıdaki bölümler nasıl başlayacağınızı ve nasıl katılacağınızı açıklayacaktır!

Genel Bakış

OpenShot Video Editor’ın 3 ana bileşeni vardır: Python & PyQt kullanıcı arayüzü (openshot-qt), C++ ses kütüphanesi (libopenshot-audio) ve C++ video kütüphanesi (libopenshot). Python, PyQt veya C++ hakkında bilginiz yoksa, bu konuları araştırmak ve öğrenmek için iyi bir zamandır.

Ancak, C++ bileşenleri kullanıcı arayüzüne hiç dahil olmadığından, birçok hata sadece Python bilgisiyle düzeltilebilir ve yeni özellikler eklenebilir. Python harika bir dildir, öğrenmesi çok eğlencelidir ve OpenShot geliştiricisi olmak için gereken tek ön koşuldur!

Uyarı

Aşağıdaki talimatlar, OpenShot geliştirme için yapılandırması en kolay ortam olan Ubuntu Linux içindir. Başka bir işletim sistemi kullanıyorsanız, devam etmeden önce Ubuntu LTS ile bir sanal makine çalıştırmanızı öneririm.

Geliştirme için Windows veya Mac sistemi kullanmanız gerekiyorsa, önce libopenshot wiki’sindeki derleme notlarına bakın. Kütüphaneyi tüm bağımlılıklarıyla derlemek sürecin en zor kısmıdır.

En Son Kaynak Kodunu Alma

Herhangi bir hatayı düzeltmeden veya özellik eklemeden önce, kaynak kodunu bilgisayarınıza almamız gerekiyor.

3 depomuzu klonlamak için git kullanın:

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

Geliştirme Ortamınızı Yapılandırma

OpenShot’u derlemek veya çalıştırmak için sisteminize bazı bağımlılıkları yüklememiz gerekiyor. Bunu yapmanın en kolay yolu Daily PPA kullanmaktır. PPA, yazılım paketlerimizi indirip yükleyebileceğiniz resmi olmayan bir Ubuntu deposudur.

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, PyQt5, PyQt6 ve PySide6’yı destekler. libopenshot, kullandığınız bağlama için doğru Qt sürümüne karşı derlenmelidir (Qt5: PyQt5, Qt6: PyQt6 veya PySide6).

PySide6 (Qt6) bağlamaları için, bu paketleri yükleyin:

sudo apt-get install \
                     python3-pyside6.qtcore \
                     python3-pyside6.qtgui \
                     python3-pyside6.qtwidgets \
                     python3-pyside6.qtstatemachine \
                     python3-pyside6.qtsvg \
                     python3-pyside6.qtuitools \
                     shiboken6

PyQt6 için, bu paketleri yükleyin:

sudo apt-get install \
                     qt6-base-dev \
                     qt6-base-dev-tools \
                     qt6-tools-dev \
                     qt6-svg-dev

PyQt6 çalışma zamanı, QtCore, QtGui, QtWidgets, QtSvg, QtStateMachine ve uic sağlamalıdır. Bazı dağıtımlar bu modülleri ayrı paketlere böler. Özellikle, Ubuntu 24.04’ün python3-pyqt6 paketi QtStateMachine içermemektedir. Bu sürümde, yukarıdaki PySide6 paketlerini kullanın veya tam PyQt6 wheel dosyasını bir Python sanal ortamında yükleyin:

python3 -m venv .venv
.venv/bin/python -m pip install PyQt6

OpenShot’u başlatmadan önce seçilen Qt bağlamasını ve gerekli modüllerini doğrulayın:

PYTHONPATH=src OPENSHOT_QT_API=pyqt6 .venv/bin/python -c \
    "from qt_api import QT_API, QStateMachine; print(QT_API, QStateMachine)"

Bu noktada, tüm 3 OpenShot bileşeninin kaynak kodunu yerel klasörlere klonlamış, OpenShot günlük PPA’sını yüklemiş ve gerekli tüm geliştirme ve çalışma zamanı bağımlılıklarını kurmuş olmalısınız. Bu harika bir başlangıçtır ve şimdi kod derlemeye başlayabiliriz!

libopenshot-audio (Derleme Talimatları)

Bu kütüphane ses oynatma ve ses efektleri için gereklidir. JUCE ses çerçevesine dayanır. İşte derlemek için komutlar:

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

Temelde, libopenshot-audio/build klasörüne geçiyoruz, ardından üst klasörde cmake .. komutunu çalıştırıyoruz. Bu, bağımlılıkları bulur ve bu kütüphaneyi derlemek için gereken tüm Makefile dosyalarını oluşturur. Sonra make bu Makefile’ları kullanarak kütüphaneyi derler ve make install belirtilen konuma kurar. Eğer CMAKE_INSTALL_PREFIX ayarlanmadıysa, dosyalar varsayılan olarak /usr/local/ dizinine kurulacak ve make install yönetici yetkileri gerektirecektir.

libopenshot (Derleme Talimatları)

Bu kütüphane video kod çözme, kodlama, animasyon ve hemen hemen her şey için gereklidir. Video düzenleme ve oynatma işlemlerinin çoğunu yapar. İşte derlemek için komutlar:

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

Temelde, libopenshot/build klasörüne geçiyoruz, ardından üst klasörde cmake .. komutunu çalıştırıyoruz. Bu, bağımlılıkları bulur ve bu kütüphaneyi derlemek için gereken tüm Makefile dosyalarını oluşturur. Sonra make bu Makefile’ları kullanarak kütüphaneyi derler. Derlenmiş libopenshot-audio kurulumumuzun konumunu belirttiğimiz için, sistemdeki sürüm yerine bu sürüm kullanılacaktır (varsa).

Derledikten sonra libopenshot kütüphanesini kurmuyoruz çünkü buna gerek yok. Test amaçlı, OpenShot’a libopenshot’ı doğrudan build dizinimizden kullanmasını söyleyebiliriz.

Dil Bağlayıcıları

libopenshot API’si, SWIG bağlayıcıları aracılığıyla birkaç dilde mevcuttur. Python, OpenShot kullanıcı arayüzü tarafından kullanılır ve ayrıca Ruby ve Java bağlayıcıları sağlıyoruz. Godot oyun motoruna video düzenleme özellikleri entegre etmek isteyen geliştiriciler için deneysel Godot 4.4 desteği de dahildir. Tüm bu bağlayıcılar aynı C++ kod tabanına bağlanır, böylece tercih ettiğiniz ortamdan video düzenleyebilirsiniz.

openshot-qt (Başlatma Talimatları)

Bu, ana PyQt Python uygulamamızdır. Python ile yazıldığı için çalıştırmak için derlemeye gerek yoktur. Yeni derlenmiş libopenshot-audio ve libopenshot kütüphanelerimizle kaynak koddan OpenShot’u başlatmak için aşağıdaki komutları kullanın:

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

Bu, OpenShot kullanıcı arayüzünü başlatmalıdır. Kaynak kod dosyalarında (*.py Python dosyaları, *.ui PyQt UI dosyaları vb.) yaptığınız tüm değişiklikler dahil edilecektir. Bu, libopenshot-audio ve libopenshot kütüphanelerini gerektirir ve yukarıdaki adımlarda bir sorun olursa, OpenShot muhtemelen başlatılamaz.

Eğer OpenShot bu noktada başlarsa, tebrikler! Artık yerel kaynak kodunuzdan çalışan çalışan bir OpenShot yerel sürümüne sahipsiniz. Kaynak kodda bazı değişiklikler yapmayı deneyin ve OpenShot’ı yeniden başlatın… şimdi değişikliklerinizi görmelisiniz!

Komut Satırı Başlatma Seçenekleri

Terminal veya betikten düzenleme, animasyon, toplu değişiklikler ve dışa aktarmalar için Komut Satırı Arayüzü bölümüne bakın. openshot-qt --cli intro (veya kaynaktan python3 src/launch.py --cli intro) ile başlayın. Önce --cli koyun, ardından düzenleme komutu ve seçenekleri gelsin.

Aşağıdaki başlatma seçenekleri, Windows’ta görünür terminal çıktısı için openshot-qt-cmd.exe dahil olmak üzere yüklü OpenShot uygulamasıyla çalışır. Windows CLI kullanımı için Komut Satırı Arayüzü bölümündeki konsol yürütülebilir rehberini izleyin. Kaynaktan çalıştırırken, uygulama adı yerine python3 src/launch.py kullanın. OpenShot’ın açmasını istediğiniz dosya yollarından önce seçenekleri koyun.

OpenShot komut satırı seçenekleri

Seçenek

Ne yapar

--cli

Komut Satırı Arayüzü bölümüne girin. Düzenleme komutları için --cli help kullanın.

-h, --help

Uygulama başlatma seçeneklerini göster ve çık. Düzenleme komutları için --cli help kullanın.

-V, --version

OpenShot sürümünü yazdırır ve çıkar.

-l CODE, --lang CODE

Bu başlatma için seçilen arayüz dilini kullanır. Kod, --list-languages ile gösterilenlerden biri olmalıdır.

--list-languages

Desteklenen dil kodlarını listeler ve çıkar.

--path FOLDER

Python modül arama yoluna bir klasör ekler. Birden fazla klasör eklemek için bu seçeneği tekrarlayabilirsiniz.

--feedback-preview

Kaydedilen ayarlarda daveti gösterildi olarak işaretlemeden başlatmada geri bildirim bildirimini gösterir.

--update-preview

Başlatmada güncelleme bildirimini gösterir. Her iki önizleme seçeneği birlikte kullanılabilir.

--test-models

Geliştirme için Qt’nin veri modeli test cihazını etkinleştirir (Qt 5.11 veya sonrası gerekir).

-d, --debug, --debug-ui

Detaylı arayüz mesajlarını günlük dosyasına ve terminale ekler.

--debug-engine

Detaylı video ve ses motoru mesajlarını günlük dosyasına ve terminale ekler.

--log-level LEVEL

OpenShot’un her iki parçası için dosyalarda ve terminalde günlükleme seviyesini ayarlar.

--log-file-level LEVEL

Her iki günlük dosyasındaki günlükleme seviyesini ayarlar.

--log-console-level LEVEL

OpenShot’un her iki parçası için terminalde günlükleme seviyesini ayarlar.

--debug-file

Detaylı arayüz mesajlarını sadece günlük dosyasına ekler. Bu eski seçenek kabul edilir ancak --help ile gösterilmez.

--debug-console

Detaylı arayüz mesajlarını sadece terminale ekler. Bu eski seçenek kabul edilir ancak --help ile gösterilmez.

PROJECT.osp veya medya dosyası yolları

İlk dosya yolu .osp ile bitiyorsa bir proje açar. Aksi takdirde, yeni bir proje başlatır ve verilen medya dosyalarını içe aktarır.

LEVEL için debug, info, warning, error, critical veya off kullanın. Günlük dosyası konumları, örnekler ve günlükleme seçenekleri hakkında daha fazla bilgi için Bir Sorunu Gidermek İçin Kayıtları Kullanma bakınız.

GitHub Sorunları

Artık OpenShot Video Editor’ü kaynak koddan başarıyla derleyip başlattığınıza göre, GitHub’daki hata raporları listemize göz atmayı unutmayın: OpenShot Issues. Ayrıca, hızlı katılımcı formumuzu doldurmanız ve kendinizi tanıtmanız teşvik edilir!

Değişikliklerinizi Paylaşın

Bir hatayı düzelttikten veya harika yeni bir özellik ekledikten sonra, bunu OpenShot ekibiyle paylaşmayı unutmayın. İdeal olarak, bunu ana kaynak kodu dalımıza birleştirebiliriz. Değişikliklerinizi paylaşmanın en kolay yolu, depomuzun bir çatallanmasını oluşturmak, değişikliklerinizi GitHub’a göndermek ve bir Pull Request oluşturmaktır. Bir Pull Request, OpenShot ekibine değişikliklerinizin birleştirilmeye hazır olduğunu bildirir. Ardından, inceleyebilir, geri bildirim verebilir ve umarız değişikliklerinizi ana dala birleştirebiliriz.