dvbstream - Transmit a DVB transport stream via RTP
dvbstream [ -f freq] [ -p vh] [ -s symbolrate] [ -c cardnum] [ -o ] [ -ps ] [ -i ipaddr ] [ -r port] [-a apid] [ -v vpid] p -t ttpid] [-n secs ] [ pid1 ... ]
dvbstream 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 protocol.
- The Frequency to tune into, in MHz.
- -p, v|h
- The polarisation; either h (horizontal) or v (vertical).
- -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 18.104.22.168)
- -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 following command:
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" script.
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 command:
dumprtp | ts2ps vpid apid | mplayer -cache 2048 -
This command line is included with dvbstream as the "rtptv.sh" script.
MPLAYER RTP-PS SUPPORT¶
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://22.214.171.124: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 different channel.
The following commands are supported:
TUNE freq pol srate STOP ADDV pid[:map] ADDA pid[:map] ADDT pid[:map] ADD pid[:map] QUIT
STOP 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
dvbstream fixes a number of bugs that were present in the original ts-rtp application.
dvbstream was written by Dave Chapman <email@example.com> 2001, 2002. and is made available under the GNU General Public License.
This man page was written by Alastair McKinstry, <firstname.lastname@example.org>.
|4 March 2005||Linux|