Nhà phát triển
Nếu bạn là lập trình viên (hoặc muốn trở thành lập trình viên), và quan tâm đến việc phát triển tính năng mới, sửa lỗi, hoặc cải thiện giao diện người dùng cho OpenShot, các phần sau sẽ giải thích cách bắt đầu và tham gia!
Tổng quan
OpenShot Video Editor có 3 thành phần chính: giao diện người dùng Python & PyQt (openshot-qt), thư viện âm thanh C++ (libopenshot-audio) và thư viện video C++ (libopenshot). Nếu bạn chưa quen với Python, PyQt hoặc C++, đây sẽ là những chủ đề tuyệt vời để nghiên cứu và tìm hiểu thêm.
Tuy nhiên, nhiều lỗi có thể được sửa và tính năng mới có thể được thêm chỉ với kiến thức Python, vì các thành phần C++ không tham gia vào giao diện người dùng. Python là một ngôn ngữ tuyệt vời, rất thú vị để học, và là kỹ năng tiên quyết duy nhất để trở thành nhà phát triển OpenShot!
Cảnh báo
Các hướng dẫn sau dành cho Ubuntu Linux, môi trường dễ cấu hình nhất để phát triển OpenShot. Nếu bạn dùng hệ điều hành khác, tôi đề nghị chạy máy ảo với Ubuntu LTS trước khi tiếp tục.
Nếu bạn phải dùng hệ thống Windows hoặc Mac để phát triển, hãy bắt đầu bằng cách tham khảo ghi chú xây dựng trong wiki libopenshot. Việc xây dựng thư viện cùng tất cả các phụ thuộc là phần khó nhất của quá trình.
Lấy mã nguồn mới nhất
Trước khi sửa lỗi hoặc thêm tính năng, chúng ta cần lấy mã nguồn về máy tính của bạn.
Dùng git để sao chép 3 kho lưu trữ của chúng tôi:
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
Cấu hình môi trường phát triển của bạn
Để biên dịch hoặc chạy OpenShot, chúng ta cần cài đặt một số phụ thuộc trên hệ thống. Cách dễ nhất là dùng Daily PPA của chúng tôi. PPA là kho lưu trữ Ubuntu không chính thức, có các gói phần mềm của chúng tôi để tải về và cài đặt.
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 hỗ trợ PyQt5, PyQt6 và PySide6. libopenshot phải được xây dựng dựa trên phiên bản Qt chính xác cho binding mà bạn đang sử dụng (Qt5: PyQt5, Qt6: PyQt6 hoặc PySide6).
Đối với binding PySide6 (Qt6), hãy cài đặt các gói sau:
sudo apt-get install \
python3-pyside6.qtcore \
python3-pyside6.qtgui \
python3-pyside6.qtwidgets \
python3-pyside6.qtstatemachine \
python3-pyside6.qtsvg \
python3-pyside6.qtuitools \
shiboken6
Đối với PyQt6, hãy cài đặt các gói sau:
sudo apt-get install \
qt6-base-dev \
qt6-base-dev-tools \
qt6-tools-dev \
qt6-svg-dev
Thời gian chạy PyQt6 phải cung cấp QtCore, QtGui, QtWidgets, QtSvg, QtStateMachine và uic. Một số bản phân phối tách các mô-đun này thành các gói riêng biệt. Cụ thể, gói python3-pyqt6 của Ubuntu 24.04 không bao gồm QtStateMachine. Trên phiên bản đó, hãy sử dụng các gói PySide6 ở trên hoặc cài đặt đầy đủ PyQt6 wheel trong môi trường ảo Python:
python3 -m venv .venv
.venv/bin/python -m pip install PyQt6
Xác minh binding Qt đã chọn và các mô-đun cần thiết trước khi khởi chạy OpenShot:
PYTHONPATH=src OPENSHOT_QT_API=pyqt6 .venv/bin/python -c \
"from qt_api import QT_API, QStateMachine; print(QT_API, QStateMachine)"
Ở bước này, bạn nên đã sao chép mã nguồn của cả 3 thành phần OpenShot vào thư mục cục bộ, cài đặt PPA hàng ngày của OpenShot, và cài đặt tất cả các phụ thuộc phát triển và chạy cần thiết. Đây là khởi đầu tuyệt vời, và bây giờ chúng ta sẵn sàng biên dịch mã!
libopenshot-audio (Hướng dẫn xây dựng)
Thư viện này cần thiết cho phát âm thanh và hiệu ứng âm thanh. Nó dựa trên framework âm thanh JUCE. Dưới đây là các lệnh để xây dựng:
cd libopenshot-audio
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=dist ..
make
make install
Về cơ bản, chúng ta chuyển đến thư mục libopenshot-audio/build, sau đó chạy cmake .. trên thư mục cha. Lệnh này tìm các phụ thuộc và tạo tất cả các Makefile cần thiết để biên dịch thư viện này. Sau đó make dùng các Makefile đó để biên dịch thư viện, và make install cài đặt chúng vào vị trí đã chỉ định. Nếu CMAKE_INSTALL_PREFIX không được đặt, các tệp sẽ được cài đặt vào /usr/local/ (mặc định) và make install sẽ yêu cầu quyền quản trị để chạy.
libopenshot (Hướng dẫn xây dựng)
Thư viện này cần thiết cho giải mã, mã hóa video, hoạt hình, và hầu hết mọi thứ khác. Nó thực hiện phần lớn công việc nặng của chỉnh sửa và phát video. Dưới đây là các lệnh để xây dựng:
cd libopenshot
mkdir build
cd build
cmake -DLIBOPENSHOT_AUDIO_DIR=../../libopenshot-audio/build/dist ..
make
Về cơ bản, chúng ta chuyển đến thư mục libopenshot/build, sau đó chạy cmake .. trên thư mục cha. Lệnh này tìm các phụ thuộc và tạo tất cả các Makefile cần thiết để biên dịch thư viện này. Sau đó make dùng các Makefile đó để biên dịch thư viện. Vì chúng ta đã cung cấp vị trí cài đặt libopenshot-audio đã biên dịch, phiên bản thư viện đó sẽ được dùng thay cho phiên bản hệ thống (nếu có).
Chúng tôi không cài đặt libopenshot sau khi xây dựng vì không cần thiết. Để thử nghiệm, chúng ta có thể bảo OpenShot sử dụng libopenshot trực tiếp từ thư mục build.
Ràng buộc ngôn ngữ
API libopenshot có sẵn trong nhiều ngôn ngữ thông qua các ràng buộc SWIG. Python được giao diện OpenShot sử dụng, và chúng tôi cũng cung cấp ràng buộc Ruby và Java. Hỗ trợ thử nghiệm cho Godot 4.4 được bao gồm cho các nhà phát triển muốn tích hợp tính năng chỉnh sửa video vào engine game Godot. Tất cả các ràng buộc này đều ánh xạ đến cùng một mã nguồn C++ để bạn có thể chỉnh sửa video từ môi trường bạn thích.
openshot-qt (Hướng dẫn khởi chạy)
Đây là ứng dụng chính PyQt Python của chúng tôi. Vì được viết bằng Python, nó không cần biên dịch để chạy. Để khởi chạy OpenShot từ mã nguồn với các thư viện libopenshot-audio và libopenshot mới xây dựng, sử dụng các lệnh sau:
cd openshot-qt
PYTHONPATH=../libopenshot/build/src/bindings/python
python3 src/launch.py
Điều này sẽ khởi chạy giao diện người dùng OpenShot. Bất kỳ thay đổi nào bạn đã thực hiện đối với các tệp mã nguồn (tệp Python *.py, tệp giao diện PyQt *.ui, v.v...) sẽ được bao gồm. Điều này yêu cầu các thư viện libopenshot-audio và libopenshot, và nếu có điều gì đó sai sót trong các bước trên, OpenShot có thể sẽ không khởi chạy.
Nếu OpenShot khởi chạy tại thời điểm này, chúc mừng bạn! Bây giờ bạn đã có một phiên bản OpenShot hoạt động cục bộ, chạy từ mã nguồn cục bộ của bạn. Hãy thử thực hiện một số thay đổi trong mã nguồn và khởi chạy lại OpenShot... bạn sẽ thấy các thay đổi của mình!
Tùy chọn Dòng lệnh
Các tùy chọn này hoạt động với ứng dụng OpenShot đã cài đặt, bao gồm openshot-qt.exe trên Windows. Khi chạy từ mã nguồn, sử dụng python3 src/launch.py thay cho tên ứng dụng. Đặt các tùy chọn trước bất kỳ đường dẫn tệp nào bạn muốn OpenShot mở.
Tùy chọn |
Chức năng |
|---|---|
|
Hiển thị các tùy chọn có sẵn và thoát. |
|
In phiên bản OpenShot và thoát. |
|
Sử dụng ngôn ngữ giao diện đã chọn cho lần khởi động này. Mã phải là một trong những mã được hiển thị bởi |
|
Liệt kê các mã ngôn ngữ được hỗ trợ và thoát. |
|
Thêm một thư mục vào đường dẫn tìm kiếm module Python. Bạn có thể lặp lại tùy chọn này để thêm nhiều thư mục hơn. |
|
Hiển thị thông báo phản hồi khi khởi động mà không đánh dấu lời mời đã hiển thị trong cài đặt đã lưu. |
|
Hiển thị thông báo cập nhật khi khởi động. Cả hai tùy chọn xem trước có thể được sử dụng cùng nhau. |
|
Bật trình kiểm tra mô hình dữ liệu của Qt cho phát triển (yêu cầu Qt 5.11 trở lên). |
|
Thêm các thông điệp giao diện chi tiết vào tệp nhật ký và terminal. |
|
Thêm các thông điệp chi tiết của động cơ video và âm thanh vào tệp nhật ký và terminal. |
|
Đặt mức ghi nhật ký cho cả hai phần của OpenShot, trong tệp và terminal. |
|
Đặt mức ghi nhật ký trong cả hai tệp nhật ký. |
|
Đặt mức ghi nhật ký trong terminal cho cả hai phần của OpenShot. |
|
Chỉ thêm các thông điệp giao diện chi tiết vào tệp nhật ký của nó. Tùy chọn cũ này được chấp nhận nhưng không được hiển thị bởi |
|
Chỉ thêm các thông điệp giao diện chi tiết vào terminal. Tùy chọn cũ này được chấp nhận nhưng không được hiển thị bởi |
|
Mở một dự án khi đường dẫn tệp đầu tiên kết thúc bằng |
Đối với LEVEL, sử dụng debug, info, warning, error, critical, hoặc off. Xem Sử dụng nhật ký để khắc phục sự cố để biết vị trí tệp nhật ký, ví dụ và thêm về cách chọn tùy chọn ghi nhật ký.
Các Vấn Đề trên GitHub
Bây giờ bạn đã biên dịch và khởi chạy thành công OpenShot Video Editor từ mã nguồn, hãy chắc chắn xem danh sách báo cáo lỗi của chúng tôi trên GitHub: OpenShot Issues. Ngoài ra, bạn được khuyến khích điền vào biểu mẫu đóng góp nhanh của chúng tôi và giới thiệu về bản thân!