DBox recorder

Aus TuxBoxWIKI
Version vom 22. September 2005, 13:10 Uhr von Mash4077 (Diskussion) (Links & Typos)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Tools


Allgemeines

DBox Recorder ist ein DVB Video Streaming Server für Linux.

Die DBox2 unterstützt bekannterweise mehrere Aufnahmemöglichkeiten. Das hier beschriebene "recorder" Programm kann für die Aufnahme via "streaming server" verwendet werden, wobei die Ansteuerung über das entsprechende (timerbasierte) Frontend der DBox2 erfolgt.


"recorder" kann auf einem separaten Linux-Rechner mit Netzwerkunterstützung betrieben werden.


Es sorgt dann dafür, dass die Videodaten zu den jeweils auf der DBox2 programmierten Aufnahmen über Netzwerk und spezielle Streamingports ausgelesen und gespeichert werden. Die DBox2 arbeitet hierbei als Master und liefert lediglich die nötigen Start/Stop Aufnahme-Befehle.


Im Unterschied zu einigen anderen verfügbaren, ähnlichen Programmen (wie z.B. sserver), arbeitet "recorder" eingehende Ereignisse asynchron ab, d.h der "Kommando-Eingang" wird nie geblockt, sodass "record"-Kommandos in keinem Falle verloren gehen können.


So kann "recorder" auch Anfragen an den DBox2 http-Server durchführen, ohne die Empfangsbereitschaft für DBox2-Kommandos zu gefährden.


Features

Hier nun die einzelnen Features im Detail:


Integrierter Server für den Aufnahmetimer Client

Integrierter Server für den Aufnahmetimer Client ("timerd") der DBox2. Er empfängt und vearbeitet die "record" Kommandos der DBox2. Dabei wird über eine Input Queue sichergestellt, dass kein Kommando verloren geht und eine serielle Abarbeitung möglich ist, d.h. ein Start wird auch dann erkannt, wenn zwei Filme unmittelbar hintereinader folgen, also Stop/Start-Sequenz ohne dazwischenliegender Pause.


Auch das Eintreffen eines Startkommandos während einer bereits laufenden Aufnahme kann korrekt bedient werden: dazu wird die laufende Aufnahme sofort abgebrochen und die neue Aufnahme eingeleitet. Der Stop-Befehl der ersten Aufnahme wird dann ignoriert, sodass die 2. Aufnahme in voller Länge (bis zum zugehörigen STOP) erfolgen kann.


Sollten aus irgendwelchen Umständen mehrere START/STOP Kommandos unmittelbar hintereinder eintreffen (z.B. ein Film mit veraltetem EPG-Eintrag, dessen Stopzeit bereits abgelaufen ist, wurde versehentlich programmiert), wird erst gar kein Aufnahmevorgang eingeleitet, da erst eine Überprüfung der gesamten Queue erfolgt und somit zusammengehörende Start/Stop-Kommandos bereits im Vorfeld verworfen werden.


Integrierter Client für den Web-Serbver

Integrierter Client für den Web-Serbver ("nhttpd") der DBox2 -> er wird z.B. benutzt zur Fernsteuerung (z.B. das An/Ab-Schalten des "record modes") oder zum Einlesen von verschiedenen Informationen vor dem Starten des Streaming Prozesses (grabben), wie z.B die Auswertung von EPG-Daten zur Ermittlung der Filmspieldauer oder die Synchronisation der Uhr etc.


Separates Streaming Program

Separates Streaming Program (dboxgrab) zum Lesen der TS-Daten über Netzwerk vom entsprechenden Streamingport der DBox2. "recorder" ruft es bei einer anstehenden Aufnahme mit den entsprechenden Parametern auf. Es können nur eine Video- und eine Audiospur ausgewählt werden (trotzdem können u.U. zwei Audiospuren gleichzeitig aufgenommen werden). Alternativ kann auch ein anderes grab-Programm konfiguriert werden.


Individuell einstellbares Timing

Die Zeitabfolge der einzelnen Schritte bis zum Starten (bzw. nach dem Beenden) der Aufnahme kann im bestimmten Rahmen eingestellt werden. Dies ermöglicht auch ein "konservatives" Ansprechen für "empfindliche" DBoxen.


Eine Aufnahme setzt sich maximal aus diesen zeitlich aufeinander folgenden Schritten zusammen:

  • Eintreffen eines Start Kommandos mit Auswertung...
  • Optionale Pause (Dauer einstellbar über "PrepareDelay")
  • Optionale Aufnahmevorbereitung (in einer prepare Phase), um noch einige Informationen wie z.B. Systemzeit und EPG-Daten (Filmdauer) über http von der DBox2 abzufragen (einstellbar mit "DoPrepare")...
  • Pause (Dauer einstellbar über "preDelay")
  • Aktivierung des "record modes", optional mit "stopplayback" (einstellbar über "PlaybackCtrl")
  • Pause (Dauer einstellbar über "preDelay")
  • Aufnehmen der Streaming Daten über separaten grab Prozess bis STOP oder sonstiger Abbruch.
  • Optionale Pause (Dauer einstellbar über "postDelay")
  • Deaktivierung des "record modes" (und startplayback falls vorher gestoppt).

Falls die "prepare-Phase" deaktiviert wird, entfällt natürlich auch die vorhergehende Pauseoption.


Umfangreiche Parametrisierung

Umfangreiche Parametrisierung über ein Konfigurationsfile (/etc/recorder.conf). Unter anderem kann hier auch ein beliebiges (geeignetes) Programm zum Streamen als Alternative zu "dboxgrab" konfiguriert werden. Dabei ist die Verwendung folgender Parameter-Variablen möglich, die dann zur Laufzeit durch "recorder" mit den entsprechenden Werten belegt werden:

  • $FMT = Format der Streamingdaten (-ts oder -ps)
  • $HOST = Hostname der DBox2
  • $PORT = Streaming Port der DBox2
  • $OFILE = Output file mit vollem Pfadnamen
  • $VPID = Video PID (hex)
  • $APID = Audio PID (hex)

Beispiel: mygrab -vpid $VPID -apid $APID -host $HOST (es müssen nur die benötigten Variablen benutzt werden).


DBox2 Erkennung

Bei Neustart und nicht Erreichbarkeit der DBox2 wartet "recorder" bis zur Verfügbarkeit, indem zuerst nach 5 Sekunden, dann alle 60 Sekunden ein http-Anfrage zur DBox2 abgesetzt wird. Optional kann (über "StartupCheck") die http-Anfrage in gewissem Rahmen konfiguriert oder aber auch ganz abgeschaltet werden.


Links



Review-KandidatDieser Artikel befindet sich derzeit im Reviewprozess. Hilf mit, ihn zu verbessern! Falls du bei weiteren Artikeln helfen willst, findest du hier eine Auswahl offener Artikel.