retina

crates.io version Documentation CI

High-level RTSP multimedia streaming library, in Rust. Good support for ONVIF RTSP/1.0 IP surveillance cameras, as needed by Moonfire NVR. Works around brokenness in cheap closed-source cameras.

Progress:

Currently very unstable: expect breaking API changes at every release as I work through items above.

Help welcome!

Getting started

Try the mp4 example. It streams from an RTSP server to a .mp4 file until you hit ctrl-C.

$ cargo run --example client mp4 --url rtsp://ip.address.goes.here/ --username admin --password test out.mp4 ... ^C

Acknowledgements

This builds on the whole Rust ecosystem. A couple folks have been especially helpful:

Why "retina"?

It's a working name. Other ideas welcome. I started by looking at dictionary words with the letters R, T, S, and P in order and picking out ones related to video:

| $ egrep '^r.*t.*s.*p' /usr/share/dict/words' | | | ---------------------------------------------- | ---------------------------------------------------------------------------- | | retinoscope | close but too long, thus retina | | retrospect | good name for an NVR, but I already picked Moonfire | | rotascope | misspelling of "rotascope" (animation tool) or archaic name for "gyroscope"? |

License

Your choice of MIT or Apache; see LICENSE-MIT.txt or LICENSE-APACHE, respectively.