Mon Apr 01 2024

As a Software Architect, I conducted research to identify solutions for implementing a headless livestreaming server. A headless server operates without a graphical user interface (GUI) and is managed via command-line instructions or an API. The solutions were based on Node.js, a runtime environment that allows developers to run JavaScript code outside of a web browser, and Express.js, a popular open-source framework for Node.js that simplifies the process of building web applications and APIs.
Project Description
The research focused on evaluating three different solutions:
- OBS Studio with the obs-websocket-js package
- FFMPEG Library with the fluent-ffmpeg package
- vMix with the node-vmix package
The study conducted load testing, measuring performance with varying client loads of 50, 150, 250, and 300, on videos with resolutions including 4K, 1080P, and 720P. All three solutions were capable of handling 1080P and 720P videos but differed in performance with 4K videos. OBS Studio and vMix struggled with 4K videos due to high CPU usage that led to encoding overload, while FFMPEG performed better with the lowest CPU load. Memory usage was insignificant in the performance. Moreover, it was observed that using a constant bit rate may be more resource-efficient compared to variable bit rate settings.
Skills and Deliverables
- Server Development: Implemented a headless server architecture to manage livestreaming without a GUI.
- Back-End Development: Utilized Node.js and Express.js to create APIs for managing the livestreaming process.
- Software Architecture & Design: Designed a scalable and efficient system capable of handling various client loads and video resolutions.
Key Findings
- OBS Studio: Offers a free license but lacks as many advanced features compared to vMix.
- FFMPEG: Showed the best performance and video processing for all resolutions but has limited livestreaming capability.
- vMix: Offers professional-level features and good performance over 1080P and 720P videos for a license fee.
The research provides practical implications for professionals implementing livestreaming solutions and contributes to the academic understanding of headless servers and livestreaming technology. It emphasizes the importance of a fast and efficient CPU for processing high-quality videos and suggests future avenues for research in this field.