Nowadays the main source of digital TV channels is receiving them from satellites using DVB-S technology. This method is notable for simplicity of deploying and variety of multimedia content on satellites [1]. In this article it is discussed receiving of satellite channels using NetUP DVB to IP gateway/streamer (hereafter, streamer) on Linux OS.
Range Scan. Searching for Available Channels
To scan a range and retrieve all available channels, it can be used an utility dvbscan from a package dvb-apps [2]. The input file format:
S 12320000 V 27500000 3/4
where in the 2nd column it is specified the transponder carrier frequency. The 3rd column sets the polarization: V-vertical, H-horizontal. The 4th column is the symbol rate.
To scan the entire range, it is required to prepare a file with all frequencies listed with the step of 1 MHz. For that let's create a file gen_scan.pl (it's a perl script) with the following content:
for ($x = 12100; $x < 12490; $x++){
$freq = $x."000";
printf("S $freq V 27500000 3/4\n");
};
In the script the values 12100 and 12490 are the range borders in MHz. The script can be launched using the command:
perl gen_scan.pl > scan.in
It creates a file scan.ini with the following content:
...
S 12448000 V 27500000 3/4
S 12449000 V 27500000 3/4
S 12450000 V 27500000 3/4
S 12451000 V 27500000 3/4
S 12452000 V 27500000 3/4
S 12453000 V 27500000 3/4
...
This file is used as the input for dvbscan. This utility is started by the command:
dvbscan scan.in > scan.out
The utility creates a file scan.out with the found channels. An example of file part follows:
...
MTV Russia:12240:v:0:27500:322:404:10303
Relax FM:12241:v:0:27500:0:427:10327
MTV Russia:12242:v:0:27500:322:404:10303
Relax FM:12242:v:0:27500:0:427:10327
...
As it can be seen, channels may be repeated. To clean up the file from the superfluous records, use the script parse_scan.pl:
open(IN, "-");
@data = ;
close(IN);
%chan = ();
%freq = ();
foreach (@data){
# UNOSAT:12100:v:0:27500:3200:3201:713
if($_ =~ m/(.+):(.+):(.+):(.+):(.+):(.+):(.+):(.+)/){
my $qnt = $chan{$1};
$qnt++;
$chan{$1} = $qnt;
my $tmp_name = $1."_".$qnt;
$freq{$tmp_name} = $_;
};
};
foreach (@data){
# UNOSAT:12100:v:0:27500:3200:3201:713
if($_ =~ m/(.+):(.+):(.+):(.+):(.+):(.+):(.+):(.+)/){
my $count = int($chan{$1}/2);
if($count < 1){
$count = 1;
};
my $tmp_name = $1."_".$count;
$ffreq{$1} = $freq{$tmp_name};
};
};
foreach $k (keys (%chan)){
print("$ffreq{$k}");
};
Start it by the following command:
cat scan.out | perl parse_scan.pl
Consequently, all found channels, their frequencies and PIDs are displayed. Obtained values can be used to create the channels section in the streamer configuration file.
Configuring NetUP DVB to IP Gateway/Streamer
Configuration file /netup/streamer/etc/streamdec.conf contains the following main parameters:
# DVB-S adapter number in the system. 0 - 1st adapter
adapter=0
# Transponder carrier frequency to which the tuner is tuned
freq=12245
# symbol rate
sr=27500
# polarization. 0 - vertical (18V), 1 - horizontal (13V)
pol=1
# LNB settings
lnb_low_val=9750000
lnb_high_val=10600000
lnb_switch_val=11700000
# Channel tuning. One channel per string
# string format:
# apid:vpid:channel:multicast_ip:multicast_port:ca_ip:ca_port:ca_login:ca_password
# where:
# apid - PID of the audio stream
# vpid - PID of the video stream
# channel - TV channel id
# multicast_ip - multicast IP address the channel is broadcast to
# multicast_port - UDP port the channel is streamed to
channel=412:326:10307:224.200.200.215:1234:none:0:none:none
channel=418:328:10308:224.200.200.216:1234:none:0:none:none
Default LNB settings are for the universal LNB type. If you have other LNB parameters, it is necessary to make appropriate changes in the configuration file. If the settings are wrong, frequencies are shifted proportionally. In this case either the correct values should be set or, as it is given above, the full range should be scanned for retrieving absolute frequency values.
Let's take a universal LNB IDLP-40TCIRCL as an example (photo 1).
Photo 1. Universal LNB IDLP-40TCIRCL
Specification for this LNB is available at the URL:
http://www.doebis.de/sites/lnbs/lnbs_datenpdfs/inverto_idlp_40_tcircl.pdf [3].
In the specification the following parameters are given:
|
Input Frequency (GHz)
|
10.7-11.7 GHz, 11.7-12.75 GHz
|
|
LO Freq
|
9.75 GHz/10.6 GHz
|
These values should be used for changing parameters lnb_* in the streamer configuration file.
The streams can be checked by using the following command on the streamer:
trafshow -ni eth0 port 1234
The output contains the table of current multicast streams with the bitrate and number of transferred bytes specified:
From Address To Address Proto Bytes CPS
=======================================================================
10.1.11.10..32795 224.200.200.202..1234 udp 8537028 375494
10.1.11.10..32788 224.200.200.212..1234 udp 7952044 407992
10.1.11.10..32790 224.200.200.209..1234 udp 7094228 279341
10.1.11.10..32787 224.200.200.213..1234 udp 7043440 351231
10.1.11.10..32784 224.200.200.210..1234 udp 7008084 280157
10.1.11.10..32782 224.200.200.215..1234 udp 6508896 314706
10.1.11.10..32785 224.200.200.207..1234 udp 5925792 231584
10.1.11.10..32794 224.200.200.200..1234 udp 5906572 200676
10.1.11.10..32793 224.200.200.211..1234 udp 6047448 326328
10.1.11.10..32796 224.200.200.205..1234 udp 5881424 306071
10.1.11.10..32783 224.200.200.216..1234 udp 5758480 393428
10.1.11.10..32798 224.200.200.201..1234 udp 5570160 321016
10.1.11.10..32797 224.200.200.204..1234 udp 5365592 284411
10.1.11.10..32791 224.200.200.217..1234 udp 5195216 207687
10.1.11.10..32786 224.200.200.206..1234 udp 5297696 296824
10.1.11.10..32799 224.200.200.203..1234 udp 4779076 203542
10.1.11.10..32792 224.200.200.214..1234 udp 3279980 161183
10.1.11.10..32789 224.200.200.208..1234 udp 3144896 131500
10.1.11.10..32800 224.200.200.250..1234 udp 512616 22896
10.1.11.10..32801 224.200.200.251..1234 udp 364532 28590
(eth2) 100217 kb/total 4057 pkts/sec 5250733 bytes/sec Page 1/1
As it can be seen, the streamer currently multicasts 20 streams into the network (18 TV channels and 2 radio stations).
References
- Satellite directory, http://www.lyngsat.com/
- linuxtv project website, http://www.linuxtv.org/
- Specification for the universal LNB IDLP-40TCIRCL,
http://www.doebis.de/sites/lnbs/lnbs_datenpdfs/inverto_idlp_40_tcircl.pdf
Discuss this article on the forum...