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
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.
There are three configuration files:
-
devices.xml (used by dytuned and dystreamd)
-
programs.xml (only used by dystreamd)
-
dystreamd.xml (only used by dystreamd)
Both programs (i.e. dytuned and dystreamd) will look for these
files in the following directories (in this order):
-
current working directory (when the program was started)
-
the directory where the program resides (but only if called with
the path supplied, e.g. /usr/local/bin/dystreamd)
-
/etc/dvbyell
-
/usr/local/etc/dvbyell
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:
-
dytuned will use default values in most cases (mostly things
like FEC_AUTO and INVERSION_AUTO); it will not check if your
device supports these automatic settings, though, so if tuning
does not work, try to specify additional parameters
-
The frontend device name (i.e. "<frontend>/dev/dvb/…</frontend>") must
be the first parameter within a device definition. This is because
dytuned will do some early initialization here so it can determine
the frontend type and give you warnings about parameters which are
not applicable.
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.
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:
-
Go to the web page of your DVB provider and find a list
of programs and their parameters (Astra has current lists,
other providers may not offer them); you might also try to
use Google for finding such a list provided by a 3rd party
-
Use your DVB set top box: Most devices show the parameters of
a program if you zap to it, or maybe there is some setup option
which will show the parameters
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:
-
Use the list of your DVB provider (if there is one); however, this
is not the best choice as the name might still differ from the
one transmitted in the DVB stream
-
Use the name shown on your DVB receiver; as most devices use the
name transmitted in the DVB stream, this will be correct in most cases
-
The best method is to use dystreamd: First, start both dytuned
(already with the correct parameters for your program in devices.xml!)
and dystreamd (programs.xml may still be empty, but enable the
command line interface in dystreamd.xml). Then connect to the
command line interface ("telnet localhost 3000" will do by default).
Use the command "DUMPSDT 0" (or another number, if this is not
the first DVB interface configured in devices.xml). It will show
a tree view of the SDT transmitted in the DVB stream. This includes
all the program names, which are shown behind "service name". So
this will give you not only the name of your program but of all
programs which can be streamed as long as the DVB device is tuned
to these parameters.
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.
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.
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.
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.