The previous post covered what v0.2.0 ships. This one covers why it’s designed that way — distributed consistency is the heaviest part of this release, and several seemingly casual decisions have specific trade-offs behind them.
The problem is clear: the center can only see its own LAN, but users have several. Dropping a center into every subnet isn’t realistic, so enter mibee-agent — a binary that only “scans local + reports to center.” But the moment an agent exists, it drags along a whole string of protocol questions: how to report, how to reconcile, how to detect offline, how not to overwhelm the center’s writes. Let’s take them one at a time.
When v0.1.0 shipped, I wrote that it answers three questions: what devices are on the network, what they are, and how they relate. Honestly, v0.1.0 only answered the first half well — and only for the one LAN the center sat on.
The real-world layout is messier: one subnet in the office, one in the server room, another at home for test machines. The center lives in the office and literally cannot see the cameras in the server room. Getting it to scan the server room means crossing subnets — either opening up SNMP routing or just moving the center over there. Neither is elegant.
Part 2 of this series used edge-tts to generate voiceovers, and Part 5 laid out the TTS technology evolution. This is the final installment — a complete selection guide for when your project outgrows edge-tts. What are the 31 TTS engines and services on the market, and how do you choose among them?
We organize the selection landscape into three layers: free open-source engines (run locally, zero licensing cost but with GPU deployment overhead), free cloud tiers (ready out of the box with usage limits), and paid services (ready out of the box + SLA + advanced capabilities). These are not strictly hierarchical — an open-source engine on self-hosted GPU can be cheaper long-term than paid cloud, while cloud services offer convenience that self-deployment can’t match. The choice ultimately depends on your budget, team capacity, and timeline.
In Part 2, we used three lines of edge-tts code to generate voiceovers for our promo video. But edge-tts is just one entry point into the vast world of TTS — where did its neural architecture come from? And beyond calling Microsoft’s API, what else can TTS do today?
This article traces speech synthesis from VODER in 1939 to Flow Matching in 2025, covering the evolution of neural TTS and its frontier capabilities. By the end, you’ll be able to answer a few questions: why can’t free edge-tts clone voices, what modern TTS can actually do, and where it’s heading next.
Overview This is the final installment of the series. The previous three parts covered generating footage with Remotion, batch voiceover with edge-tts, and offline BGM synthesis with numpy. This part brings everything together: using ffmpeg filter_complex to mux the silent video, 7 voice clips, and one BGM into the final export — along with the end-to-end workflow, a pitfall cookbook, and the underlying principles.
ffmpeg Muxing Overall Approach The muxing stage has a simple job: pack three things into one MP4.
Offline BGM Synthesis with numpy The third challenge is background music. This project uses numpy to synthesize a 45-second ethereal BGM on the fly — zero copyright risk, fully controllable style.
Why Not a Music Library Stock music libraries have three problems:
Copyright ambiguity: Free tracks come with varying licenses; commercial use may be risky. Style mismatch: Finding a 45-second ethereal track that doesn’t compete with voiceover and can be trimmed to any length is nearly impossible. No batch tweaking: Need to adjust volume, change reverb, or switch keys? A fixed recording gives you no control. Code generation flips this: tweak a few parameters, re-run, and you get a new version instantly.
edge-tts in Practice This is Part 2 of the series, focusing on Text-to-Speech (TTS) — using edge-tts (Microsoft Azure’s free neural TTS interface) to batch-generate multilingual, multi-voice voiceover files. All code comes from a real project (MiBee NVR 45-second promo) and is ready to reuse.
Installation edge-tts is a Python async library. Install it inside a virtual environment:
bash 1 2 python -m venv .venv .venv\Scripts\pip install edge-tts numpy numpy is not a dependency of edge-tts, but it will be needed for BGM synthesis (Part 3 of this series), so installing it here saves a step.
This article is based on hands-on experience from the MiBee NVR open-source 45-second promo video project. You will learn how to generate video footage by code (Remotion), produce AI voiceovers (edge-tts), synthesize BGM offline (numpy), and mux everything into a final video with ffmpeg. All steps are ready to follow.
What This Technology Does A multilingual promo project consists of three independent production stages, finally muxed by ffmpeg:
Stage Tool Output Footage Remotion (React-based video) Silent MP4 Voiceover edge-tts (Microsoft free TTS) MP3 per clip BGM numpy offline synthesis WAV file Muxing ffmpeg filter_complex Final MP4 (video + voice + BGM) The overall pipeline looks like this:
In network security, fingerprinting is the foundational step for asset discovery and attack surface management. However, a single fingerprint library often has limited coverage—Nmap excels at network-layer service detection but falls short on web technology stacks; Wappalyzer is strong at frontend framework detection but cannot sense underlying protocols; WhatWeb identifies CMS accurately but lacks port scanning capabilities. In practice, a single target may involve network devices, web applications, cloud services, and other asset types simultaneously, so relying on just one fingerprint library inevitably leads to significant omissions.
Nmap is the gold standard of network scanning, and its fingerprint databases (nmap-os-db, nmap-service-probes) represent over two decades of accumulated knowledge. However, since Nmap 7.90 (2021), Nmap’s license was changed from GPLv2 to NPSL (Nmap Public Source License), adding many restrictions beyond standard GPL terms.
This means: even open-source projects that read or embed Nmap’s fingerprint data files may constitute derivative works of Nmap and must be released under an NPSL-compatible license. For closed-source commercial products, the compliance risk is even more severe—either open-source the entire project under NPSL, or pay a one-time OEM license fee of $59,980~$119,980.