This is a RTMP proxy that blurs all of the faces in a stream that are not on a whitelist
This project is a rewrite of the RTMP server in anony.news. For that project, I had written the RTMP server in Python, and was unsatisfied with how latent and memory-hungry it was.
uh . . actually it doesn't quite work yet ¯\_(ツ)_/¯
- Accept RTMP connection
- Split stream into video, audio
- Split video into frames
- Blur the frames
- Turn the frames back into video
- Combine video with audio
- Stream back to RTMP destination server
- Be fast
- Be memory efficient
- Be robust
The build system used is Cargo (even though some of it is written in C++).
In order to build the project, you need ffmpeg and
OpenCV. Frankly, your best chance at building this project is to build it inside
a docker container. The Dockerfile
inside .devcontainer
installs both for you.