Guida introduttiva allo sviluppo di OBS Studio

Quindi vuoi contribuire alla programmazione per OBS Studio? Grande! Sia che tu stia creando un nuovo plugin o armeggiando con il core di OBS, apprezziamo tutti i contributi al progetto. Segui questa guida per iniziare a lavorare.

Alcune cose da sapere

Se sei interessato allo sviluppo di OBS Studio, dovresti avere esperienza nei linguaggi di programmazione C e C ++ e Objective-C per i sistemi Apple (facoltativamente). Si consiglia vivamente di leggere la Guida ai contributi di OBS Studio in modo da conoscere le linee guida sul codice e ciò che è necessario quando si desidera inviare una modifica.

Chat per sviluppatori

La nostra comunità di sviluppatori è sempre utile per i nuovi sviluppatori che desiderano bagnarsi i piedi con la programmazione OBS. Se hai bisogno di aiuto puoi unirti alla chat degli sviluppatori su Discord qui:https://discord.gg/obsproject

Avvio dello sviluppo OBS

1. Ottieni il codice

Controlla il codice sorgente di OBS Studio da Github: https://github.com/obsproject/obs-studio

git clone --recursive https://github.com/obsproject/obs-studio.git

Non dimenticare l' --recursiveargomento per ottenere tutti i sottomoduli.

2. Crea il codice

Il passaggio successivo consiste nel creare il programma in modo da poter iniziare ad apportare modifiche o plug-in.

Una guida per la creazione di OBS Studio per la tua piattaforma può essere trovata qui: https://obsproject.com/wiki/Install-Instructions

3. Leggere la documentazione

La documentazione di riferimento di OBS può essere trovata qui: https://obsproject.com/docs/

Si consiglia inoltre di esaminare alcuni dei plug-in predefiniti per vedere come interagiscono con l'API in OBS Studio. Nota che il core OBS (/ libobs) è separato dall'interfaccia utente OBS (/ ui), che è anche separato dai plug-in core OBS (/ plugins), quindi puoi iniziare a vedere come i diversi moduli di codice si adattano insieme.

4. Controlla i problemi nella pagina Idee e nel Bug Tracker

Molti utenti pubblicano idee e suggerimenti per migliorare OBS nella pagina Idee OBS. Puoi trovare la pagina Idee (Fider) qui:https://ideas.obsproject.com/

OBS Studio attualmente tiene traccia dei bug sui problemi di GitHub .

Sentiti libero di esplorare idee, problemi, suggerimenti e bug e, se ti senti così incline, prova a implementarne uno!

Sviluppo di plugin

Molte persone vogliono entrare nello sviluppo di OBS Studio per creare un plug-in, piuttosto che alterare le funzionalità di base. Si scopre che il codice OBS è già piuttosto modulare e molte funzionalità considerate "core" sono in realtà plug-in che vengono forniti in bundle con OBS, quindi conoscere lo sviluppo di OBS significa davvero imparare anche lo sviluppo di plug-in.

Per maggiori dettagli sullo sviluppo di plugin, controlla questa pagina della documentazione: https://obsproject.com/docs/plugins.html

Plugin di esempio

Scripting

Molte persone desiderano scrivere moduli per OBS, ma non hanno familiarità con C / C ++ o non vogliono affrontare la difficoltà di configurare un ambiente di compilazione. Fortunatamente, OBS è in grado di eseguire script Lua e Python tramite LuaJIT in bundle o l'ambiente Python del tuo sistema. Questi script sono in grado di accedere all'API OBS e di eseguire molte delle stesse cose che potresti fare scrivendo direttamente codice C / C ++ OBS. In effetti, puoi persino creare nuovi plugin con Lua (anche se non con Python).

Per maggiori dettagli sullo scripting, controlla questa pagina della documentazione: https://obsproject.com/docs/scripting.html

Una breve nota sulla licenza

OBS Studio è un programma open source con licenza GPLv2 . Ciò significa che se crei un plug-in per OBS Studio o una versione modificata di OBS Studio e lo distribuisci in formato binario, devi fornire agli utenti un modo per accedere al codice sorgente del tuo binario. In caso contrario, violerai la licenza. Il modo più semplice per farlo è disporre di un repository Github pubblico del fork o del plug-in e includere un file di testo nel download per il binario contenente un collegamento al repository. La parte rilevante della licenza si trova nella sezione 3 della GPLv2.

Grazie per essere disposto ad aiutare e buona fortuna!