NeutrinoHD:Senderlisten
Inhaltsverzeichnis
Allgemeines
Senderlisten bilden die wichtigste Grundlage für die alltägliche Bedienung von DVB-Empfängern. Obwohl meist im Hintergrund, werden daraus in der Senderverwaltung die zentralen Auswahllisten und Informationen für den Anwender generiert. Und nach erfolgter Wahl wird daraus natürlich auch das gewünschte Ergebnis (Bild und Ton) für die Ausgabe zusammengestellt.
Da sich das verfügbare Angebot über Satellit und Kabel häufiger ändert, ist es wichtig, die Senderlisten über eine Sendersuche regelmäßig zu aktualisieren. Dieser Vorgang - auch Scannen genannt - soll die angebotenen Dienste (TV- und Radio-Sender sowie Datenkanäle, allgemein:Services) ermitteln, die gefundenen Daten für weitere Aufgaben anpassen und in Senderlisten speichern.
Zur Vereinfachung dieser häufiger durchzuführenden Aktualisierungen gibt es eine Vorlage, die eine Liste der zu durchsuchenden "Stellen" enthält.
Suchvorlagen
Hier werden die zur Sendersuche benötigten Dateien beschrieben. Diese sind für die Empfangswege Satellit und Kabel unterschiedlich:
- Satellit (DVB-S) => satellites.xml
- Kabel (DVB-C) => cables.xml
Diese Vorlage-Dateien müssen natürlich auf einem aktuellen Stand sein, damit die Sendersuche korrekt und vollständig duchgeführt werden kann.
Da sie zur Konfiguration (der Senderverwaltung) gehören, findet man sie im Verzeichnis /var/tuxbox/config und können bei Bedarf durch aktuellere oder eigene Versionen ersetzt werden.
satellites.xml
In dieser Datei sind die Satelliten und deren Transponder beschrieben, die bei einem Suchlauf analysiert werden sollen.
Obwohl nach Updates der Receiver-Software diese Vorlagen aktualisiert sind, lohnt sich ein regelmäßger Besuch auf einer Website für den Sat-Empfang, zum Beispiel Lyngsat.com. Dort werden zeitnah neue oder geänderte Satellitenpositionen und Transponderdaten verfügbar gemacht.
Es gibt auch die Möglichkeit, solche Listen über Generator-Seiten im Internet erstellen zu lassen. Eine Quelle findet man am Anfang in der mitgelieferten satellites.xml (siehe unten)
<?xml version="1.0" encoding="UTF-8"?> <!-- file generated on wednesday, 13th of october 2010, 08:08:49 [GMT] by online satellites.xml generator @ http://satellites-xml.eu please let us know if you find any inconsistencies in this file --> <satellites> ... <sat name="Astra 1H/1KR/1L/1M (19.2E)" flags="0" position="192"> <transponder frequency="10729000" symbol_rate="22000000" polarization="1" fec_inner="2" system="1" modulation="2"/> <transponder frequency="10744000" symbol_rate="22000000" polarization="0" fec_inner="4" system="0" modulation="1"/> <transponder frequency="10773000" symbol_rate="22000000" polarization="0" fec_inner="2" system="1" modulation="2"/> <transponder frequency="10788000" symbol_rate="22000000" polarization="1" fec_inner="4" system="0" modulation="1"/> ... </sat> ... </satellites>
Erläuterung der Elemente und Attribute:
<satellites> </satellites> | Root-Element: Zwischen diesen beiden Tags befinden sich die Daten aller Satelliten |
<sat...> </sat> | Satelliten-Element: Alles zwischen diesen beiden Tags bezieht sich auf einen der genutzten Satelliten |
name=“Astra 19.2E“ | Name des Satelliten |
flags=“0“
aktuell nicht genutzt |
Zur Festlegung unterschiedlicher Such-Modi
1 = Auswertung NIT => Netzwerk Suche (Network Information Table) 2 = Auswertung BAT => Gruppierung der Sender nach Provider-Paketvorgeben (Bouquet Association Table) 4 = Auswertung ONID => NIT=Network Information Table. 8 = skip NITs of known networks => dabei Auswertung bereits bekannter NetworkInformationsTabellen überspringen. --> auch Kombination verschiedener Flags (9=8+1) durch Addition der Werte möglich. |
position="192" | Position des Satelliten (19,2°E), wird auch als "Broadcaster"-Identifikation für die Sat-Position genutzt |
<transponder ...... /> | Transponder-Element: Alle weiteren Angaben in der Zeile bezieht sich auf diesen einen Transponder |
frequency="10876000" | Transponderfrequenz 10,876 GHz |
symbol_rate="22000000" | Symbolrate 22000 |
polarization="1" | Polarisation: 0=horizontal, 1=vertikal (2=linksdrehend, 3=rechtsdrehend) |
fec_inner="4" | FEC=Forward Error Correction: (siehe unten) |
system="1" | DVB-Systemversion: 0=DVB-S1, 1=DVB-S2 |
modulation="2" | Modulation: 1=QPSK, 2=8PSK |
FEC
Zusätzlich zum Nutzsignal werden weitere Daten übertragen, mit deren Hilfe bei einer Übertragungsstörung das Nutzsignal rekonstruiert werden kann. Der Wert der FEC zeigt das Verhältnis zwischen Nutzdaten und den Gesamtdaten (inkl.Korrekturdaten) an. Ein Wert von 5/6 bedeutet: 5 Bits werden für die Daten benutzt und 1 Bit für die Fehlerkorrektur, also 6 Bit insgesamt. Das bedeutet auch, das 1/6 der Bandbreite für die Fehlerkorrektur "ver[sch]wendet" wird. Bei einem Wert von 1/2 wird die Hälfte der Bandbreite zur Fehlerkorrektur verwendet.
- in satellites.xml verwendete (historisch bedingte) Zuordnung:
- FEC auto => fec_inner=0
- FEC 1/2 => fec_inner=1
- FEC 2/3 => fec_inner=2
- FEC 3/4 => fec_inner=3
- FEC 5/6 => fec_inner=4
- FEC 7/8 => fec_inner=5
- FEC 8/9 => fec_inner=6
- FEC 3/5 => fec_inner=7
- FEC 4/5 => fec_inner=8
- FEC 9/10 => fec_inner=9
Mit Hilfe der Symbolrate und der FEC kann man Datenrate errechnen: Nettodatenrate = Symbolrate (2 * FEC) (188/204)
Beispiel: Symbolrate=27500, FEC=3/4
Nettodatenrate = 27500 (2 * 3/4) (188/204) = 38014,71 Mbps
cables.xml
An dieser Stelle muss noch Text rein.
Senderlisten
Aus den oben beschriebenen Suchvorlagen erstellt oder aktualisiert das Betriebssystem bei einem Kanalsuchlauf die zentrale Senderliste, in der alle für den Betrieb grundsätzlich notwendigen Daten gespeichert sind. Dazu werden die zusätzlich zu den Nutzdaten (Video, Audio usw.) 'mitgesendeten' System-Informations-Tabellen (sogenannte SI-Daten) ausgewertet und in einer geeignet sortierten Liste - der Senderliste - verfügbar gemacht.
NeutrinoHD verwendet dazu - genau wie die DVB-Daten selbst - eine hierarchische Struktur und benutzt dafür ein Format (XML), mit dem man diese geschachtelte Ordnung sehr einfach wiedergeben kann.
services.xml
Die Datei services.xml ist nun die vom System erzeugte Senderliste, in der alle gefundenen Services (TV-Programme, Radio-Programme, Datendienste usw.) gespeichert sind. 'services.xml' findet man im Verzeichnis für die Senderverwaltungsdaten: /var/tuxbox/config/zapit/.
Satelliten - Version
<?xml version="1.0" encoding="UTF-8"?> <zapit api="3"> ... <sat name="648 Astra 1" position="192" diseqc="0" uncommited="-1"> <TS id="041a" on="0001" frq="10729000" inv="2" sr="22000000" fec="20" pol="1"></TS> <TS id="041b" on="0001" frq="10744000" inv="2" sr="22000000" fec="5" pol="0"></TS> <TS id="000a" on="0085" frq="10773000" inv="2" sr="22000000" fec="20" pol="0"></TS> ... </sat> ... </zapit>
Kabel - Version
<?xml version="1.0" encoding="UTF-8" ?> <zapit api="3"> <cable name="Kabel BW" position="3"> <TS id="044d" on="a401" frq="346000" inv="2" sr="6900000" fec="0" mod="5"></TS> </cable> </zapit>
Erläuterung der Elemente und Attribute:
<zapit> </zapit> | Root-Element: Zwischen diesen beiden Tags befinden sich die Daten aller Satelliten |
<sat...> </sat> | Satelliten-Element: Alles zwischen diesen beiden Tags bezieht sich auf einen der genutzten Satelliten |
<cable...> </cable> | Cable-Element: Alles zwischen diesen beiden Tags bezieht sich auf denselben Kabelnetzbetreiber |
name="Astra 19.2E" | Name des Satelliten |
position="192" | Identifikation des "Betreibers" (Broadcaster)
Für Satellit: Grad-Angabe der Satellitenposition mal 10, das Ergebnis bei Orientierung "Ost" (E) positiv, bei Orientierung "West" (W) negativ => Thor 0.8 W => Identifikation = -8 Für Kabelnetzbetreiber: Eine frei festgelegte Zahl |
diseqc="0" | DiSEqC = Digital Satellite Equipment Control.
Steht aber hier für die Nummerierung der an 'normale' DISEqC 1.0-Schalter (Typ 'committed') angeschlossenen maximal 4 LNBs (AA=Option A/Position A bis BB=Option B/Position B) Dabei steht "0" für LNB 1 (DiSEqC=AA), "1" für LNB 2 (DiSEqC=AB), "2" für LNB 3 (DiSEqC=BA)und so weiter. Dient in NeutrinoHD an dieser Stelle nur noch der Information, da die reale DiSEqC-Steuerung erweitert wurde und deren Konfiguration in sat.conf gespeichert ist. |
uncommited="-1" | Angaben zu DiSEqC 1.1 Schalter (Typ uncommited): -1 = nicht vorhanden |
<TS......> </TS> | Transportstream-Element: Alles in diesem so markierten Bereich bezieht sich auf einen bestimmten Transport-Stream (Satellitentransponder, Kabel-Frequenz) |
id="044d" | ID-Nummer des Transport-Stroms (TSID).
Identifiziert einen Transponder/Multiplex innerhalb eines Netzwerks. Jede TransportStream-ID existiert pro zugehöriger NID/ONID nur ein mal, kann jedoch pro Satellit mehrfach vorkommen. Der Wert ist hexadezimal anzugeben: 044d (hex) = 1101 (dez) In den Listen z.B. auf Lyngsat werden die Werte als Dezimalwerte angegeben!!!! |
on="0001" | Original-Network-Identifikation (ONID). Identifiziert einen Netzwerkprovider. Die Kombination von ONID und TID identifiziert einen Transponder/Multiplex eindeutig, wenn die Vorgaben der DVB-Dokumentationen eingehalten werden.Wert ist hexadezimal anzugeben: onid="0085" => 0x0085 (hex) = 0133 (dez)
Bei Lyngsat werden ONID und TSID zusammen als Dezimalwerte angegeben: 133-4 Beispiele für "zugeteilte" OriginalNetzwerk-Identifikationen:
|
frq="11836500" | Transponderfrequenz/Transportstreamfrequenz 10,876 GHz |
inv="2" | Wert nur für Kabelboxen erforderlich. Aus Kompatiblitätsgründen auch bei den SAT-Boxen vorhanden. |
sr="27500000" | Symbolrate 27500 |
fec="3" | FEC => siehe unten |
pol="0" (bei Sat) | Polarisation: 0=horizontal, 1=vertikal |
modulation="6" (bei Kabel) | Polarisation: 3=QAM64, 5=QAM256, 6=Auto |
Service-Element: In dieser Zeile werden alle Daten für einen bestimmten Sender angegeben | |
i="6dca" | Die Service-ID bzw. SID (Service Identifikation) ermöglicht die eindeutige Markierung eines einzelnen Programmes (Dienstes) innerhalb eines meist viel umfangreicheren Datentstroms. Durch die Service-ID können Set-Top-Boxen jeweils den gewünschten Service (TV-Progreamm, Radio-Programm, Datendienst) aus dem Transport-Strom herausfiltern. Dabei kann ein solcher Service auch aus mehreren unterschiedlichen Teilen (ElementarStreams: Videosignal, Audiosignale, Videotext, EPG usw.) zusammengesetzt sein. Jede SID existiert pro Transponder nur einmal. Der Wert ist hier hexadezimal anzugeben: 6dca (hex) = 28106 (dez) |
n="Das Erste" | Sendername (Service-Bezeichner) |
v="a0" | nur bei eingeschalteter PID-Auswertung: Video-PID (hex) |
a="50" | nur bei eingeschalteter PID-Auswertung: erste Audio-PID (hex) |
p="a0" | nur bei eingeschalteter PID-Auswertung: PCR-PID (hex) |
pmt="400" | nur bei eingeschalteter PID-Auswertung: PMT-PID (hex) |
tx="1f8" | nur bei eingeschalteter PID-Auswertung: VideoText PID (hex) |
vt="1" | nur bei eingeschalteter PID-Auswertung: "Video"-Typ => 0=SD 1=HD |
t="1" | Service-Typ
Beispiele für den Service-Typ:
und viele Weitere |
s="1" | Schlüsselungs-Flag: 0=unverschlüsselt, 1=verschlüsselt |
FEC
Um NeutrinoHD ohne aufwändige Codeänderungen schnellstmöglich auf die weitergehenden Anforderungen von HDTV anzupassen, wurde die FEC-Angabe intern um die aktuell dafür fehlenden 'Werte' für DVB-TYP (S1/S2) und Modulation (QPSK/8PSK) erweitert.
Daher eine andere Indizierung innerhalb von Neutrino HD:
- Standard (SD)
- FEC 1/2 => fec_inner=1
- FEC 2/3 => fec_inner=2
- FEC 3/4 => fec_inner=3
- FEC 5/6 => fec_inner=4
- FEC 7/8 => fec_inner=5
- FEC 8/9 => fec_inner=6
- FEC 3/5 => fec_inner=7
- FEC 4/5 => fec_inner=8
- FEC auto => fec_inner=9
- DVB-S2 mit QPSK
- FEC 1/2 DVB-S2 QPSK => fec_inner=10
- FEC 2/3 DVB-S2 QPSK => fec_inner=11
- FEC 3/4 DVB-S2 QPSK => fec_inner=12
- FEC 5/6 DVB-S2 QPSK => fec_inner=13
- FEC 7/8 DVB-S2 QPSK => fec_inner=14
- FEC 8/9 DVB-S2 QPSK => fec_inner=15
- FEC 3/5 DVB-S2 QPSK => fec_inner=16
- FEC 4/5 DVB-S2 QPSK => fec_inner=17
- FEC 9/10 DVB-S2 QPSK => fec_inner=18
- DVB-S2 mit 8PSK
- FEC 1/2 DVB-S2 8PSK => fec_inner=19
- FEC 2/3 DVB-S2 8PSK => fec_inner=20
- FEC 3/4 DVB-S2 8PSK => fec_inner=21
- FEC 5/6 DVB-S2 8PSK => fec_inner=22
- FEC 7/8 DVB-S2 8PSK => fec_inner=23
- FEC 8/9 DVB-S2 8PSK => fec_inner=24
- FEC 3/7 DVB-S2 8PSK => fec_inner=25
- FEC 4/5 DVB-S2 8PSK => fec_inner=26
- FEC 9/10 DVB-S2 8PSK => fec_inner=27
- FEC auto DVB-S2 => fec_inner=28
Trotz eines eigentlich recht gut lesbaren Textformats ist es nicht ratsam, die Daten in dieser zentralen Senderliste manuell zu bearbeiten, selbst wenn man die Tücken von 'wohlgeformtem' - aber nicht intern validiertem - XML beherrscht. Die Funktion der Box ist zwingend von der Korrektheit solcher Basis-Daten des Betriebssystems abhängig!!
Wie alle vom System erzeugten oder aktualisierte Daten sind sie daher aus gutem Grund nach einer "Aktion", zum Beispiel hier nach einer Sendersuche, wieder auf dem vom System vorgegebenen, aktuellen Stand. Manuelle Änderungen außerhalb des Systems werden dabei gnadenlos 'überarbeitet'.
Natürlich ist es in manchen Fällen erfoderlich, nützlicher oder einfach nur schöner, die über Satellit und Kabel von den jeweiligen Programmveranstaltern (Providern) gesendeten DVB-Basisdaten der Senderliste an persönliche Vorstellungen anzupassen.
Genau zu diesem Zweck gibt es eine "zweite" Senderliste, speziell für den Anwender, die vom System nicht angetastet wird. Dort kann man seine Anpassungen dauerhaft vorgeben. Nach jeder Aktion des Systems, spätestens jedoch nach dem Neuladen der Senderliste oder einem Neustart, werden diese Anpassungen wieder mit dem aktualisierten Bestand in der services.xml abgeglichen! Man findet diese Datei an gleicher Stelle ( /var/tuxbox/config/zapit/ ).
myservices.xml
Ein Liste von "Sendern", die individuell angepasst werden sollen. Wie der Name schon andeutet, entspricht das Format der services.xml, erweitert um das Attribut "action" aktuell mit den 'Werten' add, remove, replace. Leider gibt es zur Zeit (immer noch) keine Möglichkeit, diese anwenderbezogenen Daten unter Neutrino innerhalb der Box zu erzeugen oder zu editieren.
Folgende Aktionen werden von myservices.xml unterstützt:
add
Damit können Sender, die beim Suchlauf nicht gefunden werden, der Senderliste zugefügt werden.
replace
Damit können Eigenschaften vorhandener Sender angepasst werden. Als Beispiele können individuelle Namensänderungen und Korrekturen fehlerhafte Daten genannt werden. Oder auch bewusste Verwendung von Falschdaten, um ein TV-Programm mit "Bild" als Bildschirmschoner und Audio-Feed(s) in ein Radio-Programm umzuwandeln.
remove
Damit können unerwünschte Services aus der Senderliste entfernt werden.
Ein Beispiel:
<?xml version="1.0" encoding="UTF-8"?> <zapit api="3"> ... <sat name="648 Astra 1" position="192" diseqc="0" uncommited="-1"> ... <TS id="0002" on="0085" frq="11798000" inv="2" sr="27500000" fec="3" pol="0"></TS> <TS id="042e" on="0001" frq="11817000" inv="2" sr="27500000" fec="3" pol="1"></TS> <TS id="044d" on="0001" frq="11836000" inv="2" sr="27500000" fec="3" pol="0"></TS> ... </sat> ... </zapit>
Anwendungslisten
Aufbauend auf dem nach außen hin unsichtbaren, "vollständigen" Datenbestand der Senderlisten können dem Anwender nun diese Daten unter verschiedenen Gesichtspunkten (Selektion, Sortierung, Filterung) als Listen zur Information oder zur Auswahl/Steuerung seiner Box angeboten werden. Alle diese "Sichten" (Views) werden über Verweise (Referenzen) auf die Senderliste gebildet. Diese Referenzen folgen der DVB-Hierarchie: Broadcaster (Satellit/Kabelnetzbentreiber/..) mit der entsprechenden ID (hier Attribut : sat.position oder cable.position) Transport-Stream mit entsprechender ID (hier attribute TSID[TS.id] + ONID[TS.on]) Services mit seiner ID (Attribut : Service-ID[S.i]) Für "Das Erste" auf Sat/Astra 1 wäre das dann: "0192:044d:0001:6dca" und würde (wegen myservices.xml) in der entsprechenden Liste den Eintrag "eins" erzeugen.
Dabei muss man - ähnlich wie bei services.xml und myservices.xml - zwischen systemerstellten und anwenderbezogenen Listen unterscheiden.
Systemgenerierte Listen
Diese Listen zeichnen sich dadurch aus, dass sie immer auf dem aktuellen Stand der Senderliste (services.xml plus myservices.xml) aufbauen. Auch hier gilt, dass - wenn sie überhaupt gespeichert vorliegen - eine mögliche manuelle Bearbeitung bei der nächsten System-Aktion wieder verloren ist. Diese Art von Listen dient in der Regel Informations- und Kontrollzwecken. Damit helfen sie aber auch bei der Gestaltung von anwenderbezogenen Listen für den 'täglichen' Gebrauch.
Gesamtliste
Dies ist eine nach dem Sendernamen alphabetisch sortierte Liste aller in der Senderliste enthaltenen Services. Die Gesamtliste wird bei Bedarf aus dem aktuellen Bestand der Senderliste temporär generiert und gestattet damit die Suche von Services - auch satellitenübergreifend - anhand des Service-Bezeichners. Diese 'Sicht' auf die Senderliste kann in der Benutzeroberfläche über die blaue Taste in der obersten Kanallisten-Hierarchie aufgerufen werden.
Bei Satellitenanlagen mit geeigneter Empfangseinrichtung können über den Horizont schon 8.000 bis 10.000 Services zusammenkommen. Bei solchen Datenmengen ist diese Liste aber etwas unhandlich.
Transponderliste
Diese Liste wird ebenfalls temporär aus dem aktuellen Bestand generiert und bietet die Sicht auf die weiteren Services des aktuell genutzten Transponders. Zu erreichen ist diese Liste über die "Cool"-Taste (FB:HD1) oder die M/S-Taste (FB:Neo). Besonders bei Ein-Tuner - Receivern ein nettes Angebot um neben einer laufenden Aufnahme (Service A) einen weiteren Service (Video oder Audio) für die parallele Ausgabe auszuwählen. Auch für die Übernahme neuer Services nach einem Suchlauf eine recht übersichtliches und schnell erreichbares 'Angebot'
Providerliste
Anwendereigene Listen
ubouquets.xml
Konfigurationsdateien
Sat
Scan
Zapit
Das Verhalten von Zapit kann mittels diverser Parameter konfiguriert werden. Zur Konfiguration dient die Datei zapit.conf in /var/tuxbox/config/zapit/
Parameter | Bedeutung | Werte |
saveLastChannel | Speichern des zuletzt gewählten Senders | 0=Aus; 1=An; Undefiniert=An |
lastChannelMode | Speichert den TV- bzw Radio-Modus | 0=TV-Modus; 1=Radio-Modus |
lastChannelRadio | Kanalnr. des zuletzt gehörten Radiosenders | Beliebig |
lastChannelTV | Kanalnr. des zuletzt gesehenen TV-Senders | Beliebig |
lastSatellitePosition | - | - |
writeChannelsNames | - | - |
makeRemainingChannelsBouquet | Bouquet "Andere" anzeigen | 0=Aus; 1=Ein |
diseqcRepeats | - | - |
diseqcType | - | - |
motorRotationSpeed | - | - |
traceNukes | - | - |
ChannelNamesFromBouquet | - | - |
saveAudioPIDs | - | - |
lnbX_OffsetLow | - | X=0..63 |
lnbX_OffsetHigh | - | X=0..63 |
uncommitted_switch_mode | 0..2 |
Beispiel für eine zapit.conf:
saveLastChannel=1 diseqcRepeats=2 diseqcType=3 lastChannelRadio=36 lastChannelTV=94 lastSatellitePosition=192
Tipp:
Möchte man erreichen, dass die Box immer mit demselben Sender startet, unabhängig davon, welcher Sender beim Herunterfahren der Box angewählt war, dann setzt man den Parameter saveLastChannel=0 und je nach gewünschtem Modus lastChannelRadio oder lastChannelTV auf die entsprechende Programmnummer.
Audio
Grundlagen - Installation - Debug-Mode - Hardware - CDK/Development
LCars - Neutrino - Enigma - Plugins - Spiele - Software - Tools - Howto - FAQ - Images
Hauptseite - News - Alle Artikel - Bewertungen - Gewünschte Seiten - Index - Neue Artikel - Impressum - Team
Hilfeportal - Seite bearbeiten - Bilder - Links - Tabellen - Textgestaltung