diff options
Diffstat (limited to 'doc/example.mux')
-rw-r--r-- | doc/example.mux | 118 |
1 files changed, 71 insertions, 47 deletions
diff --git a/doc/example.mux b/doc/example.mux index 6c2bc18..cf02467 100644 --- a/doc/example.mux +++ b/doc/example.mux @@ -5,7 +5,7 @@ ; ; It contains two services, one DAB and one DAB+, and also shows ; both the file input useful for offline processing, and the -; ZeroMQ input useful in a 24/7 scenario. +; EDI input useful in a 24/7 scenario. ; More information about the usage of the tools is available ; in the guide, which can be found on the @@ -65,6 +65,12 @@ general { ; If the port is zero, or the line commented, the server ; is not started. managementport 12720 + + ; At startup, run the command and abort if is it not returning 0. + ; This may be a script. Useful for checking if the NTP client on your + ; system has had time to setup the clock. + ;startupcheck "chronyc waitsync 10 0.01" + ;startupcheck "ntp-wait -fv" } remotecontrol { @@ -161,40 +167,71 @@ subchannels { sub-fu { ; This is our DAB programme, using a file input type audio - inputfile "funk.mp2" bitrate 128 id 10 protection 3 + + inputfile "funk.mp2" } - sub-ri { - ; This is our DAB+ programme, using a ZeroMQ - type dabplus - ; Accepts connections to port 9000 from any interface. - ; Use ODR-AudioEnc as encoder - inputfile "tcp://*:9000" + sub-bla { + type audio bitrate 96 id 1 - protection 3 - - ; ZMQ specific options, mandatory: + protection 1 - ; Maximum size of input buffer, in AAC frames (24ms) - ; when this buffer size is reached, some frames will be - ; discarded to get the size again below this value. - ; As the present implementation discards entire AAC superframes, - ; (5 frames = 120ms) the effect will clearly be audible. - zmq-buffer 40 + ; for audio and dabplus, EDI input is available. It supports TCP server and UDP + inputproto edi + ; Accepts connection to port 9001 from any interface + inputuri "tcp://0.0.0.0:9001" - ; At startup or after an underrun, the buffer is filled to this - ; amount of AAC frames before streaming starts. - zmq-prebuffering 20 + ; Two buffer-management types are available: prebuffering and timestamped. + ; prebuffering will accumulate a few frames before it starts streaming, and each + ; time there is a buffer underrun (similar to how the ZMQ input works) + ; + ; timestamped takes into account the TIST inside EDI and inserts the encoded + ; audio frame into the ETI frame with the same timestamp + buffer-management prebuffering ; In an ideal scenario, where the input rate exactly corresponds ; to the rate at which the frames are consumed by dabmux, you - ; see the buffer level staying around the zmq-prebuffering value. + ; see the buffer level staying around the prebuffering value. ; Network latency jitter can make it temporarily go lower or higher. ; Encoder clock drift will make the buffer either slowly fill or ; empty, which will create intermittent glitches. + + ; Maximum size of input buffer, in frames (24ms) + ; when this buffer size is reached, some frames will be + ; discarded to get the size again below this value. + buffer 40 + + ; At startup or after an underrun, the buffer is filled to this + ; amount of frames before streaming starts. + prebuffering 20 + } + sub-ri { + ; This is our DAB+ programme, using a ZeroMQ input + type dabplus + bitrate 96 + id 1 + protection 3 + + ; Accepts connections to port 9000 from any interface. + ; Use ODR-AudioEnc as encoder, accepts only connection + ; from the local machine. + inputproto edi + inputuri "tcp://127.0.0.1:9000" + + buffer-management timestamped + + ; When using timestamped, the prebuffering is without effect. + ; The buffer setting however still dictates the maximum buffer size, to + ; avoid runaway memory usage in case of issues. + buffer 500 + ; 500 * 24ms = 12 seconds + + ; Specify the additional delay in milliseconds to add to the TIST. Positive values + ; mean the content will be inserted later. + tist-delay 10 } } @@ -223,33 +260,19 @@ outputs { ; Output RAW ETI NI to standard output stdout "fifo:///dev/stdout?type=raw" - ; ZeroMQ output example, new configuration format. Several - ; zeromq blocks can be added here. - ; This output does not back-pressure the multiplexer. - zeromq { - ; Listen on all interfaces, on port 9100 - endpoint "tcp://*:9100" - - ; Transmit backward compatible metadata containing - ; EDI time and UTC offset when TIST is enabled. - ; - ; If TIST is enabled, requires leap-second information (see example.mux) - ; - ; WARNING! requires ODR-DabMux to be compiled with - ; cURL support, and this will enable leap second download - ; as for the EDI output! - allowmetadata true + edi { + ; Example EDI-over-TCP output + ; If TIST is enabled, requires leap-second information + destinations { + example_tcp { + protocol tcp + listenport 13000 + } + } } - ; Output ETI-over-TCP. This is like piping a RAW ETI NI data stream - ; into a TCP socket, except that the output can handle simultaneous - ; connections. - ; 0.0.0.0 means "listen on all interfaces" - ; This output does not back-pressure the multiplexer. - ;tcp "tcp://0.0.0.0:9200" - ; Throttle output to real-time (one ETI frame every 24ms) - ;throttle "simul://" + throttle "simul://" ; Important! For real-time operation, you need to have exactly one ; output that applies back-pressure to ODR-DabMux, otherwise it will run @@ -258,7 +281,8 @@ outputs { ; For an output to a pipe, the data consumer at the other end of the pipe ; will dictate the multiplexing rate to ODR-DabMux. ; - ; If you use the zmq+tcp:// or the tcp:// output, - ; you must also enable a simul:// output! + ; If you use the EDI output, you must also enable a simul:// output! + + ; More options are given in doc/advanced.mux } |