Posts in category 'research'
Category: Research
WebRTC bitrate is not what you think, Part II (Mediasoup edition)
What changes when you add an SFU (Mediasoup) in the middle of the pipeline?
WebRTC bitrate is not what you think Signature Post
Most WebRTC discussions about bitrate are wrong. Not because people don’t know the APIs, but because they don’t control the experiment.
So instead of asking:
“what bitrate should I use?”
I built something slightly different:
a reproducible WebRTC benchmark to measure how codecs behave under controlled conditions
This is what came out of it.
Deterministic Audio Fixtures for End-to-End Testing Signature Post
Designing Robust Spectral Validation for Audio Pipelines
Testing audio systems is deceptively hard.
Unlike text or structured data, audio pipelines are often lossy, time-sensitive, and highly stateful. Codecs introduce quantization noise, transports introduce jitter, buffers may reorder or drop frames, and decoders may subtly alter timing or amplitude. Traditional byte-level comparisons or waveform diffs are therefore brittle and misleading.
In this article, I present audio-test-fixtures, a deterministic, spectral-based approach to testing audio pipelines end-to-end. The result is a small but robust toolkit that generates known audio fixtures and validates decoded output using FFT-based frequency analysis, designed to work reliably even with lossy codecs and imperfect transports.
WebRTC Bugs and Where to Find Them Signature Post
Also for the most basic use cases, WebRTC is a complex technology, with lots of moving parts and involved elements and parties working together at the same time, so when a WebRTC connection is not working properly, or directly it can not be created, there’s a series of not-so-obvious usual reasons that can make it fail. We are going to analize some of the most common ones, and when possible, see how we can fix them or find some alternatives solutions to minimize their impact.
WebRTC horizontal scaling
When aproaching the horizontal scaling of WebRTC servers, we have two main aproachs: decentralized P2P, and using a central server. Each one has its own drawbacks and advantages, and I had difficulties to identify what aproach was the best, since I usually have a personal preference for pure P2P architectures, but they are not the most simple nor always the more efficient ones. So when deciding how to aproach Mafalda horizontal scaling, I needed to consider the pros and cons of each use case I would need, and here we have my conclusions.