Forum: Mikrocontroller und Digitale Elektronik network stream esp8266 - geschwindigkeit


von Martin R. (rogi1)


Lesenswert?

Hallo,

Ich habe an einen ESP 8266 einen VS1053 DSP angeschlossen. Die wiedergab 
von MP3 Dateien funktioniert, es gibt aber ein Phänomen, welches ich mir 
nicht wirklich erklären kann.

Ein Serverprogramm im Netzwerk liefert eine MP3 Datei, welche problemlos 
vom Gerät wiedergegeben wird:
1
----------------------------------
2
tcpAvail:   tcpSpeed:  cache:      mp3Speed: 
3
 2112byte  32byte/s     32bytes     0byte/s 
4
starting
5
 1960byte  61792byte/s  19968bytes  41856byte/s 
6
 1408byte  20384byte/s  19968bytes  20384byte/s 
7
 1936byte  19840byte/s  19968bytes  19840byte/s 
8
 1928byte  19840byte/s  19968bytes  19840byte/s 
9
 1376byte  20384byte/s  19968bytes  20384byte/s 
10
11
----------------------------------
Die Log-Outputs passieren im Sekunden Takt, der 20 kb Cache ist in 
weniger von einer Sekunde fast vollständig gefüllt, das Playback 
beginnt.

Nun stelle ich das Programm auf einen Internet Stream um:
1
----------------------------------
2
tcpAvail:   tcpSpeed:  cache:      mp3Speed: 
3
2112byte    32byte/s    32bytes     0byte/s 
4
 32byte     8512byte/s  8544bytes   0byte/s 
5
 32byte     6432byte/s  14976bytes  0byte/s 
6
starting
7
 32byte     6432byte/s  13440bytes  7968byte/s 
8
 32byte     2144byte/s  7552bytes   8032byte/s 
9
stopping
10
11
----------------------------------
Mit der Internet Verbindung benötigt der Cache bereits 3 Sekunden um 
fast voll zu werden, außerdem ist der Cache genausoschnell wieder 
leergespielt, und benötigt.

Die Internetverbindung: HSDPA+ mit 5MBit up und 1,5MBit down.

Es fällt auf, dass die Client.Available(1.Spalte) bei der 
Internet-Verbindung fast 0 ist. Nun stellt sich für mich die Frage:
Warum funktioniert ein 62kBit/s Mp3 Stream aus dem Internet nicht, 
obwohl ein aus dem Netzwerk gestreamtes qualitativ hochwertiges MP3-File 
ruckelfrei wiedergegeben wird?

In VLC-Player am Computer im gleichen Netzwerk wird der Stream 
problemlos und ruckelfrei wiedergegeben.

: Bearbeitet durch User
von Michael U. (amiga)


Lesenswert?

Hallo,

Martin R. schrieb:
> Die Internetverbindung: HSDPA+ mit 5MBit up und 1,5MBit down.

Das wäre eine zumindest sehr seltsame Kombination von Up- und 
Downstream.

Ich habe vor Zeiten mal ESP8266 mit VS105x benutzt, allerdings weiß ich 
nicht mehr, ob ich da Webstreams abegspielt habe...
Inzwischen nur noch ESP32 mit Softwaredecoder und I2S-Ausgabe und der 
ESP8266Audio - Lib im Arduino-Umfeld. Geht prinzipiell auch mit dem 
ESP8266 bei 160MHz Coretakt. Ich spiele aber nur IceCast MP3-Streams, im 
lokalen Netz bzw. 2-3 ausgewählte Radiostreams.
Es hängt aber stark vom Netzwerk ab, also Latenz und durchschnittliche 
Datenrate ab, 20kB Buffer sind recht können da schnell leer sein.

Was für Software beutzt Du überhaupt?

Gruß aus Berlin
Michael

: Bearbeitet durch User
von Martin R. (rogi1)


Lesenswert?

> Das wäre eine zumindest sehr seltsame Kombination von Up- und
> Downstream.

Es handelt sich um die effektiven Werte laut Geschwindigkeitstest, nicht 
um die theoretisch mögliche Geschwindigkeit.


Ich hatte auch vor den ESP32 mit Softwareencoding zu nutzen, besser noch 
mit dem eingebauten DAC. Ich bin aber ganz neu in dieser Materie, und da 
ich einen Externen DAC mit verstärker nicht hatte, hab ich mich mal am 
VS1053 versucht.

Stößt das Softwaredecoding des ESP32 bei höheren Bitraten an seine 
Grenzen?
Ich benutze die Arduino-Core umgebung mit dem Driver von Adafruit. Oder 
bezieht sich deine Frage auf eine andere "Software"?

> 20kB Buffer sind recht können da schnell leer sein.

Du hast recht, aber bei so wenig verfügbaren Bytes am Netzwerk-stream 
sind auch 3MB schnell leer.... Also das Problem liegt sicher am 
Internet, nicht am Programm, weil ja sonst auch Probleme bei reinem 
Netzwerkbetrieb auftreten würden. Ich möchte halt verstehen, was da der 
unterschied ist.

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.