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 \
                     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

Ở 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-audiolibopenshot 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-audiolibopenshot, 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!

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!

Chia sẻ Thay đổi của bạn

Khi bạn đã sửa một lỗi hoặc thêm một tính năng mới tuyệt vời, hãy chắc chắn chia sẻ nó với nhóm OpenShot. Lý tưởng nhất, chúng tôi có thể hợp nhất nó vào nhánh mã nguồn chính của chúng tôi. Cách dễ nhất để chia sẻ thay đổi của bạn là tạo một bản fork của kho lưu trữ, đẩy các thay đổi của bạn lên GitHub và tạo một Pull Request. Pull Request cho nhóm OpenShot biết bạn đã sẵn sàng để hợp nhất các thay đổi. Sau đó, chúng tôi có thể xem xét, đưa ra phản hồi và hy vọng hợp nhất các thay đổi của bạn vào nhánh chính.