Danke, nimms mir nicht übel, aber mir ist das alles zu viel "try and error".
Ich warte bis es wer geschafft hat eine "Idiotensichere" Anleitung ins Wiki zu packen.
Habe im Moment auch keine Zeit.
MFG Ronny
Danke, nimms mir nicht übel, aber mir ist das alles zu viel "try and error".
Ich warte bis es wer geschafft hat eine "Idiotensichere" Anleitung ins Wiki zu packen.
Habe im Moment auch keine Zeit.
MFG Ronny
Hi,
ich habe an dem Skin noch einwenig weitergefeilt
und die neuen Features von xxv-0.12 einanpasst.
* MUSIC-Frame wird jetzt mit dabei (music_index)
* Support des reccmds.conf (rlist->rdisplay)
* Mehrfachauswahl von Timern reaktiviert (tlist)
http://www.deltab.de/vdr/xxv-stone-0.12a.tgz
ZitatScreenshots:
Programmguide
Aufnahmeliste
Damit das Kommando msearch zur Suche von Musiktitel funktioniert, fehlt folgende Funktion in MUSIC.pm. (eine Mail damit ist auch schon unterwegs)
# ------------------
sub search {
# ------------------
my $obj = shift || return error ('No Object!' );
my $watcher = shift || return error ('No Watcher!');
my $console = shift || return error ('No Console');
my $search = shift || return $console->message(gettext('No Text to search! Please use msearch "text"'));
my $sql = "select ID, ARTIST AS __ARTIST, ALBUM as __ALBUM, TITLE, TRACKNUM, YEAR as __YEAR, DATE_FORMAT(FROM_UNIXTIME(SECS), '%i:%s') as Time, GENRE as __GENRE, COMMENT as __COMMENT from MUSIC where ALBUM like '%$search%' OR ARTIST like '%$search%' OR TITLE like '%$search%' order by FILE";
my $fields = fields($obj->{dbh}, $sql);
my $erg = $obj->{dbh}->selectall_arrayref($sql);
unshift(@$erg, $fields);
$console->table($erg);
}
Alles anzeigen
Das Playback per WMP konnte ich mangels geeigentem OS nicht geprüft.
Und wie es aussieht klappt das Streaming (noch) nicht
Der Mplayer sagt bloss (und andere Programme ähnliches)
Connecting to server vdr[192.168.0.6]:8100 ...
http_read_response read 0 -ie- EOF
Unable to open URL: http://vdr:8100
und dabei sieht es so aus als wie die DBI Connection dabei stirbt und es geht nichts mehr...
18 (5649) [20:54:04 12/29/04] [Server] Opened new icecast channel 1.
19 (5649) [20:54:04 12/29/04] [Server] Talking on icecast channel 1.
20 (5649) [20:54:04 12/29/04] DBD::mysql::st execute warning: at /usr/src/vdr/xxv/xxv-0.12/bin/../lib/XXV/MODULES/EPG.pm line 237, <GEN8> line 41326.
21 (5649) [20:54:04 12/29/04] DBD::mysql::st execute failed: MySQL server has gone away at /usr/src/vdr/xxv/xxv-0.12/bin/../lib/XXV/MODULES/EPG.pm line 237, <GEN8> line 41330.
22 (5649) [20:54:04 12/29/04] DBD::mysql::st execute failed: MySQL server has gone away at /usr/src/vdr/xxv/xxv-0.12/bin/../lib/XXV/MODULES/EPG.pm line 237, <GEN8> line 41334.
Ist damit http das falsche Protokoll oder muss eventuell noch ein ICECAST Server als Relay zwischengeschaltet werden ?
Andreas
ZitatOriginal von Hulk
Ist damit http das falsche Protokoll oder muss eventuell noch ein ICECAST Server als Relay zwischengeschaltet werden ?
Wie hast du den mplayer aufgerufen? Also mit welcher URL auf port 8100? Geht dernn die Wiedergabe in dem webinterface? Also play selected songs?
ZitatOriginal von xpix
Wie hast du den mplayer aufgerufen? Also mit welcher URL auf port 8100? Geht dernn die Wiedergabe in dem webinterface? Also play selected songs?
Also mein test lief in der WEB Interface ein Playback zustarten
das liefert aber ja nur eine URL für den Microsoft Media Player 2
Playback per Webinterface damit aber nicht unter Linux.
das habe ich einfach mal
#> wget "http://vdr:9000/?cmd=mplay&data=4e99aadf0ff7398d2b13720efcfd322f&binary=1"
#> cat "index.html?cmd=mplay&data..." | grep SRC
#> mplayer [URL]http://vdr:9000/?cmd=mplaylist&data=4e99aadf0ff7398d2b13720efcfd322f&binary=1[/URL]
das liefert (9000 = HTTPD-XXV-Webinterface)
Playing [URL]http://vdr:9000/?cmd=mplaylist&data=4e99aadf0ff7398d2b13720efcfd322f&binary=1.[/URL]
Resolving vdr for AF_INET6...
Couldn't resolve name for AF_INET6: vdr
Resolving vdr for AF_INET...
Connecting to server vdr[192.168.0.6]:9000 ...
http_read_response read 0 -ie- EOF
Unable to open URL: [URL]http://vdr:9000/?cmd=mplaylist&data=4e99aadf0ff7398d2b13720efcfd322f&binary=1[/URL]
(9000 = HTTPD-XXV-Webinterface)
ich vermute einen denkefehler meinerseits.
und selbes spiel bei
mplayer [URL]http://vdr:8100/?cmd=mplaylist&data=4e99aadf0ff7398d2b13720efcfd322f&binary=1[/URL]
im Log steht dann
19 (5661) [22:02:20 12/29/04] [Server] Opened new icecast channel 1.
20 (5661) [22:02:20 12/29/04] [Server] Talking on icecast channel 1.
21 (5661) [22:02:20 12/29/04] $VAR1 = [
'mplaylist',
'ID',
'4e99aadf0ff7398d2b13720efcfd322f'
];
22 (5661) [22:02:20 12/29/04] I dont understand this command 'mplaylist' at /usr/src/vdr/xxv/xxv-0.12/bin/../lib/Tools.pm line 60, <GEN29587> line 5.
23 (5661) [22:02:20 12/29/04] =========== top of stack =========
/usr/src/vdr/xxv/xxv-0.12/bin/../lib/Tools.pm:61 (Tools::stackTrace)
/usr/src/vdr/xxv/xxv-0.12/bin/../lib/XXV/MODULES/MUSIC.pm:331 (Tools::error)
/usr/src/vdr/xxv/xxv-0.12/bin/../lib/XXV/MODULES/MUSIC.pm:171 (XXV::MODULES::MUSIC::handleInput)
/usr/lib/perl5/Event.pm:162 (XXV::MODULES::MUSIC::__ANON__)
/usr/lib/perl5/Event.pm:162 ((eval))
./xxvd.pl:156 (Event::loop)
: ()
: ()
=========== end of stack =========
Alles anzeigen
aber auch bei Streaming mit folgendem passiert nicht
Wie wird den eigentlich der die Playlist mit dem Stream gestartet ?
Edit:
Wenn ich in MUSIC.pm "sub playlist" die Ausgabe ändere
$console->{handle}->print($output); => $console->out($output);
komme ich per wget über mplaylist an die m3u Datei heran, die originalfunktion produziert überhaupt keine Ausgabe...
und die damit produzierte m3u Datei lässt sich auch mit dem üblichen verdächtigen Abspielen.
z.B.
beep-media-player "http://192.168.0.6:8100/?cmd=play&data=aec22424963bfcac22e65b4ffe99cdee&field=ID"
aber direkt über mplaylist klappt das Playback damit nicht.
Und ein reconnect geht auch nicht mehr bis xxvd neu startet. (vielleicht weil ich den Stream vor dem Abspielende abgebrochen hatte?)
@Hulk
Also zuerst deine emails hab ich bekommen und werd sie nach und nach abarbeiten.
Music funktioniert folgendermassen, es wird als erstes eine m3u Playlist angefordert. Das passiert mit folgendem Befehl:
http://192.168.0.24:8080/?cmd=mplaylist&data=3913a4d16eea035d95c157ad3ac9e05e&binary=1
Diese URL findest du im Quelltext, wenn du diese ganz normal in einem Browser eingibst ergibt das folgendes:
#EXTM3U
#EXTINF:216,3200 Years Ago - Troy (Soundtrack By James Horner)
[URL]http://192.168.0.24:8100/?cmd=play&data=3913a4d16eea035d95c157ad3ac9e05e&field=ID[/URL]
Hier wird einfach nur die Titelnamen aufgelistet und die entsprechende URL, wenn du DIESE URL mit dem Port 8100 bei mplayer angibst dann wird auch der Titel abgespielt.
mplayer [URL]http://192.168.0.24:8100/?cmd=play&data=3913a4d16eea035d95c157ad3ac9e05e&field=ID[/URL]"
Ich hatte auch ausprobiert ob der mplayer etwas mit der playlist anfangen kann, dem scheint aber nicht so. Also muessen wir uns noch was fuer linux ausdenken.
Hallo,
habe die neue Version jetzt auch mal getestet.
Erstmal Respekt an Xpix für das toole Web Interface und auch an Hulk für das nette Design !!
Ich habe allerdings auch Probleme Musikstücke abzuspielen.
Ich greife per Windows PC auf das Web Interface und bekomme auch die
Titel angezeigt. Wenn ich dann einen selektiere und abspielen will wird Windows Media Player gestartet aber er spielt nichts ab.
Wenn ich mir dann die Eigenschaften aufrufe sehe ich das er den folgenden Link bekommen hat :
Zitat
Habe dann zum testen mal diesen Link an den Realplayer geschickt.
Der gibt mir dann folgendes aus :
Zitat
#EXTM3U #EXTINF:199,shake that(radio edit) - Scooter (Shake That) http://127.0.0.1:8100/?cmd=play&data=cf5e488190bfab1d38ee00fb00c53fa5&field=ID
Ich denke da liegt schon mal ein Problem denn er übergibt in des Playlist die
IP Adresse 127.0.0.1 statt der des VDR.
Wenn ich den Link aus dieser Playlist kopiere, die IP Adresse korrigiere und an Winamp übergebe spielt er das Stück auch ab, WMP allerdings immernoch nicht, er meldet der Server wäre wahrscheinlich überlastet.
Und was ich auch bestätigen kann ist das Anscheinend die Verbindung zur Datenbank abbricht und zwar immer dann wenn ich auf diesem Weg ein Stück abspiele.
Gruß,
Frank
ZitatOriginal von Hulk
Und ein reconnect geht auch nicht mehr bis xxvd neu startet. (vielleicht weil ich den Stream vor dem Abspielende abgebrochen hatte?)
Hmm sehr komisch, ich kann den Fehler bei mir nicht nachvollziehen. Was sagt das Logfile wenn du versuchst mplaylist aufzurufen?
ZitatOriginal von xpix
Hmm sehr komisch, ich kann den Fehler bei mir nicht nachvollziehen. Was sagt das Logfile wenn du versuchst mplaylist aufzurufen?
Dann wäre es ja zu einfach
Das logfile sagt gar nichts,
channel 1. = Playback geht, der Player spielt den Titel ab und nach Ende des Titel verbleibt er aber im Status "Connect" (der Stream wird nicht von selbst geschlossen)
channel 2. = es passiert nichts mehr und anschliessend gibt es haufenweise DBI Fehlermeldungen
18 (966) [15:38:52 12/30/04] [Server] Opened new icecast channel 1.
19 (966) [15:38:52 12/30/04] [Server] Talking on icecast channel 1.
20 (966) [15:39:03 12/30/04] [Server] Opened new icecast channel 2.
21 (966) [15:39:03 12/30/04] [Server] Talking on icecast channel 2.
22 (966) [15:39:03 12/30/04] DBD::mysql::db selectall_hashref warning: at /usr/src/vdr/xxv/xxv-0.12/bin/../lib/XXV/MODULES/MUSIC.pm line 348, <GEN13> line 6.
und strace -ff sagt
write(12, "\375*\201(\22P9\24\344\nL\320g\301\342\204\v\241\4\n\215"..., 2048) = 1484
write(12, "\256\265\313\260rY\350\\\r\27$\347\220\325[i\245dR:\r\267"..., 564) = -1 ECONNRESET (Connection reset by peer)
_llseek(8, 342016, [342016], SEEK_SET) = 0
_llseek(8, 0, [342016], SEEK_CUR) = 0
close(8) = 0
fcntl64(5, F_SETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
close(5) = 0
close(6) = 0
close(7) = 0
close(9) = 0
close(10) = 0
close(11) = 0
close(12) = 0
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK) = 0
read(4, 0x8555698, 8192) = -1 EAGAIN (Resource temporarily unavailable)
fcntl64(4, F_SETFL, O_RDWR) = 0
write(4, "\1\0\0\0\1", 5) = 5
shutdown(4, 2 /* send and receive */) = 0
close(4) = 0
close(3) = 0
stat64("/usr/lib/perl5/auto/DBI/DESTROY.al", 0x814bfd8) = -1 ENOENT (No such file or directory)
Alles anzeigen
es kommt mir so vor, wenn beim MP3-ECONNRESET (Connection reset by peer) anschliessend auch die DBI Connection geschlossen wird und damit keine weiteren Datenbankabfragen mehr gehen. Oder kann es sein das der geforkte MP3-Prozess beim Aufräumen am ende zuviel des guten macht.
Ich habe noch ca. 6MB Logfiles ~200k als bz2, falls noch bedarf für besteht.
Andreas
Hallo,
Bei mir gibt es exakt die selbe Fehlermeldung !
Gruß,
Frank
@Hulk
Also ich verstehs nicht, kannst du mir nochmal ganz genau beschreiben wie ich diesen Fehler nachvollziehen kann. Also welchen player soll ich starten und wie damit xxv abstuertzt?
ZitatOriginal von xpix
@Hulk
Also ich verstehs nicht, kannst du mir nochmal ganz genau beschreiben wie ich diesen Fehler nachvollziehen kann. Also welchen player soll ich starten und wie damit xxv abstuertzt?
Einfach mit der generierten URL aus dem M3U File
#> mplayer "http://192.168.0.6:8100/?cmd=play&data=aec22424963bfcac22e65b4ffe99cdee&field=ID"
...
Connecting to server 192.168.0.6[192.168.0.6]:8100 ...
Name : Force Legato - System
Genre : Techno
Website: /video/mp3/techno/Best%20Of%20Techno%20Trax%20%28CD1%29/Force%20Legato%20-%20System.mp3
Public : yes
Bitrate: 160kbit/s
Cache size set to 1024 KBytes
Connected to server: 192.168.0.6
Cache fill: 3,12% (32768 bytes) Audio file detected.
==========================================================================
Trying to force audio codec driver family libmad...
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 20000->176400 (160,0 kbit)
Selected audio codec: [mad] afm:libmad (libMAD MPEG layer 1-2-3)
==========================================================================
Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 44100 hz, little endian signed int
AF_pre: 44100Hz 2ch Signed 16-bit (Little-Endian)
alsa-init: got device=0, subdevice=0
alsa-init: 1 soundcard found, using: default
alsa: 44100 Hz/2 channels/4 bpf/65536 bytes buffer/Signed 16 bit Little Endian
AO: [alsa] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
Video: no video
Starting playback...
Alles anzeigen
Es macht keinen Unterschied ob ich bis zum Ende warte oder mit Strg+C den Stream abbreche.
und beim zweiten mal kommt nur noch die Fehlermeldung "http_read_response read 0 -ie- EOF"
#> mplayer "http://192.168.0.6:8100/?cmd=play&data=aec22424963bfcac22e65b4ffe99cdee&field=ID"
...
Playing [URL]http://192.168.0.6:8100/?cmd=play&data=aec22424963bfcac22e65b4ffe99cdee&field=ID.[/URL]
Resolving 192.168.0.6 for AF_INET6...
Couldn't resolve name for AF_INET6: 192.168.0.6
Connecting to server 192.168.0.6[192.168.0.6]:8100 ...
http_read_response read 0 -ie- EOF
Unable to open URL: [URL]http://192.168.0.6:8100/?cmd=play&data=aec22424963bfcac22e65b4ffe99cdee&field=ID[/URL]
Exiting... (End of file)
Alles anzeigen
und zu den oben erwähnten Problem, mit den nicht mehr vorhandenen DBI Connect.
Also es ist eigentlich kein Problem auf der ICECAST Seite (der Connect klappt noch)
aber das zwischenzeitlich die Datenbank tot ist, kann er keine Daten mehr liefern
und es kommt zum "http_read_response read 0 -ie- EOF"
Bleibt nur raus zubekommen warum den die Datenbankverbindung stirbt.
Andreas
@Hulk
Es ist faszinierend. Ich habe jetzt den mplayer auf dem vdr aufgerufen und auf meinem Laptop, bestimmt 10mal und ich habe keinerlei Probleme. Ok, es scheint ein Problem bei Euch mit dem Icecast Plugin zu geben, vielleicht gab es auch ein Problem bei der Uebertragung. Ich hab nochmal das Paket gepackt und auf dem Server geschoben. Vielleicht lags daran ... ich kann mir die ganze Sache auch nicht recht erklaeren.
ZitatOriginal von xpix
Ich hab nochmal das Paket gepackt und auf dem Server geschoben. Vielleicht lags daran ... ich kann mir die ganze Sache auch nicht recht erklaeren.
Auch die neue Version zeigt das selbiges Verhalten
Vielleicht sollte dieses Problem ein paar Tage liegen bleiben und es schlägt ein Blitz der Erkenntnis noch ein ...
Andreas
ich melde mich auch mal zu wort, hab das ganze ding vor 2 tagen eingerichtet ung es gibt immer noch einige gravierende mängel die ich mal erwähnen möchte (ich bitte um entschuldigung falls diese schon erwähnt wurde, ich habe nicht den ganzen beitrag gelesen)
1. im programm guide ist nur durch den wochentag spezifiert wann die sendung kommt (ein simples fr kann morgen, sowie nächste woche oder auch in 2 wochen bedeuten)
2. im timer dialog werden sendungen die an einem späteren monatstag kommen weiter hinten angezeigt, dh aufnahmen vom 30.12. hinter dem 3.1. (oder hängt das mit dem jahreswechsel zusammen)
3. es sollte eine möglichkeit geben, bestimmte sender für bestimmte dialoge rauszufiltern (es macht meistens keinen sinn ALLE sender anzuzeigen)
4. das musik plugin ist zwar schön, doch durchsucht man einmal die gesamte musik auf dem rechner kann man den vorgang nicht mehr abbrechen (beispiel: ich habe eine ca 60gb musik sammlung, greift irgendwer im netzwerk nun auf die musik zu, dauert es sehr lange bis alles geladen ist, in dieser zeit kann niemand anderes auf das web frontend zugreifen)
aufgrund dieser mängel läuft bei mir nebenher noch vdradmin, ich hoffe mit dieser fehlerbeschreibung geholfen zu haben
mfg
leifg
ZitatOriginal von leifg
1. im programm guide ist nur durch den wochentag spezifiert wann die sendung kommt (ein simples fr kann morgen, sowie nächste woche oder auch in 2 wochen bedeuten)
Damit die Datumszahlen mitangezeigt werden,
kann in EPG.pm in "sub program" folgende Zeile 348 (- => +) geändert werden
dann erfolgt die Ausgabe im Format "Fri 31.12"
ZitatOriginal von leifg
2. im timer dialog werden sendungen die an einem späteren monatstag kommen weiter hinten angezeigt, dh aufnahmen vom 30.12. hinter dem 3.1. (oder hängt das mit dem jahreswechsel zusammen)
Das ist ein guter Einwurf für die TODO-Liste
Dies tritt momemtan an jedem Monatswechsel auf, da VDR die Timer nur mit Tageszahl, ohne Monat notiert. Die Sortierung erfolgt aber momentan einfach nur nach numerischer Reihenfolge.
Andreas
ZitatOriginal von Hulk
Das ist ein guter Einwurf für die TODO-Liste
Da Cooper and Thomas das selbe Problem in VDRADMIN schon gelöst haben, ist hier das fehlende Fragment für die korrekte Darstellung...
--- MODULES.org/TIMERS.pm 2004-12-20 17:59:13.000000000 +0100
+++ MODULES/TIMERS.pm 2004-12-30 19:08:38.000000000 +0100
@@ -642,6 +652,17 @@
(my_strftime("%m") - 1), my_strftime("%Y"));
}
+ # move timers which have expired one month into the future
+ if(length($dor) != 7 && $stopsse < time) {
+ $startsse = my_mktime(substr($start, 2, 2),
+ substr($start, 0, 2), $dor, (my_strftime("%m") % 12),
+ (my_strftime("%Y") + (my_strftime("%m") == 12 ? 1 : 0)));
+
+ $stopsse = my_mktime(substr($stop, 2, 2),
+ substr($stop, 0, 2), $stop > $start ? $dor : $dor + 1,
+ (my_strftime("%m") % 12),
+ (my_strftime("%Y") + (my_strftime("%m") == 12 ? 1 : 0)));
+ }
my $ret = {
start => $startsse,
Alles anzeigen
Edit: Dreher im Diff-Header beseitigt
super, danke die vorschläge haben geklappt, leider gehen die von dir geposteten zeilen nicht zu patchen, weshalb ich sie manuell eingefügt habe.
hab mir mal die freiheit genommen und eine funktionierende diff datei erstellt und angehängt (einfach in den ordner lib/XXV/MODULES kopieren und per patch < timer.diff.txt ausführen)
mfg
leifg
so jetzt habe ich nur noch eine frage zum stone skin:
wie ändere ich bei der timer liste das datum format
ursprünglich:
Freitag der 31.
ich möchte
Freitag der 31.12.
ich habe in der TIMER.pm folgende zeile (zeile 518) geändert:
DATE_FORMAT(TIMERS.NextStartTime, '%a') as Day,
in
DATE_FORMAT(TIMERS.NextStartTime, '%a %d.%m.') as Day,
aber das hat das ganze nur verschlimmbessert weil jetzt heisst das ganze
Freitag 31.12. der 31.
vielen dank im voraus
mfg
leifg
ZitatOriginal von leifg
so jetzt habe ich nur noch eine frage zum stone skin:
DATE_FORMAT(TIMERS.NextStartTime, '%a %d.%m.') as Day,
aber das hat das ganze nur verschlimmbessert weil jetzt heisst das ganze
Freitag 31.12. der 31.
Das eigentliche störende Problem ist das mysql nicht per Formatanweisung
dazuzubewegen ist das Datum im deutschen Formatierung auszugeben.
Benannt Wochentag/Monate usw. werden immer in englischer Schreibweise ausgeben.
Aus diesem Grund wird in den Templatefiles eine Ersetzung des Wochentages vorgenommen. Und dort werden die zwei Spalten (5/9) zusammen geführt.
Du könnest folgendes Machen:
DATE_FORMAT(TIMERS.NextStartTime, '%a der %d.%m.') as Day,
und in tlist.tmpl/tsearch.tmpl im Template die roten Zeilen löschen.
Dadurch werden die doppelten Datumswerte durch Spalte 5 nicht mehr angezeigen.
<td colspan="9"><h2><?% day %?>
<?% IF datum.replace('\D+', '') == datum #Filter e.g. MDMDF-- %?>
der <?% datum %?>.
<?% END %?>
</h2></td>
Die ist aber keine saubere endgültige Lösung, den eigentlich sollte die Lokalisierung parametrierbar bleiben, bzw. nur durch den Skin erfolgen.
Andreas
ZitatOriginal von leifg
4. das musik plugin ist zwar schön, doch durchsucht man einmal die gesamte musik auf dem rechner kann man den vorgang nicht mehr abbrechen (beispiel: ich habe eine ca 60gb musik sammlung, greift irgendwer im netzwerk nun auf die musik zu, dauert es sehr lange bis alles geladen ist, in dieser zeit kann niemand anderes auf das web frontend zugreifen)
Yopp hast recht, ich hab in der naechsten Version keinen automatischen Refresh mehr. Der Refresh wird nur noch auf Befehl des Users oder wenn die Datenbank leer ist gestartet.
Danke fuer den Bug
xpix
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!