File: README

package info (click to toggle)
cubemap 1.3.2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 428 kB
  • sloc: cpp: 4,431; sh: 114; perl: 102; makefile: 60
file content (66 lines) | stat: -rw-r--r-- 2,498 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Cubemap is a high-performance, high-availability video reflector,
specifically made for use with VLC.

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.
 - 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.


HOWTO:

  sudo aptitude install libprotobuf-dev protobuf-compiler libsystemd-dev
  ./configure
  make -j4

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}'

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.


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 <steinar+cubemap@gunderson.no>.
Licensed under the GNU GPL, version 2. See the included COPYING file.