AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

webradio aufnehmen

Ein Thema von Szin · begonnen am 28. Aug 2006 · letzter Beitrag vom 18. Okt 2016
Antwort Antwort
Seite 1 von 2  1 2      
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#1

webradio aufnehmen

  Alt 28. Aug 2006, 17:08
Hallo!
Ich möchte den Webradio-Stream eines Shoutcast Radios aufzeichnen. In den PLS-Datei sind die direkten Links in folgender Form:

http://64.236.34.4:80/stream/1032

Nun Frage ich mich als interessiertem Noob wie connecte ich den Server? Kann ich das über HTTP-GET machen? Oder verwendet man Sockets? Ist ja nicht nur ne ip mit nem port - das /stream/1032 stört irgendwie...

Und welche Komponenten verwendet man da heutzutage (habe gesehen das es verschiedene Sockets-Komponenten - gibt TStreamSocket, TTcpClient...)
Ach ja, das ganze sollte auch in einer nicht Dialog/fensterbasierten Umgebung funktionieren.

Grüße,
André
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#2

Re: webradio aufnehmen

  Alt 28. Aug 2006, 17:19
Zitat von Szin:
Ist ja nicht nur ne ip mit nem port - das /stream/1032 stört irgendwie...
Das /stream/1032 gehört aber dazu.

Port 80 ist ja der normale HTTP - Port. Im Prinzip müsstest du die Datei in den Cache laden und parallel abspielen (und danach das schon gehörte wieder aus dem Cache löschen).
  Mit Zitat antworten Zitat
Tubos

Registriert seit: 25. Feb 2004
Ort: Yspertal (Niederösterreich)
1.014 Beiträge
 
Delphi 7 Personal
 
#3

Re: webradio aufnehmen

  Alt 28. Aug 2006, 17:31
Du könntest einfach das populäre Programm Bei Google suchenstreamripper aufrufen.
Lukas
  Mit Zitat antworten Zitat
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#4

Re: webradio aufnehmen

  Alt 28. Aug 2006, 17:34
Das abspielen ist was für später (will ne Timeshift-Funktionalität haben)
Aber WIE mach ich nun das rauslesen?
Btw. gibts für HTTP auch ne nicht Indy-Komponente?

Ein externes Programm will ich nicht verwenden. Wär ja zu einfach
  Mit Zitat antworten Zitat
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#5

Re: webradio aufnehmen

  Alt 28. Aug 2006, 18:18
ok, hab nun TidHTTP und get verwendet (http://www.dsdt.info/tipps/?id=161)
Damit lässt sich der Stream in eine endlose Datei schreiben.
2 Probleme dabei:
1. Wie mach ich daraus einen ringpuffer? Sprich: Wie sagt ich dem Get das es nur zb. 1MB runterläd und dann wieder vorne anfängt?
Schwerwiegender ist 2.
2. Die Datei lässt sich während des schreibens weder mit Winamp noch mit dem Windows Media Player öffnen, obwohl ich
Code:
  lStream:=TFileStream.Create('C:\Test.mp3', fmCreate or fmShareDenyNone);
verwende. Aber das ist Vorraussetzung für mich!
Dazu Ideen?
Grüße,
André
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#6

Re: webradio aufnehmen

  Alt 28. Aug 2006, 18:34
Zitat von Szin:
2. Die Datei lässt sich während des schreibens weder mit Winamp noch mit dem Windows Media Player öffnen, obwohl ich
Code:
  lStream:=TFileStream.Create('C:\Test.mp3', fmCreate or fmShareDenyNone);
verwende. Aber das ist Vorraussetzung für mich!
Und wenn du die Datei stattdessen in einen Puffer lädst und sie mit der BASS.DLL abspielst, sprich, einen eigenen Player integrierst?
  Mit Zitat antworten Zitat
Szin

Registriert seit: 3. Mai 2006
13 Beiträge
 
Delphi 2007 Professional
 
#7

Re: webradio aufnehmen

  Alt 28. Aug 2006, 18:55
2. hab ich jetzt wie folgt gelöst:

Delphi-Quellcode:
  lStream:=TFileStream.Create('C:\Test.mp3', fmCreate or fmShareDenyNone);
lStream.Free;
lStream:=TFileStream.Create('C:\Test.mp3', fmOpenWrite or fmShareDenyNone);
da
  fmCreate = $FFFF; bringt eine or Verknüpfung natürlich nicht wirklich was
Nun muss ich "nur noch" 1. lösen - mal schaun!

André

P.S. BASS ost ne feine sache, kostet aber für kommerzielle Anwendungen Geld
  Mit Zitat antworten Zitat
benst

Registriert seit: 20. Jun 2004
155 Beiträge
 
Delphi 5 Standard
 
#8

Re: webradio aufnehmen

  Alt 10. Sep 2006, 10:28
Ich weiß nicht, ob du das Programm umbedingt selber schreiben möchtest und wie weit du schon gekommen bist. Ich würde folgendermaßen machen:
Mit dem kostenlosen Programm Screamer das Radio-Programm anhören. Dann auf Aufnahme drücken und weggehen. Wenn du wiederkommst, einfach die gespeicherte mp3 mit z.B. Winamp starten (während weiter aufgenommen wird). Funktioniert bei mir zumindest super.
Ben
P.S.: Das Programm bietet zusätzlich auch noch die Funktion, dass schon vor dem Klicken auf Rec aufgenommen wird. Siehe auch D.-P.: Sound aufnehmen.
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: webradio aufnehmen

  Alt 17. Okt 2016, 15:44
Hallo!

Ich begehe hier jetzt mal den verwerflichen Akt der Leichenfledderei und hole diesen betagten Thread wieder hoch, weil mein Problem genau hier schon mal angerissen aber nicht abschließend beantwortet ist:
Zitat von Szin:
2. Die Datei lässt sich während des schreibens weder mit Winamp noch mit dem Windows Media Player öffnen, obwohl ich
Code:
  lStream:=TFileStream.Create('C:\Test.mp3', fmCreate or fmShareDenyNone);
verwende. Aber das ist Vorraussetzung für mich!
Und wenn du die Datei stattdessen in einen Puffer lädst und sie mit der BASS.DLL abspielst, sprich, einen eigenen Player integrierst?
Konkret geht es mir darum, einen Webradio-Stream per Indy-Get zu holen und dann direkt, ohne Dateipuffer, an BASS.DLL weiter zu reichen. Da BASS eine Stream-Schnittstelle hat und ich schon ein Tutorial dazu gefunden habe, sehe ich da im Moment weniger das Problem.

Vielmehr würde mich interessieren, wie man mit Indy quasi einen Endlos-Stream realisiert. Man braucht ja einen gewissen Vorlauf an Nutzdaten im Stream und müsste die von BASS bereits wiedergegebenen Daten verwerfen, damit einem nicht irgendwann ein Puffer voll läuft. Das Problem ist also, genug Nutzdaten im Puffer vorzuhalten, die Wiedergabe zu synchronisieren und "veraltete" Daten zu verwerfen ohne den Stream zu schließen.

Da wär ich mal für dein ein oder anderen Tip dankbar.

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#10

AW: webradio aufnehmen

  Alt 17. Okt 2016, 17:35
Hallo,

Vielmehr würde mich interessieren, wie man mit Indy quasi einen Endlos-Stream realisiert. Man braucht ja einen gewissen Vorlauf an Nutzdaten im Stream und müsste die von BASS bereits wiedergegebenen Daten verwerfen, damit einem nicht irgendwann ein Puffer voll läuft. Das Problem ist also, genug Nutzdaten im Puffer vorzuhalten, die Wiedergabe zu synchronisieren und "veraltete" Daten zu verwerfen ohne den Stream zu schließen.

Da wär ich mal für dein ein oder anderen Tip dankbar.

Grüße
Cody
Das Stichwort währe Ringpuffer. Himitsu hat da mal einen Streambasierten gepostet (http://www.delphipraxis.net/126525-t...-memory.html#7). Du musst nur das Problem lösen, dass vermutlich die Abspielgeschwindigkeit nur annähernd gleich der Datenanlieferung ist.

einbeliebigername.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz