Empfänger für Internetradio
-
Also, ohne dich jetzt schlechtreden zu wollen: Das wird nix. Wenn du im Internetzeitalter nicht in der Lage bist, dir Informationen über das Protokoll selbstständig zu besorgen, dann bist du auch mit dem Rest deines Vorhabens restlos überfordert. Du wirst bei jedem kleinen Schritt (wie behandele ich das Protokoll, wie dekodiere ich den Stream, wie gebe ich Töne aus, wie komme ich überhaupt an Daten, …?) wieder ratlos hier vorbeikommen. Du brauchst erst einmal viel mehr Übung in allgemeiner Programmierung und in Problemlösungsstrategien. So etwas lernt man nur durch selber machen, nicht indem man fremder Leute Code durchliest (und erst recht nicht, wenn man fremder Leute Code kopiert). Du musst dir erst einmal deutlich leichtere Aufgaben suchen. Hast du überhaupt schon einmal ein Programmierlehrbuch vollständig(!) und selbstständig(!) durchgearbeitet? Falls nicht: Das ist ein guter Anfang.
-
Gut, dass jetzt von der Programmierung her der geringste Teil nur klappt bei mir das weiß ich.^^
Nur ich will wenigstens hinter die Aufgabe steigen, und verstehen womit ich es zu tun hab. Aber nagud dann nehm ich mir wohl doch lieber erstmal einfachere Aufgaben vor.
-
hast du überhaupt bei wikipedia geschaut? ich hab nach 5 sec. die entsprechende info gefunden:
'http://de.wikipedia.org/wiki/Internetradio#Streaming-Clients' schrieb:
[...]
Die Übertragung erfolgt mittels spezieller Streaming-Protokolle (Live-Streaming) oder über die Dateiübertragungs-Protokolle HTTP und FTP (On-Demand-Streaming).
[...]Quelle: http://de.wikipedia.org/wiki/Internetradio#Streaming-Clients
das mit dem verlustbehafteten codec hast du ja schon rausgelesen, du hättest eben nur einige zeilen weiterlesen müssen.
nun, http ist das stinknormale protokoll, das auch alle browser können. im moment bist du hier auch auf einer http-seite (zu erkennen an der adresszeile: "http://www.c-plusplus.net").
ftp ist auch ein gängiges protokoll für downloadserver.
beispiel: ftp://ftp.kernel.org/pub/
das erkennst du am "ftp://ftp.kernel.org/pub/".zum weiterlesen:
http://de.wikipedia.org/wiki/Hypertext_Transfer_Protocol
http://de.wikipedia.org/wiki/File_Transfer_Protocolbeide protokolle sind uralt.
hier sind die offiziellen spezifikationen der protokolle:
http://tools.ietf.org/html/rfc959
http://tools.ietf.org/html/rfc1945das sind die offziellen beschreibungen, brauchste halt gute englischkenntnisse (ohne die kommt man im internet sowieso nicht weit, aber das haste ja wahrscheinlich schon gemerkt).
im grunde funktionieren die meisten protokolle so:
der server "lauscht" über einen bestimmten port. du kannst jetzt als client daten an den server senden, es muss allerdings der gleiche port sein (http und ftp schreiben die ports vor soweit ich weiß).
http ist textbasiert, z.b. wenn du eine http-seite im internet aufrufst, dann schickt dein browser eine bestimmte textnachricht an diesen server. der server interpretiert dann die anfrage und liefert die seite zurück.hier mal ein beispiel:
du willst die seite http://www.google.de aufrufen (http-seite, zu erkennen am "http://").
wenn du nun auf diesen link klickst, dann wird dein browser erstmal die ip den google-servers herausfinden. hierfür schickt er eine anfrage an einen DNS-server, der hat eine liste, bzw. datenbank. irgendwo in dieser datenbank steht:
http://www.google.de = 74.125.143.94
der dns-server gibt die ip des servers ( in diesem fall ist das "74.125.143.94") an den browser zurück. der browser weiß nun, welchen server er ansprechen muss.
nun schickt der browser die eigentliche anfrage an diesen server. in diesem fall eine GET-nachricht:
GET index.htm HTTP/1.0
so oder so ähnlich sieht die anfrage aus. der server erkennt so, dass du die seite "index.html" haben willst, die liefert er nun an deine browser.
jetzt siehst du die internet-seite.klingt komplizierter als es ist.
-
Also das mit http und ftp hab ich bereits verstanden, aber trotzdem danke
Es hackt ja auch nicht am allgemeinen Verständnis, mit Programmen wie dem VLC Player lassen sich ja Internet-Radios bzw. Streams öffnen. Und genau so eine Art Programm will ich viel kleiner als Konsolentool für ein Linux System.Mir fehlt es am Verständnis was das Programm machen muss. Also ok, es muss mit dem Internet verbunden sein, es muss die verschiedenen Server über http oder ftp ansprechen und dann diese Datei abspielen.
Nur wie genau das Programm das macht da fehlt es mir
Ich sollte mich vllt. doch erst ein wenig in C üben.
-
Dani_043 schrieb:
Also das mit http und ftp hab ich bereits verstanden, aber trotzdem danke
Es hackt ja auch nicht am allgemeinen Verständnis, mit Programmen wie dem VLC Player lassen sich ja Internet-Radios bzw. Streams öffnen. Und genau so eine Art Programm will ich viel kleiner als Konsolentool für ein Linux System.Mir fehlt es am Verständnis was das Programm machen muss. Also ok, es muss mit dem Internet verbunden sein, es muss die verschiedenen Server über http oder ftp ansprechen und dann diese Datei abspielen.
Nur wie genau das Programm das macht da fehlt es mir
Ich sollte mich vllt. doch erst ein wenig in C üben.1. erstmal ein socket öffnen
2. dann einen string generieren, der dem verwendeten protokoll entspricht (z.b. bei html "GET <seite> HTTP/1.0")
3. string über socket an server senden
4. daten von server erhaltenein genaueres beispiel findest du hier:
http://magazin.c-plusplus.net/artikel/Sockets und das HTTP-Protokollist zwar mit c++, aber für das verständnis, wie das halt funktioniert, ist es schon ok.
-
was verstehst du nicht? wie irgendwas abgespielt wird? oder was?
du brauchst eine lib, mit der du den stream decodierst, dann kannst du eine abspielfunktion aus "windows.h" verwenden.
-
ah, dankeschön, die Erklärung und das Beispiel hilft mir definitiv weiter!
Den Stream decodieren, ok, aber "windows.h" kann ich nicht verwenden, nutze das Tool doch auf einem Linux Betriebssystem, oder geht das trotzdem?
-
man könnte z. B den dekodierten Stream per popen in eine Pipe schreiben und
ein entsprechendes Playerprogramm starten, wie z. B aplay, da du ja Linux hast
-
Die in deinem anderen Thread empfohlenen Bibliotheken sind allesamt plattformunabhängig (oder genauer gesagt: Gibt es für alle großen Plattformen).
-
Ja, das mit der Audiowiedergabe sollte kein Problem mehr sein. Die "libavcodec"- oder SDL-Bibliothek, sind beide gut und können beide genau das was ich brauch.
Für die Verbindung mit Internet und für Download der Streamdatei und Speicherung auf Client habe ich bereits alles, bei der Audiowiedergabe muss ich mich nur noch durcharbeiten, aber ansonsten hab ich grob die Befehle auch schon.
Jetzt kommt das Hauptproblem hinzu, wie kombinier ich beide Programm miteinander zu einem Programm in C?
Ich üb jetzt erstmal noch anhand von Übungsaufgaben und Beschreibungen, hoffe so komme ich auch auf meine Lösung.Und danach muss ich ja noch aus einer vorgefertigten Liste von http-Seiten das so erzeugen, das man bei Start des Programms zuerst ein Radio sich auswählen muss.
Dauert noch ein wenig, ich denke mal mit viel Übung und Geduld schaff ich das!