1. General behavior

MuMuDVB needs a configuration file in order to run properly.

The order of the parameters is most of the times not relevant.

You can put comments everywhere in the configuration file: just start the line with #. In line comments are not allowed i.e. port=1234 #The multicast port is not a valid line.

All parameters are in the form: name=value

Example
#The tuning frequency
freq=11987

The configuration file contains two parts

1.1. Common part

This is the first part of the configuration file, it contains the parameters needed for tuning the DVB card and the global parameters.

See the tuning section for the list of parameters used to tune the card. and other global parameters section for parameters like autoconfiguration, cam support etc …

1.2. Channels part

If you are not using full autoconfiguration you need to set the list of the channels you want to stream. Each channel start with an ip= or channel_next line.

Example (unicast only)
channel_next
name=Barcelona TV
unicast_port=8090
pids=272
Example
ip=239.100.0.0
port=1234
name=Barcelona TV
pids=272 256 257 258

See channel parameters section for a list of detailled parameters.

2. Example config files

You can find documented examples in the directory doc/configuration_examples

3. Parameters concerning the tuning of the card

Note
You can use w_scan to see the channels you can receive see w_scan section. Otherwise you can have a look at the initial tuning files given with linuxtv’s dvb-apps. For european satellite users, you can have a look at King Of Sat

3.1. Parameters concerning all modes (terrestrial, satellite, cable, ATSC)

In the following list, only the parameter freq is mandatory

Parameter name Description Default value Comments

freq

transponder’s frequency in MHz

Mandatory

modulation

The kind of modulation used (can be : QPSK QAM16 QAM32 QAM64 QAM128 QAM256 QAMAUTO VSB8 VSB16 8PSK 16APSK 32APSK DQPSK)

ATSC: VSB_8, cable/terrestrial: QAM_AUTO, satellite: QPSK

Optionnal most of the times

delivery_system

the delivery system used (can be DVBT DVBT2 DVBS DVBS2 DVBC_ANNEX_AC DVBC_ANNEX_B ATSC)

Undefined

Set it if you want to use the new tuning API (DVB API 5/S2API). Mandatory for DVB-S2 and DVB-T2

card

The DVB/ATSC card number

0

only limited by your OS

tuner

The tuner number

0

If you have a card with multiple tuners (ie there is several frontend* in /dev/dvb/adapter%d)

card_dev_path

The path of the DVB card devices. Use it if you have a personalised path like /dev/dvb/card_astra

/dev/dvb/adapter%d

tuning_timeout

tuning timeout in seconds.

300

0 = no timeout

timeout_no_diff

If no channels are streamed, MuMuDVB will kill himself after this time (specified in seconds)

600

0 = infinite timeout

check_status

Do we check the card status and display a message if lock is lost

1

0 = no check.

3.2. Parameters specific to satellite

Parameter name Description Default value Possible values Comments

pol

transponder’s polarisation. One char. v (vertical), h (horizontal), l (left circular), r (right circular)

h, H, v, V, l, L, r or R

Mandatory

srate

transponder’s symbol rate

Mandatory

lnb_type

The LNB type

universal

universal, standard

Universal : two local oscilators. Standard : one local oscillator.Most of the LNBs are universal.

lnb_lof_standard

The frequency of the LNB’s local oscillator when lnb_type=standard

10750

In MHz, see below.

lnb_slof

The switching frequency frequency of the LNB (define the two bands). Valid when lnb_type=universal

11700

In MHz, see below.

lnb_lof_low

The frequency of the LNB’s local oscillator for the low band. Valid when lnb_type=universal

9750

In MHz, see below.

lnb_lof_high

The frequency of the LNB’s local oscillator for the high band. Valid when lnb_type=universal

10600

In MHz, see below.

sat_number

The satellite number in case you have multiples lnb, no effect if 0 (only 22kHz tone and 13/18V), send a diseqc message if non 0

0

1 to 4

If you have equipment which support more, please contact

switch_type

The DiSEqC switch type: Committed or Uncommitted

C

C, c, U or U

lnb_voltage_off

Force the LNB voltage to be 0V (instead of 13V or 18V). This is useful when your LNB have it’s own power supply.

0

0 or 1

coderate

coderate, also called FEC

auto

none, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, auto

rolloff

rolloff important only for DVB-S2

35

35, 20, 25, auto

The default value should work most of the times

3.2.1. Local oscillator frequencies :

  • S-Band 3650 MHz

  • C band (Hi) 5950 MHz

  • C band (Lo) 5150 MHz

  • Ku Band : this is the default band for MuMuDVB, you don’t have to set the LO frequency. For information : Hi band : 10600, Low band : 9750, Single : 10750

3.3. Parameters specific to terrestrial (DVB-T)

Note
auto usually works fine for all the parameters except bandwidth
Parameter name Description Default value Possible values

bandwidth

bandwidth

8MHz

8MHz, 7MHz, 6MHz, auto (DVB-T2: 5MHz, 10MHz, 1.712MHz)

trans_mode

transmission mode

auto

2k, 8k, auto (DVB-T2: 4k, 16k, 32k)

guardinterval

guard interval

auto

1/32, 1/16, 1/8, 1/4, auto (DVB-T2 : 1/128, 19/128, 19/256)

coderate

coderate, also called FEC

auto

none, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, auto

3.4. Parameters specific to cable (DVB-C)

Parameter name Description Default value Possible values Comments

srate

transponder’s symbol rate

Mandatory

qam

quadrature amplitude modulation

auto

qpsk, 16, 32, 64, 128, 256, auto

This option is obsolete, use modulation instead

coderate

coderate, also called FEC

auto

none, 1/2, 2/3, 3/4, 4/5, 5/6, 6/7, 7/8, 8/9, auto

Note
The spectral inversion is fixed to OFF, it should work for most of the people, if you need to change this parameter, please contact.

3.5. Parameters specific to ATSC (Cable or Terrestrial)

Parameter name Description Default value Possible values Comments

atsc_modulation

the modulation for ATSC

vsb8

vsb8, vsb16, qam256, qam64, qamauto

This option is obsolete, use modulation instead

Note
VSB 8 is the default modulation for most of the terrestrial ATSC transmission

4. Other global parameters

4.1. Various parameters

Parameter name Description Default value Possible values Comments

show_traffic_interval

the interval in second between two displays of the traffic

10

compute_traffic_interval

the interval in second between two computations of the traffic

10

dvr_buffer_size

The size of the "DVR buffer" in packets

20

>=1

see README

dvr_thread

Are the packets retrieved from the card in a thread

0

0 or 1

Experimental, see README

dvr_thread_buffer_size

The size of the "DVR thread buffer" in packets

5000

>=1

see README

server_id

The server number for the %server template

0

Useful only if you use the %server template

filename_pid

Specify where MuMuDVB will write it’s PID (Processus IDentifier)

/var/run/mumudvb/mumudvb_adapter%card_tuner%tuner.pid

the templates %card %tuner and %server are allowed

check_cc

Do MuMuDVB check the discontibuities in the stream ?

0

Displayed via the XML status pages or the signal display

4.2. Packets sending parameters

Parameter name Description Default value Possible values Comments

dont_send_scrambled

If set to 1 don’t send the packets detected as scrambled. this will also remove indirectly the sap announces for the scrambled channels

0

filter_transport_error

If set to 1 don’t send the packets tagged with errors by the demodulator.

0

psi_tables_filtering

If set to pat, TS packets with PID from 0x01 to 0x1F are discarded. If set to pat_cat, TS packets with PID from 0x02 to 0x1F are discarded.

none

Option to keep only mandatory PSI PID

rewrite_pat

Do we rewrite the PAT PID

0

0 or 1

See README

rewrite_sdt

Do we rewrite the SDT PID

0

0 or 1

See README

sort_eit

Do we sort the EIT PID

0

0 or 1

See README

sdt_force_eit

Do we force the EIT_schedule_flag and EIT_present_following_flag in SDT

0

0 or 1

Let to 0 if you don’t understand

rtp_header

Send the stream with the rtp headers (execpt for HTTP unicast)

0

0 or 1

4.3. Logs parameters

Parameter name Description Default value Possible values Comments

log_header

specify the logging header

%priority: %module

The implemented templates are %priority %module %timeepoch %date %pid

log_flush_interval

LogFile flushing interval (in seconds)

-1 : no periodic flushing

log_type

Where the log information will go

If neither this option and logfile are specified syslog if deamon, console otherwise

syslog, console

The first time you specify a logging way, it replaces the default one. Then, each time you sepcify a logging channel, it is added to the previous

log_file

The file in wich the logs will be written to

no file log

The following templates are allowed %card %tuner %server

4.4. Multicast parameters

Parameter name Description Default value Possible values Comments

multicast

Do we activate multicast, deprecated, use multicast_ipv4 instead

1

0 or 1

multicast_ipv4

Do we activate IPv4 multicast

1

0 or 1

multicast_ipv6

Do we activate IPv6 multicast

0

0 or 1

multicast_iface4

The network interface to send IPv4 multicast packets

empty (let the system choose)

multicast_iface6

The network interface to send IPv6 multicast packets

empty (let the system choose)

common_port

Default port for the streaming

1234

multicast_ttl

The multicast Time To Live

2

multicast_auto_join

Set to 1 if you want MuMuDVB to join automatically the multicast groups

0

0 or 1

See known problems in the README

4.5. CAM support parameters

Parameter name Description Default value Possible values Comments

cam_support

Specify if we wants the support for scrambled channels

0

0 or 1

cam_number

the number of the CAM we want to use

0

In case you have multiple CAMs on one DVB card

cam_reset_interval

The time (in seconds) we wait for the CAM to be initialised before resetting it.

30

If the reset is not successful, MuMuDVB will reset the CAM again after this interval. The maximum number of resets before exiting is 5

cam_delay_pmt_send

The time (in seconds) we wait between the initialization of the CAM and the sending of the first PMT This behavior is made for some "cray" CAMs like powercam v4 which doesn’t accept the PMT just after the ca_info\ _callback

0

Normally this time doesn’t have to be changed.

cam_interval_pmt_send

The time (in seconds) we wait between possible updates to the PMT sent to the CAM

3

Normally this time doesn’t have to be changed.

4.6. Autoconfiguration parameters

Parameter name Description Default value Possible values Comments

autoconfiguration

autoconfiguration 1, partial: find audio and video PIDs, 2, full: full autoconfiguration

0

0, 1, 2, partial or full

see the README for more details

autoconf_ip_header

For full autoconfiguration, the first part of the ip for streamed channel

obsolete, use autoconf_ip4 instead

autoconf_ip4

For full autoconfiguration, the template for the ipv4 for streamed channel

239.100.150+%server*10+%card.%number

You can use expressions with +, * , %card, %tuner, %server and %number

autoconf_ip6

For full autoconfiguration, the template for the ipv6 for streamed channel

FF15:4242::%server:%card:%number

You can use the keywords %card, %tuner, %server and %number

autoconf_radios

Do we consider radios as valid channels during full autoconfiguration ?

0

0 or 1

autoconf_scrambled

Do we consider scrambled channels valid channels during full autoconfiguration ?

0

0 or 1

Automatic when cam_support=1. Sometimes a clear channel can be marked as scrambled. This option allows you to bypass the ckecking.

autoconf_pid_update

Do we follow the changes in the PIDs when the PMT is updated ?

1

0 or 1

autoconf_unicast_start_port

The unicast port for the first discovered channel

autoconf_unicast_start_port=value is equivalent to autoconf_unicast_port=value + %number

autoconf_unicast_port

The unicast port for each discovered channel (autoconf full). Ex "2000+%number"

You can use expressions with + * %card %tuner %server and %number. Ex : autoconf_unicast_port=2000+100*%card+%number

autoconf_multicast_port

The multicast port for each discovered channel (autoconf full). Ex "2000+%number"

You can use expressions with + * %card %tuner %server and %number. Ex : autoconf_unicast_port=2000+100*%card+%number

autoconf_sid_list

If you don’t want to configure all the channels of the transponder in full autoconfiguration mode, specify with this option the list of the service ids of the channels you want to autoconfigure.

empty

autoconf_name_template

The template for the channel name, ex %number-%name

empty

See README for more details

4.7. SAP announces parameters

Parameter name Description Default value Possible values Comments

sap

Generation of SAP announces

0 (1 if full autoconfiguration)

0 or 1

sap_organisation

Organisation field sent in the SAP announces

MuMuDVB

Optionnal

sap_uri

URI field sent in the SAP announces

Optionnal

sap_sending_ip4

The SAP sender IPv4 address

0.0.0.0

Optionnal, not autodetected, if set, enable RFC 4570 SDP Source Filters field

sap_sending_ip6

The SAP sender IPv6 address

::

Optionnal, not autodetected, if set, enable RFC 4570 SDP Source Filters field

sap_interval

Interval in seconds between sap announces

5

positive integers

sap_default_group

The default playlist group for sap announces

string

Optionnal. You can use the keyword %type, see README

sap_ttl

The TTL for the multicast SAP packets

255

The RFC 2974 says "SAP announcements … SHOULD be sent with an IP time-to-live of 255 (the use of TTL scoping for multicast is discouraged [RFC 2365])."

4.8. HTTP unicast parameters

Parameter name Description Default value Comments

unicast

Set this option to one to activate HTTP unicast

0

see the README for more details

ip_http

the listening ip for http unicast, if you want to listen to all interfaces put 0.0.0.0

0.0.0.0

see the README for more details

port_http

The listening port for http unicast

4242

You can use mathematical expressions containing integers, * and +. You can use the %card, %tuner and %server template. Ex port_http=2000+%card*100

unicast_consecutive_errors_timeout

The timeout for disconnecting a client wich is not responding

5

A client will be disconnected if no data have been sucessfully sent during this interval. A value of 0 deactivate the timeout (unadvised).

unicast_max_clients

The limit on the number of connected clients

0

0 : no limit.

unicast_queue_size

The maximum size of the buffering when writting to a client fails

512kBytes

in Bytes.

5. Channel parameters

Each channel start with an ip= or channel_next line. The only other mandatory parameter is the name of the channel.

Concerning the PIDs see the getting the PIDs section

Parameter name Description Default value Possible values Comments

ip

multicast (can also be unicast, in raw UDP ) ipv4 where the chanel will be streamed

Optionnal if you set multicast=0 (if not used you must use channel_next)

ip6

multicast (can also be unicast, in raw UDP ) ipv6 where the chanel will be streamed

Optionnal if you set multicast=0

port

The port

1234 or common_port

Ports below 1024 needs root rights.

unicast_port

The HTTP unicast port for this channel

Ports below 1024 needs root rights. You need to activate HTTP unicast with ip_http

sap_group

The playlist group for SAP announces

string

optionnal

cam_pmt_pid

Only for scrambled channels. The PMT PID for CAM support

service_id

The service id (program number), olny for autoconfiguration, or rewrite (PAT or SDT) see README for more details

name

The name of the channel. Will be used for /var/run/mumudvb/channels_streamed_adapter%d_tuner%d, logging and SAP announces

Mandatory

pids

The PIDs list, separated by spaces

some pids are always sent (PAT CAT EIT SDT TDT NIT), see README for more details

6. Get the PID numbers

The simplest way is to use autoconfiguration and modify the generated configuration file : /var/run/mumudvb/mumudvb_generated_conf_card%d_tuner%d

6.1. You use autoconfiguration

If you use full autoconfiguration, you don’t need to specify any channel and don’t need any PID, this section does not concern you.

If you use partial autoconfiguration, you’ll need the PMT PID for each channel.

6.2. You do not use autoconfiguration

If you don’t use autoconfiguration (see the README), you have to get the PIDs (Program Identifier) for each channel.

For each channel it is advised to specify at least : - One video PID (except for radios) - One audio PID - The PMT PID - The PCR PID (if different from video/audio)

If you don’t have access to the PIDs via a website like King Of Sat, the easiest way is to use linuxtv’s dvb-apps or w_scan.

You don’t know on wich frequency to tune and the channels you can receive. In this case, you can use w_scan or using scan from dvb-apps if you have an initial tuning config file.

6.2.1. Using w_scan to get an initial tuning file

Note
w_scan works for DVB-T, DVB-C, DVB-S/S2 and ATSC.

w_scan have one disavantage over dvb-apps scan: it takes (usually) more time. But it have several advantages: no need for initial tuning file, card autodection and deeper channel search.

Once you compiled it (optionnal for x86), launch it with the options needed (country is mandatory for terrestrial and cable. for DVB-S/S2 you need to specify your satellite)

Note
Here’s the main options for w_scan
        -f type frontend type
                What programs do you want to search for?
                a = atsc (vsb/qam)
                c = cable
                s = sat
                t = terrestrian [default]
        -c      choose your country here:
                        DE, GB, US, AU, ..
                        ? for list
        -s      choose your satellite here:
                        S19E2, S13E0, S15W0, ..
                        ? for list

For more information, see w_scan’s help

Your will get lines channels with the file format described here

If you want to use full autoconfiguration, this contains all the parameters you need. For example the second row is the frequency.

6.2.2. Using scan with an initial tuning file

Note
With satellite this allow you to find all the frequencies (if the broadcaster follow the norm). Because, every transponder announces the others.

If you don’t know where to find the inital tuning file, recent versions of scan give the default locations by calling scan without arguments.

You need scan from linuxtv’s dvb-apps

Type

scan -o pids pathtoyourinitialtuningfile

You’ll first get blocks like

>>> tune to: 514000000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_2_3:FEC_2_3:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_4:HIERARCHY_NONE
0x0000 0x7850: pmt_pid 0x0110 Barcelona TV -- Barcelona TV (running)
0x0000 0x7851: pmt_pid 0x0710 COM Radio -- COM Radio (running)
0x0000 0x7855: pmt_pid 0x0210 TV L'Hospitalet -- TV L'Hospitalet (running)
0x0000 0x7856: pmt_pid 0x0510 Radio Hospitalet -- Radio Hospitalet (running)
0x0000 0x785a: pmt_pid 0x0310 Televisio Badalona -- Televisio Badalona (running)
0x0000 0x785b: pmt_pid 0x0610 Radio Ciutat Badalona -- Radio Ciutat Badal

You have now acces to the PMT PID (in hexadecimal), you can convert it to decimal and use partial autoconfiguration.

After this blocks, you’ll get lines like

Sensacio FM              (0x273f) 02: PCR == A            A 0x0701
urBe TV                  (0x7864) 01: PCR == V   V 0x0300 A 0x0301 (cat)
Canal Catala Barcelona   (0x7869) 01: PCR == V   V 0x0200 A 0x0201 (cat)
25 TV                    (0x786e) 01: PCR == V   V 0x0400 A 0x0401 (spa) TT 0x0402
ONDA RAMBLA PUNTO RADIO  (0x786f) 02: PCR == A            A 0x0601 (cat)
Localia                  (0x7873) 01: PCR == V   V 0x0100 A 0x0101
ONA FM                   (0x7874) 02: PCR == A            A 0x0501
TV3                      (0x0321) 01: PCR == V   V 0x006f A 0x0070 (cat) 0x0072 (vo) 0x0074 (ad) TT 0x0071 AC3 0x0073 SUB 0x032b

You have now acces to the other PIDs

MuMuDVB wants the PIDs in decimal, so you have to convert the pids from hexadecimal to decimal.

6.2.3. Scan only one transponder

You first have to tune the card on the wanted frequency (with tune, szap or tzap for example).

After you use the scan utility:

scan -o pids -c -a 0

Where 0 is the card number

And you’ll get results like in the section scan with an initial tuning file