udrecemu: Segmentation fault
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
udrecemu: Segmentation fault
Hi,
spiele die letzten Tage ein wenig mit der udrec_suite rum und habe jetzt scheinbar ein "grösseres" Problem.
Ich nehme mit meiner dbox direkt auf einen NFS Server auf. Bei Versuchen mit kleineren Dateien funktioniert das Umwandeln in ein mpg File wunderbar. Heute habe ich dann einen Aufnahem > 2300 MB gemacht und due udrec_suite ist mit folgender Fehlermeldung abgestürzt:
/usr/local/bin/udrecemu: line 19: 16640 Segmentation fault /usr/local/bin/nfrec $*
Ein händisches Anstoßen von udrecemu für das File schmiert mit gleicher Meldung ab. Installiert hatte ich version 0.4.1 ... ein Downgrading auf 0.4.0 brachte auch keinen Erfolg.
OS auf dem Server ist Fedora 2.
Vielleicht hat ja jemand eine "passende Idee".
Cheers
Walt
spiele die letzten Tage ein wenig mit der udrec_suite rum und habe jetzt scheinbar ein "grösseres" Problem.
Ich nehme mit meiner dbox direkt auf einen NFS Server auf. Bei Versuchen mit kleineren Dateien funktioniert das Umwandeln in ein mpg File wunderbar. Heute habe ich dann einen Aufnahem > 2300 MB gemacht und due udrec_suite ist mit folgender Fehlermeldung abgestürzt:
/usr/local/bin/udrecemu: line 19: 16640 Segmentation fault /usr/local/bin/nfrec $*
Ein händisches Anstoßen von udrecemu für das File schmiert mit gleicher Meldung ab. Installiert hatte ich version 0.4.1 ... ein Downgrading auf 0.4.0 brachte auch keinen Erfolg.
OS auf dem Server ist Fedora 2.
Vielleicht hat ja jemand eine "passende Idee".
Cheers
Walt
-
- Einsteiger
- Beiträge: 264
- Registriert: Montag 9. Juni 2003, 21:18
Hol dir mal udrecemu aus dem cvs der udrec_suite. Da habe ich inzwischen einige Änderungen bez. Sonderzeichen gemacht. Auch werden dort die Übergabeparameter auf ihre Sinnhaftigkeit überprüft und man ist beim händischen Aufruf nicht mehr an die Namenskonvetion bei den Filmdateien (die können jetzt auch blabla.mpg, blubb.ts, blubber.mpv etc. heissen). Nur das xml file muss nach wie vor die namensform "*datum_uhrzeit.xml" haben.
Ansonsten: Hat udrecemu bzw. nfrec (udrecemu ist nur ein shellscript, das ein paar UMgebeungsvariablen setzt und dann direkt nfrec aufruft) sonst nichts ausgegeben? Existiert nach dem Absturz eine Datei mit Namen "core" in dem Verzeichnis? Wenn ja würde mich das interessieren.
Gruss
Kai
Ansonsten: Hat udrecemu bzw. nfrec (udrecemu ist nur ein shellscript, das ein paar UMgebeungsvariablen setzt und dann direkt nfrec aufruft) sonst nichts ausgegeben? Existiert nach dem Absturz eine Datei mit Namen "core" in dem Verzeichnis? Wenn ja würde mich das interessieren.
Gruss
Kai
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
Hi Kai,
habe nun einen Film aufgenommen mit max Grösse der ts Files von 1024 MB. Nun bricht udrecemu nicht direkt nach der Aufnahme ab sonder erst später.
Starte ich udrecemu von Hand mit Angabe des xml und der ts Files dann sind nach dem Absturz die folgenden Files in tmp vorhanden, dabei ist xyz.movie über 2 GB gross:
XVY.movie
XVY.01.mp2
XVY.mp2
XVY.mpv
XVY.xml
Nach Update von udrecemu / nfrec aus dem CVS bleibt das ganze gleich. Nach komplett Update aus CVS ebenfalls.
Das sieht mir fast aus als hätte irgendein Tool Probleme mit der 2 GB Grenze. Das FS an sich kann es nicht sein, ist Kernel 2.6 mit ext3.
Wird in dem Code irgendwo ein Systemkommando an dieser Stelle aufgerufen das vielleicht das problem sein könnte ?
Cheers
Walt
habe nun einen Film aufgenommen mit max Grösse der ts Files von 1024 MB. Nun bricht udrecemu nicht direkt nach der Aufnahme ab sonder erst später.
Starte ich udrecemu von Hand mit Angabe des xml und der ts Files dann sind nach dem Absturz die folgenden Files in tmp vorhanden, dabei ist xyz.movie über 2 GB gross:
XVY.movie
XVY.01.mp2
XVY.mp2
XVY.mpv
XVY.xml
Nach Update von udrecemu / nfrec aus dem CVS bleibt das ganze gleich. Nach komplett Update aus CVS ebenfalls.
Das sieht mir fast aus als hätte irgendein Tool Probleme mit der 2 GB Grenze. Das FS an sich kann es nicht sein, ist Kernel 2.6 mit ext3.
Wird in dem Code irgendwo ein Systemkommando an dieser Stelle aufgerufen das vielleicht das problem sein könnte ?
Cheers
Walt
-
- Einsteiger
- Beiträge: 264
- Registriert: Montag 9. Juni 2003, 21:18
Hallo,
nach dem update sollte zumindest die ".movie" Datei nicht mehr erzeugt werden. Macht udrecemu denn gar keinen output? Wenn doch, starte doch mal den Befehl ud_demux.pl von Hand so wie er von udrecemu ausgegeben wurde.
Wenn nein, ändere in udrecemu.cpp den Teil (habe die Datei gerade nicht zur Hand), der udprocess aufruft, irgendwas mit
in
Compiliere und starte dann udrecemu nochmal (bzw. nfrec direkt, allerdings vorher die Umgebungsvariablen setzen). Dann solltest du mehr output bekommen, dann weiss man vielleicht eher wo es hakt.
Ich habe bei mir übrigens keine Probleme mit größeren Files, ich glaube nicht dass es daran liegt (wenn doch: mplex version!!). Aber man wird sehen.
Gruss
Kai
nach dem update sollte zumindest die ".movie" Datei nicht mehr erzeugt werden. Macht udrecemu denn gar keinen output? Wenn doch, starte doch mal den Befehl ud_demux.pl von Hand so wie er von udrecemu ausgegeben wurde.
Wenn nein, ändere in udrecemu.cpp den Teil (habe die Datei gerade nicht zur Hand), der udprocess aufruft, irgendwas mit
Code: Alles auswählen
new UdProcess(false,false)
Code: Alles auswählen
new UdProcess(true,true)
Ich habe bei mir übrigens keine Probleme mit größeren Files, ich glaube nicht dass es daran liegt (wenn doch: mplex version!!). Aber man wird sehen.
Gruss
Kai
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
Habe folgenden Output zu bieten:
udrecemu: START
Command() /usr/local/bin/ud_demux.pl -i=/pathtotmp/XYZ.movie -o=/pathtotmp --java=/usr/java/j2sdk1.4.2_03/bin/java --ini=/usr/local/lib/jar/pX_43.ini --jar=/usr/local/lib/jar/pX.jar
/usr/local/bin/udrecemu: line 19: 28092 Segmentation fault /usr/local/bin/nfrec $*
Wobei ud_demux.pl genau so wie hier zu sehen noch gestartet wird und in der Prozess Liste auftaucht. Ist ud_demux fertig sind unter tmp die bereits genannten Files zu finden.
Starte ich ud_demux.pl wie oben per hand habe ich folgende Ausgabe am Ende:
summary of created media files:
.Video (m2v): 133432 Frames 01:28:57.280 /pathtotmp/XYZ_01_00.mpv
Audio 0 (mp2): 222387 Frames 01:28:57.288 0/0/64/14832 /pathtotmp/XYZ_01_00.mp2
=> 2113935900 bytes written...
und folgende Files unter tmp:
XYZ.movie
XYZ_01_00.mpv
XYZ.xml
mplex version:
mjpegtools mplex-2 version 1.6.2 (2.2.3)
udrecemu: START
Command() /usr/local/bin/ud_demux.pl -i=/pathtotmp/XYZ.movie -o=/pathtotmp --java=/usr/java/j2sdk1.4.2_03/bin/java --ini=/usr/local/lib/jar/pX_43.ini --jar=/usr/local/lib/jar/pX.jar
/usr/local/bin/udrecemu: line 19: 28092 Segmentation fault /usr/local/bin/nfrec $*
Wobei ud_demux.pl genau so wie hier zu sehen noch gestartet wird und in der Prozess Liste auftaucht. Ist ud_demux fertig sind unter tmp die bereits genannten Files zu finden.
Starte ich ud_demux.pl wie oben per hand habe ich folgende Ausgabe am Ende:
summary of created media files:
.Video (m2v): 133432 Frames 01:28:57.280 /pathtotmp/XYZ_01_00.mpv
Audio 0 (mp2): 222387 Frames 01:28:57.288 0/0/64/14832 /pathtotmp/XYZ_01_00.mp2
=> 2113935900 bytes written...
und folgende Files unter tmp:
XYZ.movie
XYZ_01_00.mpv
XYZ.xml
mplex version:
mjpegtools mplex-2 version 1.6.2 (2.2.3)
-
- Einsteiger
- Beiträge: 264
- Registriert: Montag 9. Juni 2003, 21:18
Sorry aber hier stuimmt was nicht.
Wenn du udrecemu aus dem cvs benutzt, wird KEIN movie file mehr erzeugt. Wahrscheinlich benutzt du noch ein "altes" udrecemu.
Aber zumindest scheint ud_demux.pl zu funktionieren.
Dann musst du den steinigen Weg gehen und wie von mir weiter oben beschrieben mal die Aussagekraft des Outputs von udrecemu erhöhen.
Einfach in udrecemu.cpp die Zeile
durch
ersetzen, neu compilieren und den output mal posten. Kannst du vielleicht mit einem debugger umgehen? Leider habe ich hier dieses Problem nicht, so dass ich nicht so richtig helfen kann. Wenn du an der Stelle also noch tiefer bohren könntest wäre das hilfreich für die Fehlersuche.
Wenn du udrecemu aus dem cvs benutzt, wird KEIN movie file mehr erzeugt. Wahrscheinlich benutzt du noch ein "altes" udrecemu.
Aber zumindest scheint ud_demux.pl zu funktionieren.
Dann musst du den steinigen Weg gehen und wie von mir weiter oben beschrieben mal die Aussagekraft des Outputs von udrecemu erhöhen.
Einfach in udrecemu.cpp die Zeile
Code: Alles auswählen
pDemuxManager = new UdProcess(false,false);
Code: Alles auswählen
pDemuxManager = new UdProcess(true,true);
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
... was mach ich falsch ?!?
Code: Alles auswählen
tar xvfz udrec_suite-0.4.1.tar.gz
mv udrec_suite-0.4.1 udrec_suite
cd udrec_suite
export CVSROOT=:pserver:anonymous@cvs.sourceforge.net:/cvsroot/udrecsuite
cvs checkout udrec_suite
vi ./src/nfrec/udrecemu.cpp
...
QString s;
pDemuxManager = new UdProcess(true,true);
pDemuxManager->addArgument(UdrecConfig::getUdDemux().c_str());
...
./configure --with-j2sdk=/usr/java/j2sdk1.4.2_03/bin
make
make install
-
- Einsteiger
- Beiträge: 264
- Registriert: Montag 9. Juni 2003, 21:18
Das kannst du dir schenken, da du ja alles aus dem CVS holst. Der Rest ist soweit ok. Wenn du die Sachen aus dem CVS holst hast du danach ein UNterverzeichnis udrec_suite. Darin kannst du weiterarbeiten, dann sollte es gehen.tartanwalt hat geschrieben:... was mach ich falsch ?!?
Code: Alles auswählen
tar xvfz udrec_suite-0.4.1.tar.gz mv udrec_suite-0.4.1 udrec_suite cd udrec_suite
Bedenke aber bitte, dass du, wenn du die sourcen aus dem cvs holst
erst
Code: Alles auswählen
autoreconf -i
Gruss
Kai
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
... ok, das autoreconf wars.
Die CVS Sourcen lassen sich jedoch nicht durchkompilieren
Habe stringoperations.h in udprocess.h aukommentiert, jedoch gibt es dann später wieder Probleme.
Die CVS Sourcen lassen sich jedoch nicht durchkompilieren
Code: Alles auswählen
In file included from cutmanager.h:6,
from usgui.h:23,
from usgui.cpp:1:
../common/udprocess.h:15:30: stringoperations.h: No such file or directory
Code: Alles auswählen
mpgmanager.cpp: In constructor `MpgManager::MpgManager(UdrecXmlFile*)':
mpgmanager.cpp:20: error: `StringOperations' undeclared (first use this
function)
mpgmanager.cpp:20: error: (Each undeclared identifier is reported only once for
each function it appears in.)
mpgmanager.cpp:20: error: syntax error before `::' token
-
- Einsteiger
- Beiträge: 264
- Registriert: Montag 9. Juni 2003, 21:18
oops, die Datei ist neu. Habe ich vergessen die einzuchecken?
Ja tatsächlich, mein Fehler, sorry. Das tut mir leid, kann ich erst heute abend fixen. Ich schick dir heute abend einen tarball, wenn du magst. Das sourceforge cvs braucht manchmal ein paar Stunden bis Tage, bis es Änderungen an die Nutzer weitergibt.
Gruss
Kai
Ja tatsächlich, mein Fehler, sorry. Das tut mir leid, kann ich erst heute abend fixen. Ich schick dir heute abend einen tarball, wenn du magst. Das sourceforge cvs braucht manchmal ein paar Stunden bis Tage, bis es Änderungen an die Nutzer weitergibt.
Gruss
Kai
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12
Hi Kai,
hab die neuen Sourcen kompiliert und udrecemu nochmals aufgerufen.
Und es entsteht wirklich kein .movie mehr
dann wird demuxt
und über bleiben
enden tut das dann mit:
... sollte da jetzt nicht automatisch auch noch das umwandeln in mpg folgen ?!?
Gruß
Walt
hab die neuen Sourcen kompiliert und udrecemu nochmals aufgerufen.
Und es entsteht wirklich kein .movie mehr
Code: Alles auswählen
XYZ.r1
XYZ.r1.pts
XYZ.r2
XYZ.r2.pts
XYZ.r3
XYZ.r4.pts
XYZ.xml
und über bleiben
Code: Alles auswählen
XYZ.mp2
XYZ.mpv
XYZ.xml
Code: Alles auswählen
Tue Jan 11 22:15:35 2005 udrecemu: STOP
Gruß
Walt
-
- Einsteiger
- Beiträge: 264
- Registriert: Montag 9. Juni 2003, 21:18
Prima, das heisst dein ursprüngliches Probhlem ist behoben
Die Umwandlung in mpg etc. erfolgt nur dann, wenn udrecemu im Rahmen der Aufnahme eingesetzt wurde (so wie udrec). Wenn udrecemu von Hand aufgerufen wurde, emuliert es nur udrec, d.h. es erzeugt aus den ts Dateien die mpv, mp2 etc. Dateien, die dann entsprechend mit usgui weiterverarbeitet werden können. Stell dir das so vor, wie wenn du udrec von Hand aufrufst (nicht mit "udrec_suite start") , dann wirst du auch nur die entsprechenden mpv,mp2,ac3 Dateien erhalten.
Gruss
Kai
Die Umwandlung in mpg etc. erfolgt nur dann, wenn udrecemu im Rahmen der Aufnahme eingesetzt wurde (so wie udrec). Wenn udrecemu von Hand aufgerufen wurde, emuliert es nur udrec, d.h. es erzeugt aus den ts Dateien die mpv, mp2 etc. Dateien, die dann entsprechend mit usgui weiterverarbeitet werden können. Stell dir das so vor, wie wenn du udrec von Hand aufrufst (nicht mit "udrec_suite start") , dann wirst du auch nur die entsprechenden mpv,mp2,ac3 Dateien erhalten.
Gruss
Kai
-
- Neugieriger
- Beiträge: 15
- Registriert: Sonntag 9. Januar 2005, 17:12