Skip to content
Dominik Skabic edited this page Jun 2, 2025 · 6 revisions

Welcome to the OBS Clone Project Wiki

Table of Contents

🚀 Overview

🧩 Desktop App

🖥 Backend

💻 Frontend

🛠 Dev Tips


This wiki contains comprehensive documentation for our OBS (Open Broadcaster Software) clone project, developed as part of our university coursework. Here you'll find information about the project requirements, technical documentation, operational procedures, and development insights.

Project Overview

Our project aims to recreate core functionalities of OBS Studio, a free and open-source software for video recording and live streaming. This clone implementation focuses on a basic implementation of screen and audio features with the capability of streaming or recording the encoded data to any streaming service.

Project Planning

Our project planning documentation includes:

Getting Started

To get started with our project:

  1. Check out the Project Requirements to understand the scope
  2. Set up your environment by following the Development Setup guide
  3. Review the Architecture Overview to understand the system structure
  4. See Team Liabilities to understand who is responsible for what
  5. Review the Work Breakdown Structure to understand the full project scope

Software architecture design patterns

  • Each pattern has its own strengths and weaknesses, making some better suited for certain types of applications

  • Choosing the right architecture pattern is important for system success, affecting flexibility, scalability, and ease of maintenance.

  • Software architecture design pattern that we used is MVC, but we think that microservices are maybe better suited for our project.

Code Profiling

A comparison between a naive and an optimized implementation of sendVideoFrame() in an FFmpeg-based video recorder. Highlights common performance and memory management pitfalls, such as redundant context initialization, inefficient buffer handling, and timestamp issues — with clear improvements and explanations.

Cylomatic Complexity

Cyclomatic complexity is a software metric used to measure the complexity of a program's control flow. It counts the number of linearly independent paths through a program's source code, helping identify code that may be difficult to test or maintain.

Clone this wiki locally