Cubemap is a high-performance, high-availability video reflector, specifically made for use with VLC. It is currently in alpha stage. A short list of features: - High-performance, through a design with multiple worker threads, epoll and sendfile (yes, sendfile); a 2GHz quadcore can saturate 10 gigabit Ethernet, given a modern kernel, a modern NIC and the right kernel tuning. - High-availability. You can change any part of the configuration (and even upgrade to a newer version of Cubemap) by changing cubemap.config and sending a SIGHUP; all clients will continue as if nothing had happened (unless you delete the stream they are watching, of course). Cubemap also survives the encoder dying and reconnecting. - Per-stream fwmark support, for TCP pacing through tc (separate config needed). - Reflects anything VLC can reflect over HTTP, even the muxes VLC has problems reflecting itself (in particular, FLV). - IPv4 support. Yes, Cubemap even supports (some) legacy protocols. HOWTO: sudo aptitude install libprotobuf-dev protobuf-compiler make -j4 If you want to use HTTP input (you probably want to), patch VLC with the included file vlc-metacube.diff. Then start the VLC encoder with the “metacube” flag to the http access mux, like this: cvlc [...] --sout '#std{access=http{metacube,mime=video/x-flv},mux=flv,dst=:4013/test.flv}' Then look through cubemap.config.sample, copy it to cubemap.config, compile and start cubemap. To upgrade cubemap (after you've compiled a new binary), or to pick up new config: killall -HUP cubemap Cubemap will serialize itself to disk, check that the new binary and config are OK, and then exec() the new version, which deserializes everything and keeps going. Legalese: Copyright 2013 Steinar H. Gunderson . Licensed under the GNU GPL, version 2. See the included COPYING file.