Cubemap is a high-performance, high-availability video reflector,
-specifically made for use with VLC. It is currently in alpha stage.
+specifically made for use with VLC.
A short list of features:
- - High-performance. Exactly how high-performance remains to be seen,
- but it is designed to go to 10 Gbit/sec and beyond, through a
- design with multiple worker threads, epoll and sendfile
- (yes, sendfile).
+ - 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).
+ - Support for setting max pacing rate through the fq packet scheduler
+ (depends on Linux 3.13 or newer).
- Reflects anything VLC can reflect over HTTP, even the muxes VLC
has problems reflecting itself (in particular, FLV).
+ - Multicast support, both for sending and receiving (supports only protocols
+ that can go over UDP, e.g. MPEG-TS). Supports both ASM and SSM.
- IPv4 support. Yes, Cubemap even supports (some) legacy protocols.
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:
+If you want to use HTTP input (you probably want to), you want VLC 2.2.0
+or newer. 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}'
keeps going.
+Munin plugins:
+
+To activate these, symlink them into /etc/munin/plugins. If you don't put
+the files in the expected default locations (as done by 'make install'),
+you probably want some configuration in /etc/munin/plugin-conf.d/cubemap or
+similar, like this:
+
+[cubemap*]
+user <something>
+env.cubemap_config /etc/cubemap/cubemap.config
+env.cubemap_stats /var/lib/cubemap/cubemap.stats
+env.cubemap_input_stats /var/lib/cubemap/cubemap-input.stats
+
+
Legalese:
Copyright 2013 Steinar H. Gunderson <sgunderson@bigfoot.com>.