Baby monitoring

I have CCTV deployed, including a couple of cameras internally. Occasionally I want to listen in to the kids while I’m outside, so the mobile app viewing a camera feed provides a handy facsimile of a baby monitor.

The thing is, I don’t want the video. I don’t need the video. I don’t want the bandwidth consumption of the (up to 4K) video. What I do want is the audio, only.

The cameras all output RTSP streams (which is how they bind to the NVR), so there must be a way.

Cue VLC running on a small VM.

It’s actually fairly simple (save for trial and error figuring out variations of codec that are properly supported for streaming on all devices and browsers). But, to save anybody else the hassle…

VLC

vlc ${rtsp_url_of_camera} --sout-keep --sout '#transcode{acodec=mp3,ab=128}:std{mux=mpeg1,access=http,mux=ogg,dst=:8080/camera.mp3},select="novideo"}' &

HTML

<!DOCTYPE html>
<html>
<body>

<audio controls autoplay src="http://vlc_machine:8080/camera.mp3" type="audio/mp3">
Your browser does not support the audio element.
</audio>

</body>
</html>

Navigate to that HTML page (or run it from localhost, etc.) and you get a low-bandwidth audio-only stream.