Shoutcast-Radio aufnehmen / StreamRipper auf CS407

Status
Für weitere Antworten geschlossen.

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hi,
Ich befürchte dann kann ich auch nicht weiter helfen.
Bei mir hatte die Sache mit dem Apche-log die Erleuchtung gebracht.
So musste ich beispielsweise den Pfad zum streamripper komplett angeben, damit der nicht nur gelegentlich, sondern immer gefunden wurde.
Bei meinem Server steht das logfile in
/usr/local/apache/logs/apache_error_log
Wenn Du die apache.conf gefunden hast, kannste da auch nachsehen:
ErrorLog heisst der Eintrag.
Finden mit:
cd /; find -name apache.*

Ein Rechteproblem (weiss ja nicht mit welchem user der apache läuft) könntest Du checken indem Du in das script in der create_streamripper.php mit:
touch VERZEICHNIS_STREAMRIPPER/test
kontrollierst, dass in deinem Aufnahme-Verzeichnis eine Datei test erstellt wird.
Bei mir sieht das Aufnahmekommando übrigens wie folgt aus:
$newJob = "/opt/bin/streamripper $http $g -d /share/HDA_DATA/Qmultimedia/I_radio/ -D $sender/%A\ -\ %T --xs2 --xs-offset=500 --xs-padding=2000:500 --xs-search-window=6000:6000 --xs-silence-length=1000 -T --with-id3v1 --quiet &";
Also bei mir wäre das dann sowas wie:
$newJob2 = "/bin/touch /share/HDA_DATA/Qmultimedia/I_radio/test";
system("($newJob2) > /dev/null &");

Wobei ich mit which touch rausbekommen ahbe, wo das Kommando touch steht.


nächste sache ist, dass man mit "-r" ja nen relay port angeben kann. mit vlc hör ich was, meine audio station gibt keinen mucks von sich

Ich nehme an, diese Aussage bezieht sich auf das Abschicken auf der Kommandozeile. Hier vermute ich, dass der Port in der Firewall nicht freiigegeben ist (läuft überhaupt eine?).

Insgesamt fische ich jetzt aber auch im Trüben ....:rolleyes:

Glück auf - Ralph
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
übers admintool hab ich einsicht in die apache config und die apache log, stand aber nix in der log bis auf server started.

relay funktioniert jetzt, keine ahnung wieso, aber klappt. doch nicht, jetzt grad gehts wieder nicht mehr.... auch nich mit vlc
hab bisher meine streamripper dienste über nen cronjob gestartet. gibts nen befehl um streamripper zu beenden? auch via cron, nicht über "kill <PID>"
kann ich mir auch den status vom streamripper anzeigen lassen? mit --quiet wird das ja ausgeblendet. statt weglassen würd ich gern einfach nur ab und zu mal den status wissen.

die touch geschichte werd ich bei gelegenheit mal testen.
SynoDS111> which touch
/opt/bin/touch

hab den pfad, werd ich also im skript anpassen

ok, habs skript angepasst, keine regung, test-file wird nicht angelegt. jetzt wollt ich im apachelog nachsehen, aber die datei gibts nicht.
in der httpd.conf steht:
#ErrorLog /var/log/httpd-error-user.log
ErrorLog /dev/null
TraceEnable off

Änder ich in:
ErrorLog /var/log/httpd-error-user.log
#ErrorLog /dev/null
TraceEnable off

oder?

egal, ich kann ändern was ich will, start ich den apache neu ist die änderung verworfen. halt ich an, änder dann, auch wieder wie vorher... nervt doch.

edit #12:
habs jetzt in der httpd.conf-user geändert, jetzt gehts und ich habn log. inhalt:

error -36 [SR_ERROR_CANT_CREATE_FILE]

die "test" datei wird mir erstellt, mit leerem inhalt.

mein streamripper-befehl:
/opt/bin/streamripper http://mp3stream1.apasf.apa.at:8000/listen.pls -d /volume1/music/Aufzeichnungen -r 8080 -l 18000 --xs2 --xs-offset=500 --xs-padding=2000:500 --xs-search-window=6000:6000 --xs-silence-length=1000 -T --quiet &
 
Zuletzt bearbeitet:

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Wenn relay mal funktioniert und mal nicht,
könnte es daran liegen, dass der Sender zwischendurch verstopft ist. Das kenne ich - dann bricht der Stream ab. Wir sollten diesen "Nebenschauplatz" mal vorüber gehend verlassen.

Grundsätzlich scheint dieser Sender ja zu funktionieren - liefert bei mir auf Anhieb Musik.

Wenn sich die Datei /volume1/music/Aufzeichnungen/test erstellen lässt,
scheinen die Rechte also nicht (mehr?) das Problem zu sein. Ich nehme mal an, dass Dir auch klar ist, dass Linux GROSSundklein
-Schreibung beachtet. Wenn zumindest der touch auch in dem Verzeichnis funktioniert, ist der Pfad korrekt.
Von wo der Apache seie conf liest kann ich Dir nicht sagen (habe ja einen Qnap) ich habe da jedenfalls nichts angepasst, wenn ich mich recht erinnere. Ich hatte nur dem Musik Aufnahme-Verzeichnis passende Rechte gegeben.

Also demnach ist das Porblem jetzt auf den Aufruf im php Skript (via Apache) reduziert.
Deine Aussage:
"error -36 [SR_ERROR_CANT_CREATE_FILE]

die "test" datei wird mir erstellt, mit leerem inhalt."


Könnte bedeuten, dass zwar der touch funktioneirt, aber der streamripper-Aufruf nicht. Unterschied könnte sein, dass der streamripper ein Verzeichnis erstellt (incomplete) in dem er angefangene Stücke zunächst zwischenspeichert.
Frage: Wird ein Unterverzeichnis /volume1/music/Aufzeichnungen/incomplete/ erstellt? :confused:

Um das Problem weiter einzugrenzen folgende Empfehlung:
Schreibe den Streamripper Aufruf direkt und ohne viele Optionen in das Skript. Wenn dann ein Error im Apache-log kommt, diesen auswerten.
Ggf. kurzfristig die Rechte im Schreibverzeichnis auf 777 (Vollzugriff alle) setzen und sehen,
ob es einen Unterschied gibt.
Das geht mit chmod 777 /volume1/music/Aufzeichnungen
Und wenn da schon was drin steht ggf auch das incomplete:
chmod 777 /volume1/music/Aufzeichnungen/incomplete
Du hast aber nicht vielleicht übersehen, dass erst in das incomplete - Unterverz. gestreamt wur und erst wenn ein ganzer Stream komplett ist,
was nur bei Sendern geht, die Ihre Stücke auch trennen. Ich hab das eben mal gecheckt - das scheint zu funktionieren, bekomme eine Datei: Morningshow- 4 Hero - MORNING CHILD.mp3 in Incomplete Unterverzeichnis.

Also viel Glück :eek: - Gruß Ralph
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
ich seh ob er streamrippe läuft oder nicht, wenn die netzwerkaktivität da ist.

es funktioniert jetzt.
es lag tatsächlich an den ordner rechten...
Gruppe und Sonstige hatten keine schreibrechte...
bei Besitzer und Benutzergruppe hab ich jeweils ne 0 drin stehen, was sollte da rein?

vielen herzlichen dank dir, hast mir wahnsinnig geholfen :)

jetz brauch ich nur noch nen befehl um streamripper beenden zu können, nicht via "kill <PID>"

edit:
nach meinen prüfungen werd ich mich mal mit 3rd Party Apps bekannt machen, wäre ja gelacht wenn wir den streamripper nich umgesetzt kriegen ;)

alte frage:
kann ich mir auch den status vom streamripper anzeigen lassen? mit --quiet wird das ja ausgeblendet. statt weglassen würd ich gern einfach nur ab und zu mal den status wissen. via command oder so
 
Zuletzt bearbeitet:

Trolli

Benutzer
Mitglied seit
12. Jul 2007
Beiträge
9.848
Punkte für Reaktionen
1
Punkte
0

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
lässt sich der screen befehl auch vor den streamripper schalten? also keine 2 sondern nur ein befehl.
> screen streamripper http:....
 

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
i
Gruppe und Sonstige hatten keine schreibrechte...
bei Besitzer und Benutzergruppe hab ich jeweils ne 0 drin stehen, was sollte da rein?
schön! :D
es geht so:
Die erste Ziffer= Rechte für Eigentümer, die Zweite=Gruppe, die Dritte=Jeder
(USER GROUP WORLD)
Die Ziffer setzt sich zusammen aus: 1 = Ausführen,2 = Schreiben. 4= Lesen,
die Summe =Ziffer für die Rechte.
Alle Ungraden sind also ausführbar, alle gösser=4 lesbar.765 bedeutet also
User darf alles, Gruppe darf lesen und schreiben, jeder lesen und ausführen
777 = alle dürfen alles, eine 0 bedeutet Nix erlaubt.

jetz brauch ich nur noch nen befehl um streamripper beenden zu können, nicht via "kill <PID>"
In meinem php skript habe ich das auf
killall streamripper
gesetzt. Das stoppt alle streamripper Instanzen. Oder in der kill.php:
system("(killall streamripper) > /dev/null &");
:cool:
nach meinen prüfungen werd ich mich mal mit 3rd Party Apps bekannt machen, wäre ja gelacht wenn wir den streamripper nich umgesetzt kriegen ;)
Damit kenn ich mich nicht aus.

alte frage:
kann ich mir auch den status vom streamripper anzeigen lassen? mit --quiet wird das ja ausgeblendet. statt weglassen würd ich gern einfach nur ab und zu mal den status wissen. via command oder so

So richtig geht das nicht - mit
ps | grep streamripper
Kann man sehen, ob der noch läuft.;)
Ich glaube pro stream läuft der streamripper dann 3 mal. in php:
system("ps |grep streamripper");
Ich meine im Originalskript gab es das auch in der process_read.php

Gruss aus Gö - komm grad etwas :rolleyes: angeschiggert vom Weihnachtsmarkt -
Ralph
 

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
lässt sich der screen befehl auch vor den streamripper schalten? also keine 2 sondern nur ein befehl.
> screen streamripper http:....
Mit screen kenn ich mich nicht so aus ...
Damit kann man jedenfalls eine virtuelle Konsole erhalten.
Ich habe alle Funktionalität, die ich brauche im php Skript ...:rolleyes:
(Siehe oben)
Gruß
Ralph
 

Psy87

Benutzer
Mitglied seit
09. Dez 2010
Beiträge
120
Punkte für Reaktionen
10
Punkte
18
mal zurück zu meinem nebenschauplatz: relay port
ich kann jetzt häufiger mithören, allerdings NUR über den USB Modus, nicht wenn er auf meinen rechner streamen soll ;) soll mal einer verstehen.

übrigens hier mal die screen-befehlsliste: https://wiki.archlinux.de/title/Screen

nettes tool, werd ich häufiger nutzen, besonders fürn streamripper, da sich screen einfach als befehl davorsetzen lässt.
werd ich mal durchtesten, praktisch für mehrere aufnahmen

"screen -d -m streamripper http://... usw"
läuft :)
aber nur via terminal, nicht via webseite...
 
Zuletzt bearbeitet:

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hi,

Danke, ich weiss so ungefähr, wie screen zu benutzen ist. Christian vom qnap Forum empfiehlt das Tool auch. Ich habe da überhaupt keinen Bedarf, da ich mich via ssh auch einfach mehrmals einloggen kann - nutze ja auch auf meinen Desktop-Rechnern zu 95% Linux, da ist das sozusagen selbstverständlich :D
Da ich ohnehin einen RSA Key benutze, entfällt auch das Anmelden - tatsächlich verliere ich manchmal den Überblick auf welchem Rechner ich grade arbeite .... :eek:
Das screen Kommando via php aufrufen ist vermutlich möglich, wenn die Kommandos korrekt geschachtelt - ggf. mit Anführungszeichen 'einfach' oder "doppelt" oder `rückwärts` oder .... das erschliesst sich mir auch nicht so ohne weiteres ....
Streamripper läuft bei mir jetzt stabil via Webfrontend.
Incl. abbrechen (kilall streamripper) und
Ansicht der aktuellen Streams (ps | grep streamripper)

Ciao vom in Göttingen eingeschneiten Ralph ;)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ggf. mit Anführungszeichen 'einfach' oder "doppelt" oder `rückwärts`
Letzters sicher nicht, denn `und ` heissen, dass alles dazwischen als Shellcode ausgeführt werden soll z.B.
Code:
echo `which cron` > /dev/null
dabei wird which cron mit dem kompletten Pfad zu cron aufgelöst und dann ausgegeben resp nach /dev/null geschrieben.
Oft sieht man als Ersatz zu `und ` auch folgende Schreibweise
Code:
echo $(which cron) > /dev/null
 

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Letzters sicher nicht, denn ...
Genau das meine ich, hier wandelt sich mein gesundes Halbwissen in offensichtliches Schwächeln :rolleyes:
Unklar ist mir auch, warum man überhaupt screen von einem php script aus aufrufen sollte ...
Vorweihnaxtlichen Gruß R
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Aus einem PHP Script heraus sehe ich auch ned viel Sinn screen aufzurufen. Allerdings kann es etwas bringen das php Script selber in screen ausführen zu lassen. Dann läuft es losgelöst von der Loginshell im Hintergrund und du kannst die Hauptshell sofort wieder nutzen
 

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
OK, wenn es mit einem php Interpreter direkt aufgerufen wird ...
Das Script von dem wir aber hier sprechen ist ja ein komplettes Webfrontend incl. Datenbank Abfrage und interaktiver Bedienung .... :confused: das macht wiederum auf Scriptebene keinen Sinn ....
Gruß
Ralph
 
Zuletzt bearbeitet:

_TokTok_

Benutzer
Mitglied seit
18. Nov 2007
Beiträge
1.310
Punkte für Reaktionen
0
Punkte
0
@Schwerdt
Magst Deine Erkenntnisse bzgl. Streamripper, Webfrontend dazu usw. mal im Wiki platzieren? Da is es bestimmt sehr gut aufgehoben und andere User freuen sich wenn sie mit weniger Frust ans Ziel kommen. Wäre Toll!
 

schwerdt

Benutzer
Mitglied seit
30. Mrz 2009
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
äääähhh..... also, im Wesentlichen habe ich mich an einen der ersten (?) Beiträge (http://www.synology-forum.de/member.html?u=1178) hier im Thread gehalten - von PIO435.
Da mir das
kill <pid>
zu unsicher war (bei unsachgemässer Benutzung :eek: könnte man jeden beliebigen Prozes (versehentlich) anhalten), habe ich stattdessen ein
killall streamripper
ins Script eingebaut. Ansonsten kann ich gar nix genaues sagen, da ich ja einen ganz enderen NAS habe ..... ansonsten eben Linux und php straight forward ...:cool:
Ich glaub kaum, dass ich hier wirklich nützlich sein kann. Insbesondere da sich alle meine Aussagen auf meinen Server (QNap) beziehen. Alles Wesentliche ist bereits aber auch gesagt und hier im Wiki aufgeschrieben.
Das Script zum taggen der Daten sieht bei mir so aus:
#!/bin/sh
# Wo stehen die aufgenommenen Daten? Z. B.
mp3dir=/share/HDA_DATA/Qmultimedia/I_radio
cd $mp3dir
# alle mp3 Dateien suchen
find . -type f -name \*.mp3 \
| grep -v /incomplete/ \
| sed -e 's,^\./,,' \
| while read file ; do
# einige Debug - Ausdrücke sind im Folgenden weg-kommentiert
# echo "file: $file"
mp3info=$(mp3info "$file" 2>/dev/null)
# if test -n "$mp3info" ; then


Es ist geschrieben für Sender, die im Dateinamen automatisch Titel und Interpret unterbringen.
Keine Ahnung, ob das so auf euren Servern läuft, ggf. bitte anpassen ....:rolleyes:

Meine Kenntnisse bauen eher auf Halbwissen ....
Herzlichen Gruß
Ralph
 

LordZed

Benutzer
Mitglied seit
29. Nov 2010
Beiträge
46
Punkte für Reaktionen
0
Punkte
6
Hi zusammen! Ich hab mir das Streamripper-IPKG auch drauf gehauen und mir das jetzt mal einrichten. Allerdings habe ich gemerkt, dass sich bei mir der Streamripper nicht ohne Pfadangabe starten lässt sondern ich immer den kompletten BIN-Pfad davorhängen muss. Eigentlich sollte das doch auch ohne gehen oder nicht? Beim wakelan-Paket hat das geklappt, wieso nicht hier?

//EDIT
Mir fällt gerade auf, dass es beim Wakelan doch auch nicht geht... kann mir (wenn nun vermutlich hier falsch) vllt. trotzdem wer ein Stichwort sagen wie ich das Problem finden kann? Muss ich irgendwie ne PATH-Variable erweitern oder sowas, damit die Files in /opt/bin direkt aufrufbar sind?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat