-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- Desktop App Overview
- Screen Capture
- Audio Capture
- Video and Audio encoding
- Recording and Streaming with FFmpeg
- Backend Setup
- API Routes and Authentication
- Database Schema
- Following System
- Profile management
- Feature testing
- Cyclomatic complexity on backend
- Channel system
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.
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.
Our project planning documentation includes:
- Work Breakdown Structure (WBS) - Hierarchical decomposition of the total project scope
- PERT Diagram - Program Evaluation and Review Technique chart showing task dependencies and critical path
To get started with our project:
- Check out the Project Requirements to understand the scope
- Set up your environment by following the Development Setup guide
- Review the Architecture Overview to understand the system structure
- See Team Liabilities to understand who is responsible for what
- Review the Work Breakdown Structure to understand the full project scope
-
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.
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.
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.