Forum: Mikrocontroller und Digitale Elektronik VS1011 und Shoutcast


von Star K. (starkeeper)


Lesenswert?

Hi,
ich habe Probleme mit meinem Webradio-Projekt, bei denen ich nicht 
weiter komme.

Mein Vorhaben ist ein VS1011 (MP3-Dekoder Chip) mit Daten von einem 
Shoutcast stream zu füttern, sodass er sie dekodiert und abspielt. Das 
haben hier im Forum ja schon einige mit dem vs1053 gemacht.

Mein Problem ist, dass der VS1011 keinen Mux von sich gibt, wenn ich ihn 
mit den Shoutcast-Daten füttere. Ich habe den Chip selber schon 
getestet, indem ich ihm eine MP3-Datei zum Abspielen gegeben habe, dass 
funktioniert wunderbar. Muss ich die Daten vom Shoutcast-Server noch 
irgendwie bearbeitet, bevor ich sie an den Chip weiterleiten darf?

Soweit ich das verstanden habe, beginnen doch direkt nach dem 
htpp-Header des Shoutcast die Audio-Daten. Der Server auf den ich mich 
verbinde liefert mir als content-type "audio/mpeg", also sollte der 
VS1011 das auch abspielen können.

Hat jemand einen Tip, was ich vergessen habe oder noch beachten muss?

von doc (Gast)


Lesenswert?

Ich habe auch grade ein Radio in Arbeit (allerdings mit Vs1053, 
funktionierte auf Anhieb)
Dort gebe ich die Daten 1:1 weiter, das sollte allerdings beim VS1011 
genauso gehen.

Evtl liegt Dein Problem ja woanders (TCP/IP).

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Sind die Metadaten ausgeschaltet? Ansonsten muss man diese Filtern.
(Im HTTP-Header "Icy-MetaData: 0" setzen.)

Gruß
Andreas

von Star K. (starkeeper)


Lesenswert?

Die Metadaten hatte ich auch gleich in Verdacht und habe sie deshalb 
ausgeschaltet. Das hat aber keine Änderung gebracht.

Die Stream-Daten habe ich mir mal im Debugger angeschaut (soweit das 
Möglich ist bei den Mengen) und mit denen vom Wireshark verglichen, dass 
sieht erstmal gut aus.

@Andreas Watterott
Deinen Code (vom ARM webradio) habe ich natürlich auch schon gefunden. 
Was auffällt ist, dass du bei einem Stream (lt. Kommentar) zunächst 128 
Frames überspringst und dann bei MP3 vorspulst zu einem Sync-Byte. Was 
sind bei dir 128Frames, sind damit Bytes gemeint? Wozu die Suche nach 
dem Sync-Byte?

Sowas wie ein Sync-Byte suche ich momemtan nicht in den Daten, vllt. 
liegt es ja daran?

von Malte _. (malte) Benutzerseite


Lesenswert?

Also einen VS1002 kann ich auch direkt mit den Shoutcast Daten füttern. 
Wenn man Metainformationen drinne hat, hört man die als seltsames 
"Zirpen" aber der Decoder spielt weiter. Am Anfang des Streams werden 
auch bei metadaten = 0 trotzdem Informationen zum Sender übertragen. 
Dump die Daten doch mal (zb mit wget auf dem PC in eine Datei) und 
probier die dann.

von Star K. (starkeeper)


Lesenswert?

@ Malte
Das dumpen ist ein guter Ansatz, werde ich heute Abend direkt mal 
austesten. So kann ich auch raus finden, ob ich vllt. Probleme beim 
Bufferhandling habe und Bytes verloren gehen.

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Star Keeper schrieb:
> @Andreas Watterott
> Deinen Code (vom ARM webradio) habe ich natürlich auch schon gefunden.
> Was auffällt ist, dass du bei einem Stream (lt. Kommentar) zunächst 128
> Frames überspringst und dann bei MP3 vorspulst zu einem Sync-Byte. Was
> sind bei dir 128Frames, sind damit Bytes gemeint? Wozu die Suche nach
> dem Sync-Byte?

Manche Stationen wollen beim Starten einen Puffer von ca. 64-128kByte 
aufbauen. Da das Radio ohne F-RAM das nicht schafft, werden je nach 
Bitrate Pakete verworfen und anschließend wird wieder auf die Audiodaten 
synchronisiert. Das Synchronisieren ist bei einem MP3 Stream aber nicht 
so wichtig - bei Ogg und WMA ist es aber angebracht.

Gruß
Andreas

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.