mumudvb v1.5.4 - README

Website:
http://mumudvb.braice.net

= Presentation =

Description: mumudvb is originally a modification of dvbstream that cr@ns (http://www.crans.org) made. We have decided to redistribute it.

Now it's a standalone project

Mumudvb is a program that can redistribute streams from DVB on a network using
multicasting. It is able to multicast a whole DVB transponder by assigning
each channel to a different multicast IP.

= Authors =

Upstream author:
Brice DUBOST (mumudvb AT braice.net)

Contributions:
Manuel SABBAN (manu AT crans.ens-cachan.fr) (getopt)
Stephane GLONDU (glondu AT crans.ens-cachan.fr) (makefile cleaning, man page)

Special thanks to Dave CHAPMAN (dvbstream author)

Mailing list:
"mumudvb-dev _AT_ lists DOT crans DOT org"

= Contents and features =

== Features overview ==

 * Stream channels from a transponder on different multicast IPs
 * The program can rewrite the PAT Pid in order to announce only present channels (useful for some set-top boxes)
 * Support for scrambled channels (beta) (if you don't have a CAM you can use sasc-ng, but check if it's allowed in you country)
 * Support for autoconfiguration, see further
 * Generation of SAP announces

== Detailled feature list ==

 * Stream channels from a transponder on different multicast IPs
 * Can show reception level when streaming
 * Mumudvb make a list of streamed and down channels in real time
 * Can deamonize and write his own pid in a file
 * Mumudvb use a config file
 * The program can kill himself if it receives no data from the card
 * The program stops trying tuning after a configurable timeout
 * Functionnal support of DVB-T
 * Always send mandatory pids
  * Mandatory pids are:
   * PAT (0): Program Association Table
   * NIT (16): Network Information Table: It is intended to provide information about the physical network.
   * SDT (17): Service Description Table: the SDT contains data describing the services in the system e.g. names of services, the service provider, etc.
   * EIT (18): Event Information Table: the EIT contains data concerning events or programmes such as event name, start time, duration, etc.
   * TDT (20): Time and Date Table: the TDT gives information relating to the present time and date.This information is given in a separate table due to the frequent updating of this information.
 * mumudvb automatically suscribe to all multicast groups (IGMP membership request) in order to avoid some switches to broadcast all channels.
 * The program can rewrite the PAT Pid in order to announce only present channels (useful for some set-top boxes)
  * Note: We don't rewrite Pat Pids larger than 188 bytes
 * Support for autoconfiguration, see further


Others programs are joined with mumudvb:
 * relay: this program takes a stream and sends it again on a different ip. It can be used to unicaast a stream over a network that doesn't support multicast, and multicast it again at the other end.
 * recup_sap: tiny sap client, get sap announces during 60 seconds and put them on a file (unsorted)


= Installation =

== From sources ==

In order to install mumudvb type:

make
make install (with root user)

For DVB-T the default values are Auto for everything excepted the banwith wich is set to 8MHz

Note: The cam support depends on libdvben50221 (from dvb-apps) if you don't to compile mumudvb with cam support,
 type "make NOCAMSUPPORT=1" instead of make.

In order to install startin scripts (debian flavor) type : 

cp scripts/mumudvb /etc/default/mumudvb
cp scripts/mumudvb.init /etc/init.d/mumudvb

== From debian package ==

If you want to install a version wich is not in your repositories, you can install it by han by typing

dpkg -i mumudvb*.deb


= Usage =

The documentation for configuration file syntax is in doc/README_CONF.

Usage:
	mumudvb [options] -c config_file
	mumudvb [options] --config config_file

Possible options are:

-d, --debug
	Don't deamonize and print messages on the standard output.

-s, --signal
	Print signal strenght every 5 seconds

-h, --help
	Show help

-v
	More verbose (add for more)

-q
	More quiet (add for less)

Signal: (see thi kill's man page)
    SIGUSR1: switch the signal strenght printing

= Autoconfiguration =

Since 07/2008, mumudvb is able to find the channels in the transponder and their pids.

Without autoconfiguration, you had to set the transponder parameters, and for each channel, the multicast ip, the port, the name and the pids (PMT, audio video)

Mumudvb is able to do two kinds of autoconfiguration:

== Full autoconfiguration ==

This is the easiest way to use mumudvb.

Use this when you want to stream a full transponder.

In this mode, mumudvb will find for you the different channels, their name and their pids (PMT, Audio, Video, Subtitle, Teletext and AC3).

In order to use this mode you have to:
 * Set the tuning parameters in your config file
 * Add "autoconfiguration=2" in your config file
 * You don't have to set any channels
 * For a first use don't forget to put the "-d" parameter when you launch mumudvb:
   ex: mumudvb -d -c your_config_file

Example config file:

-----
freq=11296
pol=h
srate=27500
autoconfiguration=2
-----

The channels will be streamed over the multicasts ip adresses 239.100.c.n where c is the card number (0 by default) and n is the channel number.

If you don't use the common_port directive, mumudvb will use the port 1234.

By default sap announces are activated if you use this autoconfiguration mode. To desactivate them put "sap=0" after the autoconfiguration=2 line.

== Simple autoconfiguration ==

Use this when you want to control the name of the channels, and wich channel you want to stream.

In this case for each channel, you have to set:
 * the Ip adress
 * (optionnal if you use common_port) the port
 * the name
 * the PMT pid

And you have to add "autoconfiguration=1" in the head of your config file.

Mumudvb will find the audio, video, PCR, teletext, subtitling and ac3 pids for you before streaming.

Note: if you put more than one pid for a channel, mumudvb will desactivate autoconfiguration for this channel.

= Sap announces =

The sap announces are made for the client to know wich channels are streamed.

Vlc and most of the set top boxes are know to support them.

Mumudvb will automatically generate and send sap announces if it's asked in the config file or if you are in full autoconfiguration mode.

The sap announces will be only sent for alive channels. When a channel goes down, mumudvb will stop sending announces for this channel, until it goes back.


= Monitoring =

You can use monit (http://mmonit.com/monit/) to monitor mumudvb an restart it when it experiences problems (mumudvb kill himself when issues appear)

You have to install the init scripts (automatic if you used the debian package) and add the following lines to your /etc/monit/services file:

----
check process mumudvb with pidfile /var/run/mumudvb/mumudvb_carte0.pid
    start program = "/etc/init.d/mumudvb start"
    stop program = "/etc/init.d/mumudvb stop"
----


For more detailled information, refer to the monit website


= Technical details (not sorted) =

 * mumudvb can receive DVB-S (sattellite) or DVB-T (terrestrial). It is also reported to work with DVB-C (cable). There is now preliminary support for ATSC.

 * The mandatory pids are sent with all channels
  * Mandatory pids are:
   * PAT (0): Program Association Table
   * NIT (16): Network Information Table: It is intended to provide information about the physical network.
   * SDT (17): Service Description Table: the SDT contains data describing the services in the system e.g. names of services, the service provider, etc.
   * EIT (18): Event Information Table: the EIT contains data concerning events or programmes such as event name, start time, duration, etc.
   * TDT (20): Time and Date Table: the TDT gives information relating to the present time and date.This information is given in a separate table due to the frequent updating of this information.

 * CPU consuming: mumudvb takes 15% CPU of a celeron 2.6GHz with an Hauppauge card and linux version 2.6.9 when streaming a full transponder (about 30MBit/s)

 * Don't use old via or nForce chipsets. They can't deal with a lot of data on the PCI bus.

 * When the program starts, he writes the channel list on /var/run/mumudvb/chaines_diffusees_carte%d (where %d is the card number). This file contains streamed channels (updated every 5 seconds) in the form: "name:ip:port"

 * mumudvb can deal with more than 4 cards. You must use a kernel >= 2.6.11 and udev statically compiled witch klibc (04/2005) waiting for glibc update... Note: this issue is solved now ( with udev 104 and libc6 2.7 )

= Known issues =

== Vlc can read the stream but not xine or mplayer ==

 * For Vlc, you must specify the PMT pid besides audio and video pids. It's a frequent issue. To resolve this issue you can use {{{vlc -v}}} and you'll see a ligne like: {{{[00000269] ts demuxer debug:   * number=1025 pid=110}}} you'll have the pid associated with your number, you can also use dvbsnoop, or see how to get pids in readme-conf. Another solution is to use autoconfiguration.

== VLC reads the video but no audio ==

 * This problem can happend if the PCR (ie clock) information is not carried with the video. In this case you have to check if the PCR pid is in the pids list.

== mumudvb can't deamonize ==

 * In order to deamonize mumudvb needs the directory /var/run/mumudvb/ to be writable, in order to write his pid and the channel list.

== The system crashes ==

 * old via chipset or nForce chipset are not professional chipsets. They can't deal with a lot of data on PCI. But you can try to tune your BIOS.

== Tuning issues with DVB-T ==

 * You must check tuning settings, knowing that auto bandwidth does'nt work.
