Desenvolvedores

Se você é programador (ou quer se tornar um) e está interessado em desenvolver novos recursos, corrigir bugs ou melhorar a interface do usuário do OpenShot, as seções a seguir explicarão como começar e se envolver!

A Visão Geral

O OpenShot Video Editor possui 3 componentes principais: uma interface de usuário em Python & PyQt (openshot-qt), uma biblioteca de áudio em C++ (libopenshot-audio) e uma biblioteca de vídeo em C++ (libopenshot). Se você não está familiarizado com Python, PyQt ou C++, esses seriam ótimos tópicos para pesquisar e aprender mais neste momento.

No entanto, muitos bugs podem ser corrigidos e novos recursos adicionados apenas com conhecimento em Python, já que os componentes em C++ não estão envolvidos na interface do usuário. Python é uma linguagem incrível, muito divertida de aprender, e é a única habilidade pré-requisito para se tornar um desenvolvedor do OpenShot!

Aviso

As instruções a seguir são para Ubuntu Linux, que é o ambiente mais fácil de configurar para desenvolvimento do OpenShot. Se você estiver usando outro sistema operacional, sugiro executar uma máquina virtual com Ubuntu LTS antes de continuar.

Se você precisar usar um sistema Windows ou Mac para desenvolvimento, comece consultando as notas de compilação na wiki do libopenshot. Compilar a biblioteca com todas as suas dependências é a parte mais desafiadora do processo.

Obtendo o Código Fonte Mais Recente

Antes de corrigirmos qualquer bug ou adicionarmos recursos, precisamos obter o código fonte no seu computador.

Use git para clonar nossos 3 repositórios:

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

Configurando seu Ambiente de Desenvolvimento

Para compilar ou executar o OpenShot, precisamos instalar algumas dependências no seu sistema. A maneira mais fácil de fazer isso é com nosso Daily PPA. Um PPA é um repositório não oficial do Ubuntu, que disponibiliza nossos pacotes de software para download e instalação.

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

Neste ponto, você deve ter o código fonte dos 3 componentes do OpenShot clonados em pastas locais, o PPA diário do OpenShot instalado e todas as dependências de desenvolvimento e execução necessárias instaladas. Este é um ótimo começo, e agora estamos prontos para começar a compilar código!

libopenshot-audio (Instruções de Compilação)

Esta biblioteca é necessária para reprodução de áudio e efeitos sonoros. É baseada no framework de áudio JUCE. Aqui estão os comandos para compilá-la:

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

Basicamente, estamos mudando para a pasta libopenshot-audio/build, depois executando cmake .. na pasta pai. Isso encontra as dependências e cria todos os Makefiles necessários para compilar esta biblioteca. Em seguida, make usa esses Makefiles para compilar a biblioteca, e make install instala os arquivos no local especificado. Se CMAKE_INSTALL_PREFIX não estiver definido, os arquivos serão instalados em /usr/local/ (por padrão) e make install exigirá privilégios administrativos para ser executado.

libopenshot (Instruções de Compilação)

Esta biblioteca é necessária para decodificação, codificação, animação de vídeo e praticamente tudo mais. Ela realiza a maior parte do trabalho pesado da edição e reprodução de vídeo. Aqui estão os comandos para compilá-la:

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

Basicamente, estamos mudando para a pasta libopenshot/build, depois executando cmake .. na pasta pai. Isso encontra as dependências e cria todos os Makefiles necessários para compilar esta biblioteca. Em seguida, make usa esses Makefiles para compilar a biblioteca. Como fornecemos o local da instalação compilada do libopenshot-audio, essa versão da biblioteca será usada em vez da versão do sistema (se houver).

Não instalamos nosso libopenshot após a compilação, porque não é necessário. Para fins de teste, podemos instruir o OpenShot a usar o libopenshot diretamente do nosso diretório build.

Bindings de Linguagem

A API do libopenshot está disponível em várias linguagens através de bindings SWIG. Python é usado pela interface do OpenShot, e também fornecemos bindings para Ruby e Java. Suporte experimental para Godot 4.4 está incluído para desenvolvedores que desejam integrar recursos de edição de vídeo no motor de jogos Godot. Todos esses bindings mapeiam para a mesma base de código C++, permitindo que você edite vídeos no ambiente que preferir.

openshot-qt (Instruções de Execução)

Este é nosso aplicativo principal em PyQt Python. Como é escrito em Python, não requer compilação para ser executado. Para iniciar o OpenShot a partir do código fonte com nossas bibliotecas libopenshot-audio e libopenshot recém-compiladas, use os seguintes comandos:

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

Isto deve iniciar a interface do usuário do OpenShot. Quaisquer alterações que você tenha feito nos arquivos de código-fonte (arquivos Python *.py, arquivos PyQt UI *.ui, etc…) serão incluídas. Isso requer as bibliotecas libopenshot-audio e libopenshot, e se algo deu errado com os passos acima, provavelmente o OpenShot não será iniciado.

Se o OpenShot iniciar neste ponto, parabéns! Você agora tem uma versão local funcional do OpenShot, que está rodando a partir do seu código-fonte local. Tente fazer algumas alterações no código-fonte e reinicie o OpenShot… você deverá ver suas alterações agora!

Problemas no GitHub

Agora que você compilou e iniciou com sucesso o OpenShot Video Editor a partir do código-fonte, não deixe de conferir nossa lista de relatórios de bugs no GitHub: OpenShot Issues. Além disso, você é incentivado a preencher nosso rápido formulário de colaborador e se apresentar!

Compartilhe suas Alterações

Depois de corrigir um bug ou adicionar um recurso incrível, certifique-se de compartilhá-lo com a equipe do OpenShot. Idealmente, podemos mesclar isso no nosso ramo principal do código-fonte. A maneira mais fácil de compartilhar suas alterações é criando um fork do nosso repositório, enviando suas alterações de volta para o GitHub e criando um Pull Request. Um Pull Request informa à equipe do OpenShot que você tem alterações prontas para serem mescladas. Então podemos revisar, dar feedback e, esperançosamente, mesclar suas alterações no ramo principal.