dvbstream - Transmit a DVB transport stream via RTP
dvbstream [ -f freq] [ -p vh] [ -s symbolrate]
] [ -o
] [ -ps
] [ -i ipaddr
] [ -r
] [ -a apid
] [ -v vpid
] p -t ttpid
] [ pid1 ...
takes a TS (transport stream) from A DVB (Digital Video
Broadcast, either DVB-S for satellite cards, DVB-C for cable, or DVB-T for
terrestrial) and broadcasts (a subset of) it over a LAN using the RTP
- Some options are not available on Budget DVB cards.
- The Frequency to tune into, in MHz.
- -p, v|h
- The polarisation; either h (horizontal) or v
- -s symbolrate
- The symbol rate of the DVB stream, typically 27500.
- -c cardnum
- Select which DVB card to use. The cardnum must be
between 0 and 3.
- -a apid
- Select which audio PID to output on the TV-OUT of the DVB
card (Full cards only).
- -v vpid
- Select which video PID to output on the TV-OUT of the DVB
card (Full cards only).
- -t ttpid
- Select which Teletext PID to output on the TV-OUT of the
DVB card (Full cards only). -n secs Timeout and shut down
after secs seconds.
- Output a PS rather than a (default) PES stream.
- Output to stdout rather than broadcast.
- -i ipaddr
- IP Multicast port to output to (default is 220.127.116.11)
- -r port
- IP multicast port to outpu to (default is 5004).
If you wanted to broadcast TVC International from Astra 19E, you would type the
dvbstream -f 12441 -p v -s 27500 512 660
You can specify up to 8 PIDs on the command-line to include in the multicasted
transport stream. A 10MBit/s network should be able to handle one video and
one audio stream, or eight audio streams.
If you also want to view the TV channel on the TV-OUT of your DVB-S card (or
using xawtv or similar), then you can use the "-v" and
"-a" flags before the video and audio PIDs respectively:
dvbstream -f 12441 -p v -s 27500 -v 512 -a 660
dvbstream also has the ability to map PIDS to different values before you stream
it. For example, if you type
dvbstream -f 12441 -p v -s 27500 -v 512:1 -a 660:2
then the video stream will become "PID 1" and the audio stream will
become "PID 2".
Also, with driver versions from October 2001 onwards, you can broadcast the
entire transport stream (if you are using a budget card) with the command:
8192 is a "dummy PID" (legal PIDS are in the range 0-8191) and the
driver interprets this to mean the entire TS. Obviously, it would make no
sense to use the map feature on this "pid".
To receive the stream on any other machine on your LAN, use the dumprtp utility
(from ts-rtp). An slightly improved version is included in this archive. e.g.
dumprtp > received.ts
If you have a DVB card on the second machine, you can use the rtpfeed command to
decode the stream. Type "rtpfeed -h" for usage information. rtpfeed
was written by Guenter Wildmann <firstname.lastname@example.org> - please
address any bugs or comments to Guenter.
If you don't have a DVB card on the client machine, You can use mpg123 and the
mpegtools provided with the DVB driver for live audio decoding:
dumprtp | ts2es apid | mpg123 -
This command line is included with dvbstream as the "rtpradio.sh"
If you only want audio, you can run dvbstream with eight audio PIDs, and then
your clients can choose which PID to play.
For live TV channel playing, the best solution I have found is mplayer
(http://www.mplayerhq.hu). Please install the latest CVS version - mplayer is
being rapidly improved.
You can then view TV being streamed over the network using the following
dumprtp | ts2ps vpid apid | mplayer -cache 2048 -
This command line is included with dvbstream as the "rtptv.sh" script.
The file "mplayer-libmpdemux-network.c.patch" contains a patch for the
current (31 Jan 2001) CVS version of mplayer to "enable" the
experimental RTP support. To apply it, check out a fresh copy of mplayer using
and change into the "main/libmpdemux" directory.
Then apply the command:
patch < /path_to/dvbstream-0.4pre2/mplayer-libmpdemux-network.c.patch
You can then build mplayer as normal. To receive a RTP stream broadcast with
dvbstream's "-ps" option, you just need to type the following
command on the client machine:
mplayer rtp://18.104.22.168:5004/ -cache 2048
From v0.4 onwards, DVBstream incorporates a "telnet" interface to
allow you to remotely start and stop the streaming, and tune the card to a
The following commands are supported:
TUNE freq pol srate STOP ADDV pid[:map] ADDA pid[:map] ADDT pid[:map] ADD
closes down all PIDs and stops the streaming. The other commands
should be self-explanatory. See the scripts in the TELNET directory for
example usage. x
fixes a number of bugs that were present in the original
(1), and ts2es
was written by Dave Chapman <email@example.com> 2001,
2002. and is made available under the GNU Public License.
This man page was written by Alastair McKinstry, <firstname.lastname@example.org>.