noch ein Aufnahmeserver speziell für Linux

Digital Recording
gurgel42
Neugieriger
Neugieriger
Beiträge: 3
Registriert: Sonntag 4. Februar 2007, 19:46

recorder: nur Sofortaufnahme möglich

Beitrag von gurgel42 »

Hallo,

ich habe recorder auf meinem Fedora-Server compiliert und installiert. Allerdings funktioniert es nur halb:

Wenn ich direkt aufnehme klappt alles prima.

Wenn ich allerdings eine Sendung zur Aufnahme per Timer markiere gibt es zum Zeitpunkt der Aufnahme nur einen einzeiligen Eintrag im recorder.log:

new request from (192.168.2.42) on port (4000)

Danach ist Schluss, es passiert nichts mehr. Die dbox (YADI 2.1.0.11) zeigt ab dann zwar noch das Fernsehprogramm an, reaigiert aber nicht mehr auf die Fernbedienung oder die Bedienknöpfe am Gerät. Es hilft nur noch ein Reset.

Hat jemand eine Lösungsidee für dieses merwürdige Verhalten?
gibnix
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Freitag 20. Oktober 2006, 11:38

kleines Problem mit mehreren APID's

Beitrag von gibnix »

Hallo,

ich hab da ein kleines Problem beim Aufnehmen von mehreren APID's gehabt. Mit dieser GrabCmd Zeile in der recorder.conf

Code: Alles auswählen

GrabCmd      = /usr/bin/mono /usr/bin/udrec -now -log -ts -host $HOST -o $OFILE -vp $VPID -ap $APID [-ap $XPID1] [-ap $XPID2]
kamen von 3 APID's nur 2 ins ts-file.

Die wichtigen Logzeilen hier:

Code: Alles auswählen

new request from (dbox3) on port (4003)
XML startDocument
+++ command = record
+++ channelname = PREMIERE2
+++ epg title = PerAnhalterdurchdieGalaxis(TheHitchhikerUapos;sGuidetotheGalaxy)
+++ channelId = 20085000b
+++ epgid = 563521184818878
+++ vpid = 1791 (0x6ff)
+++ apid = 1792 (0x700)
+++ apid = 1793 (0x701)
+++ apid = 1795 (0x703)
XML endDocument

prepare: request chain start triggered ...
timer: starting prepare sequence ...

-> GET /control/zapto
<- 30221910

-> GET /control/epg?$ID
<- empty response (ignored)

-> GET /control/gettime?rawtime
<- 1178985104
setup of system clock not enabled
set max. record duration to 240 min (14400)
action: start record triggered ...
timer: activating record mode ...

-> GET /control/setmode?record=start
<- ok
slot: record mode activated, launch triggered ...
timer: launching grabber ...
proc: /usr/bin/mono /usr/bin/udrec -now -log -ts -host dbox3 -o /mnt/disk2/video_recording/PREMIERE2/PerAnhalterdurchdieGalaxis(TheHitchhikerUapos_sGuidetotheGalaxy)-1 -vp 0x6ff -ap 0x700 -ap 0x703
proc: grab process exited
timer: deactivating record mode ...

-> GET /control/setmode?record=stop

wie man sieht führt der Recorder das Grabkommando nur mit dem 1. und 3. APID aus.

Nach ein bischen suchen im Quelltext konnt ich mir mit folgendem Patch behelfen:

Code: Alles auswählen


diff -ruN recorder/dboxcmd.cpp recorder.patched/dboxcmd.cpp
--- recorder/dboxcmd.cpp        2006-12-07 11:20:04.000000000 +0100
+++ recorder.patched/dboxcmd.cpp        2007-05-12 18:29:36.000000000 +0200
@@ -775,7 +775,7 @@
   if ( workStr.find("[") )
   {
     int i=1;
-    int j=2;
+    int j=1;

     workStr.replace( "]", "[");
     do
@@ -784,7 +784,7 @@
       if (opt.isEmpty()) break;

       if (j<nAPids)
-        workStr.replace( QString().sprintf("$XPID%d", j-1), QString().sprintf("0x%x", aPid[j]) );
+        workStr.replace( QString().sprintf("$XPID%d", j), QString().sprintf("0x%x", aPid[j]) );
       else
         workStr.remove(opt);

falls noch jemand ein ähnliches Problem hat hoffe ich das dieser Patch abhilfe schafft.

cu
gibnix
JoLander
Interessierter
Interessierter
Beiträge: 49
Registriert: Sonntag 1. September 2002, 16:40

Beitrag von JoLander »

@ChristophK
ich hab mal ne Kleinigkeit verändert, weil ich es ganz gern gehabt hätte, dass man nach jeder erfolgten Aufnahme ein einstellbares Skript ausführen kann
Hast du diese Änderung auch in der aktuellen Version (recorder-061207) durchgeführt ??
Wenn ja, kannst du hier nochmal ein .diff zur Verfügung stellen ??

Ich möchte diese Änderung auch einbauen, da ich noch einen Befehl zum setzen der Permissions hinterherschicken will.
Allerdings passt das seinerzeit von dir erstellte .diff so gar nicht zu der aktuellen Version.

Gruß
Joe
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Hallo zusammen,

auf Basis der derzeit aktuellen Version 1.0.16 habe ich ein paar Änderungen an recorder durchgeführt. Da mich das etwas gestört hat, das Recorder eine andere Systematik bei der Benamung von Dateien verwendet hat als die Direkt-Aufnahme von Neutrino, habe ich Recorder soweit umgestrickt, dass der Name jetzt flexibel definierbar ist.

Unter der URL http://download.prodigy7.de/files/patch ... name.patch ist der entsprechende Patch zu finden.

Beispiel für die Konfiguration:

Code: Alles auswählen

templFilename          = "%C/%T_%d/%t
Legt ein Verzeichnis mit dem Kanalnamen an, darunter ein Verzeichnis mit Titel_Datum und darin eine Datei mit der aktuellen Uhrzeit als Namen.
In meinen internen Tests hat soweit alles funktioniert. Sofern aber noch jemand ein Problem finden sollte, einfach hier posten!

Als nächstes Plane ich noch, XML-Support einzubauen, so dass man die aufgenommenen Dateien wie die Direkt-Aufnahmen im MovieBrowser mit entsprechenden Infos angezeigt bekommt. Hier muss ich aber noch schaun, was genau die ganzen Infos in der XML-Datei bedeuten. Sofern mir hier jemand weiterhelfen kann, bin ich dankbar.

@gmo18t: Spricht etwas dagegen, den Patch in die offizielle Version zu überführen? Würde mich freuen.

prodigy7
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Unter http://download.prodigy7.de/files/patch ... info.patch ist ein Patch zu finden, mit dem Recorder dazu überredet wird, für Aufnahmen XML Informationen zu schreiben wie man es auch von der Direktaufnahme her kennt. Bevor dieser Patch angewendet werden kann, muss vorher Patch 1.0.17 angewendet werden.

Soweit sollte recorder sich jetzt verhalten wie, als würde man eine Direktaufnahme machen.

prodigy7
panachoi
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Donnerstag 12. Juli 2007, 09:06

Re: kleines Problem mit mehreren APID's

Beitrag von panachoi »

Habe das patch installierte; obwohl mehrere APIDs angezeigt erscheinen, wird nur ein APID aufgenommen; es spielt keine rolle ob ich udrec oder dboxgrab beuntze im config.

Box: Dreambox 500S
Image: Neutrino.DREAM v2.03/8bit colorset
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Kann recorder/dboxgrab mehrere Audio-Streams aufnehmen?
panachoi
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Donnerstag 12. Juli 2007, 09:06

Re: kleines Problem mit mehreren APID's

Beitrag von panachoi »

prodigy7 hat geschrieben:Kann recorder/dboxgrab mehrere Audio-Streams aufnehmen?
Ist mir nicht ganze klar. Im Readme vom recorder (unter seperates streaming Program (dboxgrab)) steht:

"Es konnen nur eine Video- und eine Audiospur ausgewahlt werden (Trotzdem konnen u.U. zwei Audiospuren gleichzeitig aufgenommen werden"

Ich will eigentlich alle audiospuren aufnehmen (okay, mindestens 2 wurde mir reichen, die standart und die alternative, braucht nicht unbedingt AC3, obwohl das schon wenn es moglich war).

Recorder gibt die audiospuren weiter zum dboxgrab oder udrec, aber es schient das nur ein APID wurde aufgenommen.

Wenn jemand weiss, das der ganze umsonst ist (i.e. geht nicht mehr als ein audiospur), kann ich gerade zum einen Enigma image wechseln, wo mit XMediaGrabber prima funktioniert.
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Bis dato hat mir immer eine Audio-Spur genügt, ich guck heute Abend mal, ob ich was machen kann. Ansonsten müsste der Author selbst mal ran :-)
panachoi
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Donnerstag 12. Juli 2007, 09:06

Beitrag von panachoi »

prodigy7 hat geschrieben:Bis dato hat mir immer eine Audio-Spur genügt, ich guck heute Abend mal, ob ich was machen kann. Ansonsten müsste der Author selbst mal ran :-)
Sie haben wohl gar kein 3-sprachige haushalt :P
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Also bei mir klappts nicht, mehr als eine Audio-Spur aufzunehmen.... es wäre glaubich gut, wenn gmo18t was dazu sagen könnte
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

Hi,

Um mit dboxgrab eine 2te. Audiospur aufzunehmen, muß vor Aufnahmebeginn eine andere Tonspur zur Wiedergabe eingestellt sein, d.h. wenn z.B. die AC3-Tonspur im Timer programmiert ist, und zur Wiedergabe die Standardtonspur eingestellt ist, werden beide Spuren aufgenommen !

Mit udrec kann man bis zu 3 Audiospuren aufnehmen, indem man in der recorder.conf die Option "grabcmd" entsprechend anpasst.
Die Option zur Auswahl einer Audiospur bei udrec ist (soweit ich mich erinnere) "-ap <audio-pid>", die dann halt eben je aufzunehmende Audiospur anzugeben ist.
Anstelle der reelen Werte für "<audio-pid>" können für den dboxgrab-string aber die Templates "$XPID1" und "$XPID2" für die 2te. und 3te. Tonspur verwendet werden, so daß diese durch recorder entsprechend substituiert werden.

Also wird z.B.

Code: Alles auswählen

grabcmd=/usr/bin/mono /usr/bin/udrec -now -log -ts -host $HOST -o $OFILE -vp $VPID -ap $APID
angepasst nach

Code: Alles auswählen

grabcmd=/usr/bin/mono /usr/bin/udrec -now -log -ts -host $HOST -o $OFILE -vp $VPID -ap $APID -ap $XPID1 -ap $XPID2
viel Erfolg !

- GMo -
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Vielleicht lässt sich die Frage ja einfach beantworten: Warum kann man nicht "einfach" mit dboxgrab mehrere Tonspuren aufnehmen (also ohne Umschalten) ?
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

... hatte nie den Bedarf, "Mehrspuraufnahme" zu programmieren !

Für mich war sogar wichtig, daß in jeder Lage nur eine Tonspur aufgenommen wird, also auch wenn die Wiedergabespur anders eingestellt ist als die Aufnahmespur.
Also hab ich (mir) einen eigenen streamts-Service für die Box programmiert, der die Wiedergabespur (falls verschieden) ausfiltern(!) kann.
Mit entsprechenden recorder/dboxgrab- Optionen läßt sich das Ganze dann nach (meinem) Bedarf steuern ...

dboxgrab wäre aber durchaus auch erweiterbar, um z.B. mit mehreren "-apid" Optionen umzugehen, also zusätzlich zu "-apid $APID" noch "-apid $XPID1 -apid $XPID2".

- GMo -
Sagem 1x Kabel, AVIA600_vb028, cam-alpha 01_02_105D, int. ucode, .sp_ts + .hw_sections
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

gmo18t hat geschrieben:dboxgrab wäre aber durchaus auch erweiterbar, um z.B. mit mehreren "-apid" Optionen umzugehen, also zusätzlich zu "-apid $APID" noch "-apid $XPID1 -apid $XPID2".
Ok - also wäre das ToDo "nur", mit der Situation umzugehen, das mehr als ein apid Parameter übergeben wird und diesen beim Streamgrabben mit einzusetzen, damit 2 Audio-Streams geholt werden? Hört sich nicht schwierig an - ich würde mal schaun, ob ich vielleicht am Wochenende eine Erweiterung hinbekomme.
panachoi
Neugieriger
Neugieriger
Beiträge: 4
Registriert: Donnerstag 12. Juli 2007, 09:06

Beitrag von panachoi »

Ich habe ein DM500S mit Neutrino.DREAM v2.03 am laufen.

Man kann im einstellungen auswahlen, welche audio streams gestreamt werden soll

Standard Stream
Alernative Streams
AC3 Streams

Es kann sein, das (bis jetzt mein erfarung) bis zum 4 audio streams dabei sein kann. Manche provider un file haben 2 normal streams (standard stream deutsch, alternative stream englisch) un auch 2 AC3 streams (deutsch & englisch).

Ich kann nur mit recorder arbeiter, weil leider(??) kann udrec mit dieser image nichts anfangen:

09:06:03 to DBox: VIDEOTS 31341 16 0 1 vaa 0a3 05c 05d
09:06:03 from DBox: INFO: IP c0a88d0e Port 31341
09:06:03 from DBox: PID vaa 1 a3 5c 5d
09:06:03 to DBox: START
09:06:03 from DBox: INFO: UdpSender() - PID1154 R0 W0
09:06:03 from DBox: ERROR: main() - dvr0 open: No such file or directory
09:06:03 from DBox: EXIT
09:06:03 TcpReceiver stopped
09:06:19 stream data timeout

Ich (und veilleicht andere sogar) wurde sehr froh wenn es moglich ware, mehere (bzw alle) audiospuren aufgenommen konnte mit recorder.

Schlussendlich will ich vom den aufnahmen ein DVD machen, mit mehrere auswahlbar audio spuren...

Bin bereit alle aenderung zum testen :-}
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Ich werde mal schaun, das sobald ich Zeit finde, die Mehrspurigkeit implementiere - soweit ich das verstanden habe, sollte es kein großer Aufwand sein.

prodigy7
nexus_of_sominus
Beiträge: 1
Registriert: Sonntag 11. Dezember 2011, 03:04

Re: noch ein Aufnahmeserver speziell für Linux

Beitrag von nexus_of_sominus »

Hi alle zusammen,
ich hoffe ich mache hier nix falsch, wenn ich den Thread hier nochmal aufwaerme.
Ich hab ein kleines Problem mit recorder, oder besser gesagt mit den patches von prodigy7. vielleicht kann der mir da auch weiterhelfen.
Ich hab auf meinem System QT3 drauf und recorder ganz normal kompiliert, das funktioniert auch reibungslos. Jetzt bin ich auf die coolen patches von prodigy7 gestossen und wollte die mal ausprobieren. Das patchen funktioniert auch einwandfrei, wenn ich dann aber recorder compilieren will, erhalte ich folgenden Fehler:

Code: Alles auswählen

g++ -o recorder recorder.o messages.o dboxcmd.o debug.o -L/usr/lib -lqt-mt -lpthread
messages.o:(.rodata._ZTV11TXmlHandler[vtable for TXmlHandler]+0x38): undefined reference to `TXmlHandler::setXML(QString)'
collect2: ld returned 1 exit status
make: *** [recorder] Error 1
hast du da ne Ahnung, woran das liegt?

P.S.: Mir ist aufgefallen, dass es bei sourceforge ne qt4 version von recorder gibt, funktionieren da die patches auch, oder muss man die dann anpassen?