Canali duplicati

mike71

Digital-Forum Senior Plus
Registrato
16 Giugno 2010
Messaggi
554
Località
45°10' N 7°30' E
HTML:
#!/usr/bin/perl
#
# questo programma legge una lista canali dvb-t la ordina per
# frequenza e pid, quindi elimina i duplicati. Lo stesso canale non viene
# eliminato se su frequenza diversa
#
use strict;
use warnings;

my @sorted = map {$_}
sort { $a->[2] <=> $b->[2] ||
	   $a->[11] <=> $b->[11] ||
	   $a->[12] <=> $b->[12] }
map {chomp;[$_,split(/:/)]} <>;

my $freq=0;
my $vpid=0;
my $apid=0;

foreach my $line(@sorted) {
    
    if(@$line[2]<=>$freq || @$line[11]<=>$vpid || @$line[12]<=>$apid) {
	print "@$line[0]\n";
	$freq=@$line[2];
	$vpid=@$line[11];
	$apid=@$line[12];
    }
    else {
	# print "#SAME PID#  @$line[1] @$line[2] @$line[11] @$line[12];\n";
    }
}

Questo post è molto linux-centrico, nel senso che è molto utile per chi usa dei sistemi basati su mlayer, xine o vlc sotto linux per vedere il digitale terrestre, ma permette di fare considerazioni generali.

Ho scritto questo programmino in perl che prende i dati del dvb-t generati da scan, li ordina per frequenza e pid ed eleimina i programmi che hanno stesso pid sulla stessa frequenza.

Qui a torino quasi la metà dei canali sono duplicati, ed in mezzo ci sono anche i canali DVB-H e di test (ovvero con vpid ed apid a 0).

$wc -l channels.conf
443 channels.conf

$wc -l .mplayer/channels.conf
236 .mplayer/channels.conf

In questo caso il 46% dei canali sono duplicati o con apid e pid a 0 (vengono contati come duplicati)

Se li tolgo, i numeri diventano:

$ wc -l ch.conf
361 ch.conf

$wc -l .mplayer/channels.conf
224 .mplayer/channels.conf

Ovvero il 38% dei canali sono duplicati dello stesso MUX.

La lista è quella dei canali ricevibili a Torino.
 
Indietro
Alto Basso