What is it all about?

See the blurb

Quickstart

Untar the archive and make sure you are root. Then do:

make
make install
make installconf
# If you don't have DVB-S or if your satellite cabling does NOT default to
# Astra 19.2E, you have to edit /etc/dvbyell/*; the dvbyell archive
# contains example configurations for DVB-C/-T in the conf/ directory
# (devices.xml.*)
# Note that dytuned does not support DiSEqC yet!
dytuned
# Keep dytuned running and change to another console!
dystreamd
# Now start "vlc -S sap" or your favorite network MPEG2 player

Requirements

Software:

Hardware:

Programs

There are two separate programs: dytuned and dystreamd. dytuned only has the job to tune the frontends and print out information about signal strength, signal drops etc. It must be running all the time because the kernel driver will shutdown the frontends as soon as no program is using them. dystreamd does the work of receiving the programs (i.e. the DVB transport streams) and transmitting them into the network.

Configuration files

There are three configuration files:

Both programs (i.e. dytuned and dystreamd) will look for these files in the following directories (in this order):

devices.xml

The devices.xml contains your DVB device file names and frontend parameters (i.e. frequency, error correction etc.); it should be pretty self-explanatory. Just take care that you follow the XML rules and the following requirements:

programs.xml

The example configuration file describes all the possible parameters. Again, just take care to follow the XML rules.

dystreamd.xml

This file controls the optional features of dystreamd as well as the default parameters for the programs configured in programs.xml. It is recommended to put the parameters which are used for most programs in dystreamd.xml and to only override them in programs.xml if a specific program requires this.

Configuring programs for streaming

The first step for streaming a certain program is to find out its frequency and the other parameters (which vary depending on whether you use DVB-S, DVB-C or DVB-T). You have two choices here:

Put these parameters into devices.xml.

The second step is to find out the exact name of your program. You will need the name as it's transmitted in the DVB stream (in the SDT), the name printed in your TV magazine might be different, so it's not sufficient. You have three choices:

Put the program name(s) into programs.xml.

As soon as you have configured devices.xml and programs.xml accordingly, restart dytuned and dystreamd and start your streaming client, e.g. "vlc -S sap". Now open the playlist and double click your program.

Command line interface

The CLI can be accessed with telnet. As some commands (e.g. DUMPEIT) require a long time to complete and the CLI is not yet multithreaded, using it can disrupt the streaming. So usage is only recommended for finding out the program names (see above) and for debugging. Furthermore, there is no user authentication yet, so it's recommended to either disable the CLI (in dystreamd.xml) or restrict access with iptables.

For a list of available CLI commands, have a look at the end of the dystreamd/cmd.c source code file. But be warned that the commands will probably change at some point.

Logging

By default only scarce information is output by dystreamd. More can be achieved by using command line parameters. Example:

/usr/local/bin/dystreamd -m PAT:DEBUG:stdout -m PMT:INFO:pmt.txt -m SDT:ERROR:ignore

I.e. the syntax for the arguments to the "-m" option is: <module>:<level>:<destination>

The module names mostly refer to the C source files dystreamd is organized in and the related output is useful for development. PAT/PMT/SDT/EIT refer to the DVB service information tables. If you interested on how these tables change over time, you can dump them into a file.

Level is one of DEBUG, INFO and ERROR.

Destination is either a file name or one of the special strings stdout, stderr and ignore. The first two dump the information to standard output/error, ignore suppresses the output completely.

By default, DEBUG messages are not output, INFO messages are written to stdout and ERROR messages are written to stderr.

If you are not sure if certain messages are not output because the file can't be accessed, you can use the "-M" (capital M!) option which will output a test message to every combination of module name and message level.

Monitoring the stream bandwidth

The only program which seems to be able to show statistics about traffic destination IP addresses seems to be trafshow (try ftp://ftp.nsk.su/pub/RinetSoftware/). iptraf and iperf didn't do this for me, if you know a way how to get this kind of statistics out of them, please let me know.