noch ein Aufnahmeserver speziell für Linux

Digital Recording
fran
Interessierter
Interessierter
Beiträge: 64
Registriert: Mittwoch 26. April 2006, 09:44

Beitrag von fran »

@gmo: Hast du von der 060410-streamer-release auch den qt4-Source-Code irgendwo vorrätig? Hab schon unter sourceforge geschaut, aber nichts gefunden.

fran
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

fran hat geschrieben:@gmo: Hast du von der 060410-streamer-release auch den qt4-Source-Code irgendwo vorrätig?
...
hier ein etwas neuerer Stand:
http://lvempeg.sourceforge.net/test/str ... 09.src.tgz

- GMo -
fran
Interessierter
Interessierter
Beiträge: 64
Registriert: Mittwoch 26. April 2006, 09:44

Beitrag von fran »

Besten Dank, wahrlich ein edles Stück Software.
rcmc_ronny
Neugieriger
Neugieriger
Beiträge: 11
Registriert: Donnerstag 9. Februar 2006, 16:49

Beitrag von rcmc_ronny »

Mein Binary will nicht starten ,,... vielleicht hat jemand nen Tip für mich :/ streamer funktioniert super .,..

====Auszug==========================

===========================================
= DBox2 Recorder v1.0.10-qt4 by gmo18t =
= Copyright (c) Gerhard M. ** 02/12/04 **=
===========================================


following settings from /etc/recorder.conf will be used:
loglevel = 10
charfilter = true
charsethttp = utf8
charsetcmd = utf8
charsetout = utf8
dboxhost = dbox
serverport = 9000
grabcmd = /usr/local/bin/dboxgrab -c $CHARSET -h $HOST -p $PORT -o $OFILE -s $SIZE -v $VPID -a $APID
grabdir = /mnt/media/dbox
startupcheck = 2

startup - trying to contact (dbox:80) ...
... failed to bind to port (:9000)
====Ende===========================

System Gentoo
QT 4.1.2

Danke Ronny
ChristophK
Interessierter
Interessierter
Beiträge: 78
Registriert: Mittwoch 29. Dezember 2004, 18:55

Beitrag von ChristophK »

hört sich so an, als hättest du schon einen aufnahmeserver (z.B. udrec) laufen...
rcmc_ronny
Neugieriger
Neugieriger
Beiträge: 11
Registriert: Donnerstag 9. Februar 2006, 16:49

Beitrag von rcmc_ronny »

Nein, definitiv läuft auf diesem Port kein Programm. UDrec etc sind nicht installiert....


==================
telnet 127.0.0.1 9000

Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
==================
z3r0
Einsteiger
Einsteiger
Beiträge: 141
Registriert: Mittwoch 24. März 2004, 21:32

Beitrag von z3r0 »

dboxhost = dbox
Sollte da nicht die IP der Box stehen?
fran
Interessierter
Interessierter
Beiträge: 64
Registriert: Mittwoch 26. April 2006, 09:44

Beitrag von fran »

Versuch mal in der recorder.conf den Parameter 'interface' zu setzen, also die LAN-IP-Adresse explizit anzugeben; hatte in der qt4-Version das gleiche Problem.
rcmc_ronny
Neugieriger
Neugieriger
Beiträge: 11
Registriert: Donnerstag 9. Februar 2006, 16:49

Beitrag von rcmc_ronny »

dbox ist schon korrekt, dank DNS :)

Genau der "interface" paramter wars ... funktioniert nun :)

@fran DANKE !

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

Datum/Uhrzeit im Dateinamen

Beitrag von prodigy7 »

Hallo,

gibt es eine Möglichkeit, Recorder zu sagen das im Dateinamen der Aufnahme Datum und Uhrzeit mit auftauchen soll? (vllt hab ich es ja übersehen...). Wenn man Serien aufnimmt, wird es irgendwann unübersichtlich, was von wann ist

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

Patch

Beitrag von prodigy7 »

Hallo,

ich hab mir die Sache jetzt mal genauer angesehen und einen Patch gebastelt, mit dem man Recorder veranlassen kann, in den Dateinamen das Aufnahmedatum und die Uhrzeit zu integrieren.

Hier der Quick-and-Dirty-Patch (hab bis Dato noch nie was mit QT gemacht):

Code: Alles auswählen

diff -ru recorder/dboxcmd.cpp recorder.mod/dboxcmd.cpp
--- recorder/dboxcmd.cpp	2005-09-30 17:18:53.000000000 +0200
+++ recorder.mod/dboxcmd.cpp	2006-06-27 19:25:20.000000000 +0200
@@ -25,6 +25,7 @@
 #include <qstringlist.h>
 #include <qtimer.h>
 #include <qdir.h>
+#include "qdatetime.h"
 #include "debug.h"
 #include "recorder.h"
 #include "messages.h"
@@ -720,7 +721,14 @@
   
   //-- full filepath with continuos sequence-# and extension --
   //------------------------------------------------------------
-  destFile = destFile + "/" + workStr + QString("-%1").arg(fileno); // "
+
+  if (rec->useDateTime)
+  {
+    destFile = destFile + "/" + (const char *) QDateTime::currentDateTime().toString("yyyy-MM-dd_hhmm") + "_" + workStr + QString("-%1").arg(fileno); // "
+  } else
+  {
+    destFile = destFile + "/" + workStr + QString("-%1").arg(fileno); // "
+  }
   
   //-- load predefined grab command --
   //-- to substitute parameters.    --
diff -ru recorder/recorder.conf recorder.mod/recorder.conf
--- recorder/recorder.conf	2005-09-28 14:46:36.000000000 +0200
+++ recorder.mod/recorder.conf	2006-06-27 18:31:10.000000000 +0200
@@ -24,6 +24,7 @@
 #StartupCheck = 1          # int: 0=no check, 1=get time, 2=get channel-list and time 
 #DoPrepare    = true       # bool: preparing record command before grab starts
 #UseSubDirs   = true       # bool: using of "channelname"-subdirs in GrabDir 
+UseDateTime   = true	   # bool: show date/time of record in filename
 #PlaybackCtrl = false      # bool: using of start/stop playback 
 #SyncClock    = 1          # int:  0=none, 1=only on startup, 2=before every record
 #
diff -ru recorder/recorder.cpp recorder.mod/recorder.cpp
--- recorder/recorder.cpp	2005-09-28 15:25:30.000000000 +0200
+++ recorder.mod/recorder.cpp	2006-06-27 19:36:21.000000000 +0200
@@ -21,6 +21,8 @@
  *
  *  Changes:
  *
+ *  v 1.0.11	- add option for insert date/time of record in filename /prodigy7
+ *
  *  v 1.0.10    - new config parameter "interface" to restrict recorders
  *                command server listening to a specific interface.
  *                value should be a string with the desired ip (dotted notation
@@ -136,7 +138,7 @@
 QTextCodec *TRecorder::gTcCmd  = NULL;
 QTextCodec *TRecorder::gTcOut  = NULL;
 QMutex      TRecorder::queueMutex;
-QString     TRecorder::releaseStr = "v1.0.10-beta";
+QString     TRecorder::releaseStr = "v1.0.11-beta";
                                  // "###########" must have this fixed len
 
 TRecorder::TRecorder(int argc, char **argv) : QObject()
@@ -227,6 +229,7 @@
                            // disable check(0).  
   doPrepare       = true;  // doing prepare (some checks, get EPG infos ...)
   useSubDirs      = true;  // using channelname as a Subdir in grabDir (on/off) 
+  useDateTime	  = false; // using record time/date in name (on/off)
   playbackControl = false; // using stop/start playback while grabbing (on/off)
   syncClock       = 1;     // 0 = no sync, 1 = on startup only, 
                            // 2 = before every grab 
@@ -305,6 +308,8 @@
         splitSize = vals[i].toUInt();
       else if (keys[i] == "usesubdirs")
         useSubDirs = getBool(vals[i]);
+      else if (keys[i] == "usedatetime")
+        useDateTime = getBool(vals[i]);
       else if (keys[i] == "playbackctrl")
         playbackControl = getBool(vals[i]);
       else if (keys[i] == "syncclock")
diff -ru recorder/recorder.h recorder.mod/recorder.h
--- recorder/recorder.h	2005-09-28 15:20:20.000000000 +0200
+++ recorder.mod/recorder.h	2006-06-27 18:35:40.000000000 +0200
@@ -72,6 +72,7 @@
     int      startupCheck;
     int      syncClock;
     bool     playbackControl;
+    bool     useDateTime;
     bool     useSubDirs;
     bool     doPrepare;
     
Aktiviert wird die Funktionalität, indem man in der Datei recorder.conf die Option

Code: Alles auswählen

UseDateTime  = true
setzt.

Der Patch kann auf recorder-051013.src.tgz angewendet werden. Vllt. wird er ja "offiziell" aufgenommen?

prodigy7
Trompete88
Interessierter
Interessierter
Beiträge: 31
Registriert: Montag 26. Januar 2004, 13:27

Beitrag von Trompete88 »

Ich probier "recorder" gerade unter SuSE 9.3, leider bisher ohne Erfolg.

Wenn ich "recorder" starte, und es kommt ein 'record'-event von der dbox, dann gibt "recorder" folgendes aus:

Code: Alles auswählen

QObject::connect: No such signal THttpClient::signalDone(bool)
QObject::connect:  (sender name:   'unnamed')
QObject::connect:  (receiver name: 'unnamed')
Im Log-File steht folgendes:

Code: Alles auswählen

startup - trying to contact (dbox:80) ...
...skipped

startup done - listening on (192.168.0.1:4001) for (dbox) commands ...
<- empty response (ignored)

new request from (dbox) on port (4001)
XML startDocument
+++ command = record
+++ channelname = DasErste
+++ epg title = Tagesschau
+++ channelId = 44d00016dca
+++ epgid = 309903955495376010
+++ vpid = 101 (0x65)
+++ apid = 102 (0x66)
XML endDocument

<?xml version="1.0" encoding="UTF-8"?>
<neutrino commandversion="1">
	<record command="record">
		<channelname>Das Erste</channelname>
		<epgtitle>Tagesschau</epgtitle>
		<id>44d00016dca</id>
		<info1></info1>
		<info2></info2>
		<epgid>309903955495376010</epgid>
		<mode>1</mode>
		<videopid>101</videopid>
		<audiopids selected="102">
			<audio pid="102" name="stereo"/>
			<audio pid="106" name="Dolby (AC3)"/>
		</audiopids>
		<vtxtpid>104</vtxtpid>
	</record>
</neutrino>

*** command queued ***
*** got command from queue ***
*** preparing current record command ***
prepare: request chain start triggered ...
timer: starting prepare sequence ...

-> GET /control/zapto
<- 44d00016dca
Das war's und bleibt auch so.
Kommt ein Record-Ende-Kommando von der Box, erscheint folgendes im Logfile:

Code: Alles auswählen

new request from (dbox) on port (4001)
XML startDocument
+++ command = stop
+++ channelname = unknown
+++ epg title = notavailable
+++ channelId = 0
+++ epgid = 0
+++ vpid = 101 (0x65)
+++ apid = 102 (0x66)
XML endDocument

<?xml version="1.0" encoding="UTF-8"?>
<neutrino commandversion="1">
	<record command="stop">
		<channelname>unknown</channelname>
		<epgtitle>not available</epgtitle>
		<id>0</id>
		<info1></info1>
		<info2></info2>
		<epgid>0</epgid>
		<mode>1</mode>
		<videopid>101</videopid>
		<audiopids selected="102">
			<audio pid="102" name="stereo"/>
			<audio pid="106" name="Dolby (AC3)"/>
		</audiopids>
		<vtxtpid>104</vtxtpid>
	</record>
</neutrino>

normal stop detected - abort current command
abort on command before activating record mode
*** current dbox command released - abort done ***
*** command released ***
Wer kann helfen?
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

Trompete88 hat geschrieben:Ich probier "recorder" gerade unter SuSE 9.3, leider bisher ohne Erfolg.
sollte aber mit der neuesten Version hier http://downloads.sourceforge.net/lvempe ... g_mirror=0 funktionieren !
Welche hast du benutzt ?

- GMo -
Trompete88
Interessierter
Interessierter
Beiträge: 31
Registriert: Montag 26. Januar 2004, 13:27

Beitrag von Trompete88 »

Die hab ich verwendet.
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

Trompete88 hat geschrieben:Die hab ich verwendet.
ok, werd mal nach nem Fehler suchen ...

- GMo -
Sagem 1x Kabel, AVIA600_vb028, cam-alpha 01_02_105D, int. ucode, .sp_ts + .hw_sections
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

... so, Fehler behoben das
http://downloads.sourceforge.net/lvempe ... irror=osdn
sollte jetzt laufen.

- GMo -
wtlprnft
Neugieriger
Neugieriger
Beiträge: 5
Registriert: Montag 12. Dezember 2005, 14:18

/media/usr/lib/qt3/bin/moc: cannot execute binary file

Beitrag von wtlprnft »

Hi gmo18t,
versuche vergeblich recorder und auch streamer unter debian zu kompilieren, bekomme die meldung: /media/usr/lib/qt3/bin/moc: cannot execute binary file

wer kann mir helfen?

danke!
wtlprnft
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Re: /media/usr/lib/qt3/bin/moc: cannot execute binary file

Beitrag von gmo18t »

wtlprnft hat geschrieben:Hi gmo18t,
versuche vergeblich recorder und auch streamer unter debian zu kompilieren, bekomme die meldung: /media/usr/lib/qt3/bin/moc: cannot execute binary file

wer kann mir helfen?

danke!
wtlprnft
das "Makfile" für streamer bzw. recorder erwartet defaultmäßig, daß alle benötigten QT3-Sachen unterhalb des Folders "/usr/lib/qt3" installiert sind. So wird es z.B. bei einer SuSE Distribution mit den entsprechenden QT3-Paketen gemacht.

Wichtig ist natürlich, daß QT3 vollständig also inclusive "development" und "Tool"-Paket" installiert ist. Wee dies bei Debian aussehen könnte und welche Pakete dafür nötig sind weiß ich nicht.
Falls der Basis-Folder bei Debian anderswo liegt kannst du dies in der 1. Zeile des jeweiligen streamer/recorder-makefiles editieren.
Aber die darunterliegende Struktur sollte dann mind. wie folgt aussehen:

Code: Alles auswählen

./bin/
./lib/
./include/
na dann, viel Erfolg !

- GMo -
wtlprnft
Neugieriger
Neugieriger
Beiträge: 5
Registriert: Montag 12. Dezember 2005, 14:18

Beitrag von wtlprnft »

danke für die antwort!

brauche ich jetzt qt3 oder qt4. in qt4 gibts z.b. keine "qnetwork.h" mehr?!

danke
wtlprnft
Trompete88
Interessierter
Interessierter
Beiträge: 31
Registriert: Montag 26. Januar 2004, 13:27

Beitrag von Trompete88 »

gmo18t hat geschrieben:... so, Fehler behoben das
http://downloads.sourceforge.net/lvempe ... irror=osdn
sollte jetzt laufen.

- GMo -
Danke! Werd ich ausprobieren.
Trompete88
Interessierter
Interessierter
Beiträge: 31
Registriert: Montag 26. Januar 2004, 13:27

Beitrag von Trompete88 »

Trompete88 hat geschrieben:Danke! Werd ich ausprobieren.
Jo, nu gehts. Super! Danke!
gmo18t
Erleuchteter
Erleuchteter
Beiträge: 553
Registriert: Freitag 27. Februar 2004, 14:30

Beitrag von gmo18t »

wtlprnft hat geschrieben:danke für die antwort!

brauche ich jetzt qt3 oder qt4. in qt4 gibts z.b. keine "qnetwork.h" mehr?!

danke
wtlprnft
es gibt von recorder (und streamer) jeweils Versionen für QT3 und QT4.
Ich würde dir ein "Szenario" mit QT3 empfehlen, weil ich das selbst im Einsatz habe. Auf QT4 werd ich erst "richtig" umsteigen wenn KDE4 reif ist.
Im Moment hat der QT4-recorder noch nen kleinen Bug, den ich demnächst beseitigen will, aber ansonsten sollte er auch brauchbar sein.

- GMo -
fran
Interessierter
Interessierter
Beiträge: 64
Registriert: Mittwoch 26. April 2006, 09:44

Beitrag von fran »

@wtlprnft

versuchs mal mit:

QTPATH = /usr/bin
LIBDIR = /usr/lib/qt3
INCDIR = /usr/include/qt3

<deleted>
MOC = $(QTPATH)/moc

INC = -I./ -I$(INCDIR)
LIB = -L$(LIBDIR)/lib -lqt-mt -lpthread

Packete:
ii libqt3-headers 3.3.6-3 Qt3 header files
ii libqt3-mt 3.3.6-3 Qt GUI Library (Threaded runtime version), V
ii libqt3-mt-dev 3.3.6-3 Qt development files (Threaded)
ii libqt3c102 3.3.4-3 Qt GUI Library, Version 3
ii qt3-dev-tools 3.3.6-3 Qt3 development tools
prodigy7
Erleuchteter
Erleuchteter
Beiträge: 595
Registriert: Donnerstag 1. Januar 2004, 16:59

Beitrag von prodigy7 »

Hi gmo18t,

ich war ja im glauben, das mein Date/Time Patch eingefloßen sei, aber scheinbar fehlt er in der aktuellen Version (wieder?).

Hier der Patch, wenn du das wieder integrieren möchtest:

Code: Alles auswählen

diff -ru recorder.org/dboxcmd.cpp recorder/dboxcmd.cpp
--- recorder.org/dboxcmd.cpp    2006-12-07 11:20:04.000000000 +0100
+++ recorder/dboxcmd.cpp        2006-12-09 19:22:06.000000000 +0100
@@ -25,6 +25,7 @@
 #include <qstringlist.h>
 #include <qtimer.h>
 #include <qdir.h>
+#include "qdatetime.h"
 #include "debug.h"
 #include "recorder.h"
 #include "messages.h"
@@ -758,7 +759,13 @@

   //-- full filepath with continuos sequence-# and extension --
   //------------------------------------------------------------
-  destFile = destFile + "/" + workStr + QString("-%1").arg(fileno); // "
+  if (rec->useDateTime)
+  {
+    destFile = destFile + "/" + (const char *) QDateTime::currentDateTime().toString("yyyy-MM-dd_hhmm") + "_" + workStr + QString("-%1").arg(fileno); // "
+  } else
+  {
+    destFile = destFile + "/" + workStr + QString("-%1").arg(fileno); // "
+  }

   //-- load predefined grab command --
   //-- to substitute parameters.    --
diff -ru recorder.org/recorder.conf recorder/recorder.conf
--- recorder.org/recorder.conf  2006-02-21 14:30:09.000000000 +0100
+++ recorder/recorder.conf      2006-12-09 19:25:27.000000000 +0100
@@ -25,6 +25,7 @@
 #StartupCheck = 1          # int: 0=no check, 1=get time, 2=get channel-list and time
 #DoPrepare    = true       # bool: preparing record command before grab starts
 #UseSubDirs   = true       # bool: using of "channelname"-subdirs in GrabDir
+#UseDateTime  = true       # bool: show date/time of record in front of filename
 #PlaybackCtrl = false      # bool: using of start/stop playback
 #SyncClock    = 1          # int:  0=none, 1=only on startup, 2=before every record
 #
diff -ru recorder.org/recorder.cpp recorder/recorder.cpp
--- recorder.org/recorder.cpp   2006-12-07 11:21:29.000000000 +0100
+++ recorder/recorder.cpp       2006-12-09 19:24:16.000000000 +0100
@@ -20,6 +20,8 @@
  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *  Changes:
+ *
+ *  v 1.0.17   - Readd Date/Time functionality in filename
  *
  *  v 1.0.16    - THttpClient bugfix
  *
@@ -185,7 +187,7 @@
 QTextCodec *TRecorder::gTcCmd  = NULL;
 QTextCodec *TRecorder::gTcOut  = NULL;
 QMutex      TRecorder::queueMutex;
-QString     TRecorder::releaseStr = "v1.0.16-beta";
+QString     TRecorder::releaseStr = "v1.0.17-beta";
                                  // "###########" must have this fixed len

 TRecorder::TRecorder(int argc, char **argv) : QObject()
@@ -277,6 +279,7 @@
                            // disable check(0).
   doPrepare       = true;  // doing prepare (some checks, get EPG infos ...)
   useSubDirs      = true;  // using channelname as a Subdir in grabDir (on/off)
+  useDateTime    = false; // using record time/date in name (on/off)
   playbackControl = false; // using stop/start playback while grabbing (on/off)
   syncClock       = 1;     // 0 = no sync, 1 = on startup only,
                            // 2 = before every grab
@@ -360,6 +363,8 @@
         aPidFilter = getBool(vals[i]);
       else if (keys[i] == "usesubdirs")
         useSubDirs = getBool(vals[i]);
+      else if (keys[i] == "usedatetime")
+        useDateTime = getBool(vals[i]);
       else if (keys[i] == "playbackctrl")
         playbackControl = getBool(vals[i]);
       else if (keys[i] == "syncclock")
diff -ru recorder.org/recorder.h recorder/recorder.h
--- recorder.org/recorder.h     2006-12-07 11:22:57.000000000 +0100
+++ recorder/recorder.h 2006-12-09 19:24:43.000000000 +0100
@@ -77,6 +77,7 @@
     int      syncClock;
     bool     playbackControl;
     bool     useSubDirs;
+    bool     useDateTime;
     bool     doPrepare;

     Q_UINT32 startupTimeout;
By the way: Bin ich der einzige, der momentan Probleme hat mit dem Aufnehmen? Derzeit scheint YWeb sehr instabil zu sein - nach einer bestimmten Zeit ist das Webif nicht mehr erreichbar auf meinen beiden Boxen und ich muss die rebooten.

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

Beitrag von prodigy7 »

Hab noch einen Fehler gefunden - Logauszug:

Code: Alles auswählen

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

-> GET /control/zapto
<- 43700016d66

-> GET /control/epg?$ID
(10) - request timeout occured

id=4:
Request aborted
http done: Request aborted
<- empty response (ignored)
WARN: couldn't read channel EPG
$ID ist wohl falsch hier oder? :-)