DVBv5 Tools
DVBv5 Tools (not to be confused with the similarly named, but much older, DVB tools legacy project) is a small set of command line utilities that was developed to be compliant with the newer features provided by version 5 of the DVB API.[1] The tools should also be backward compatible with the older v3 DVB API.
This DVB toolset suite resides in the v4l-utils git repository, and uses libdvbv5.
It is composed of 4 tools::
- dvbv5-scan - Scans the channel transponders and gets the services available there;
- dvbv5-zap - Locks into a channel (zap), allowing other applications to get the stream at the dvr devices or to monitor the stream;
- dvb-fe-tool - Lists frontend properties and allow to manually set the DVB frontend
- dvb-format-convert - Converts from/to other formats used by DVBv3 apps into the dvbv5 format.
The DVBv5 file format is formed by a channel name, followed by a series of key/value properties.
For example, this is a channel file with one DVB-C channel on it:
[CHANNEL] DELIVERY_SYSTEM = DVBC/ANNEX_A FREQUENCY = 573000000 SYMBOL_RATE = 5217000 INNER_FEC = NONE MODULATION = QAM/256 INVERSION = AUTO
dvbv5-scan
A single physical channel (also called as transponder) may have several virtual channels inside it, encapsulated via a MPEG Transport stream.
Those virtual channels are called as "service" at the MPEG-TS terminology, and may have one or more audio, video and other types of elements inside it.
The dvbv5-scan goal is to scan for a list of physical channels/transponders and identify there the MPEG-TS services available.
The dvbv5-scan tool is smart enough to retrieve the information at the MPEG-TS Network Information Table (NIT) about other channels available on the stream.
Example:
$ dvbv5-scan ~/dvbc-test Scanning frequency #1 573000000 Lock (0x1f) Quality= Good Signal= 100.00% C/N= -13.80dB UCB= 0 postBER= 3.14x10^-3 PER= 0 Service SBT, provider (null): digital television Service Globo, provider Globo: digital television Service Record, provider (null): digital television Service Band, provider (null): digital television ... Service Trilhas Sonoras, provider (null): digital radio New transponder/channel found: #2: 579000000 ... New transponder/channel found: #39: 507000000
The scan process will then scan the other 38 discovered new transponders, and generate a dvb_channel.com with several entries with will have not only the physical channel/transponder info, but also the Service ID, and the corresponding audio/video/other program IDs (PID), like:
[Globo] SERVICE_ID = 5 VIDEO_PID = 288 AUDIO_PID = 289 FREQUENCY = 573000000 MODULATION = QAM/256 INVERSION = OFF SYMBOL_RATE = 5247500 INNER_FEC = NONE DELIVERY_SYSTEM = DVBC/ANNEX_A
There are several options that could be used on dvbv5-scan:
parameter | meaning |
---|---|
-3, --dvbv3 | Use DVBv3 only |
-a, --adapter=adapter# | use given adapter (default 0) |
-d, --demux=demux# | use given demux (default 0) |
-f, --frontend=frontend# | use given frontend (default 0) |
-F, --file-freqs-only | don't use the other frequencies discovered during scan |
-G, --get_frontend | use data from get_frontend on the output file |
-I, --input-format=format | Input format: CHANNEL, DVBV5 (default: DVBV5). The input format is case insensitive |
-l, --lnbf=LNBf_type | type of LNBf to use. 'help' lists the available ones. The LNBf model is case insensitive |
-N, --nit | use data from NIT table on the output file |
-o, --output=file | output filename (default: dvb_channel.conf) |
-O, --output-format=format | Output format: CHANNEL, ZAP, DVBV5 (default: DVBV5). The output format is case insensitive |
-p, --parse-other-nit | Parse the other NIT/SDT tables |
-S, --sat_number=satellite_number | satellite number. If not specified, disable DISEqC |
-T, --timeout-multiply=factor | Multiply scan timeouts by this factor |
-U, --freq_bpf=frequency | SCR/Unicable band-pass filter frequency to use, in kHz |
-v, --verbose | be (very) verbose |
-w, --lna=LNA (0, 1, -1) | enable/disable/auto LNA power |
-W, --wait=time | adds additional wait time for DISEqC command completion |
-?, --help | help |
--usage | Give a short usage message |
-V, --version | Print program version |
Please notice that, for Satellite systems, the LNBf and other corresponding settings are needed. the supported LNBf models by dvbv5-scan and dvbv5-zap are:
UNIVERSAL Europe 10800 to 11800 MHz and 11600 to 12700 MHz Dual LO, IF = lowband 9750 MHz, highband 10600 MHz DBS Expressvu, North America 12200 to 12700 MHz Single LO, IF = 11250 MHz EXTENDEDU Astra 1E, European Universal Ku (extended) 10700 to 11700 MHz and 11700 to 12750 MHz Dual LO, IF = lowband 9750 MHz, highband 10600 MHz STANDARD Standard 10945 to 11450 MHz Single LO, IF = 10000 MHz ENHANCED Astra 10700 to 11700 MHz Single LO, IF = 9750 MHz C-BAND Big Dish - Monopoint LNBf 3700 to 4200 MHz Single LO, IF = 5150 MHz C-MULT Big Dish - Multipoint LNBf 3700 to 4200 MHz Dual LO, Bandstacking, LO POL_R 5150 MHZ, LO POL_L 5750 MHz DISHPRO DishPro LNBf 12200 to 12700 MHz Dual LO, Bandstacking, LO POL_R 11250 MHZ, LO POL_L 14350 MHz
dvbv5-zap
The dvbv5-zap tool can be used on several different modes, depending on the parameters used.
The typical use is to tune into a channel and put it into record mode:
$ dvbv5-zap -c dvb_channel.conf "trilhas sonoras" -r using demux '/dev/dvb/adapter0/demux0' reading channels from file 'dvb_channel.conf' service has pid type 05: 204 tuning to 573000000 Hz audio pid 104 dvb_set_pesfilter 104 Lock (0x1f) Quality= Good Signal= 100.00% C/N= -13.80dB UCB= 70 postBER= 3.14x10^-3 PER= 0 DVR interface '/dev/dvb/adapter0/dvr0' can now be opened
The channel can be watched by playing the contents of the DVR interface, with some player that recognizes the MPEG-TS format.
For example (in this specific case, it is an audio only channel, but the same could be used for audio/video):
$ mplayer -cache 800 /dev/dvb/adapter0/dvr0 MPlayer SVN-r37077-4.8.2 (C) 2000-2014 MPlayer Team TS file format detected. NO VIDEO! AUDIO MPA(pid=104) NO SUBS (yet)! PROGRAM N. 0 ================================================================== Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III AUDIO: 48000 Hz, 2 ch, s16le, 192.0 kbit/12.50% (ratio: 24000->192000) Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III) ================================================================== AO: [alsa] 48000Hz 2ch s16le (2 bytes per sample) Video: no video Starting playback...
The dvbv5-zap tool can also be used to monitor a DVB channel:
$ dvbv5-zap -c dvb_channel.conf 573000000 -m using demux '/dev/dvb/adapter0/demux0' reading channels from file 'dvb_channel.conf' service has pid type 05: 204 tuning to 573000000 Hz Lock (0x1f) Quality= Good Signal= 100.00% C/N= -13.90dB UCB= 384 postBER= 96.8x10^-6 PER= 0 dvb_set_pesfilter to 0x2000
PID | FREQ | SPEED | TOTAL |
---|---|---|---|
0000 | 9.88 p/s | 14.5 Kbps | 1 KB |
0001 | 1.98 p/s | 2.9 Kbps | 376 B |
0010 | 18.77 p/s | 27.6 Kbps | 3 KB |
0011 | 48.42 p/s | 71.1 Kbps | 8 KB |
0012 | 1455.53 p/s | 2137.8 Kbps | 270 KB |
... | |||
1fff | 1033.60 p/s | 1518.1 Kbps | 192 KB |
TOT | 25296.44 p/s | 37154.2 Kbps | 4700 KB |
Lock (0x1f) Quality= Good Signal= 100.00% C/N= -13.90dB UCB= 384 postBER= 96.8x10^-6 PER= 0