Habe mal den Datendurchsatz mit verschiedenen Taktraten auf einem Pi1 als TX gemessen. Angaben sind jeweils in Megabyte/s.
"Stabil" oder "Schwankend" heisst die Datenrate schwankt stark. Bin mir nicht ganz sicher warum das so ist, ich schätze weil cat einfach "volle Pulle" in den TX Prozess schickt, dann irgendwann irgendwelche Buffer voll werden die dann wieder geflushed werden müssen. Zumindestens scheint das regelmässiger Natur zu sein, CPU Last geht dann auch zeitweise hoch wenn die Datenrate runter geht.
Das muss bei Benutzung mit raspivid als Datenquelle nicht unbedingt ein Problem sein, weil das ja normalerweise nicht schneller sendet als der tx Prozess Daten los wird. So ganz vertrauenserweckend ist das aber irgendwie nicht. Auf einem Pi2 ist das nicht der Fall.
Nächstes Problem ist, dass die raspivid Datenrate doch nicht so konstant ist wie man meinen könnte, d.h. man braucht zur Sicherheit grob das doppelte an Datendurchsatz auf WLAN Seite als die raspivid Bitrate wenn man nicht mit plötzlich steigender Latenz bei plötzlichen Szenenwechseln mit stärkeren Beleuchtungsunterschieden leben möchte.
Wenn man sich das jetzt für 24Mbit mit 1024/8/4 (den Standardsettings) und 5Mbit Videobitrate anschaut, dann sieht das gar nicht mehr so gut aus
5Mbit * 2 / 8 wären 1.25 Megabyte/s die man auf WLAN Seite braucht. Die gehen auf einem Pi Zero gerade eben so, auf einem Pi1/Odroid-W gar nicht. Das ist aber immer mit 100% CPU Auslastung, was man vermeiden sollte, sonst gibt's wieder unkontrolliert steigende Latenz.
Alle tests mit:
ifconfig wlan0 down && iwconfig wlan0 mode monitor && ifconfig wlan0 up && iwconfig wlan0 channel 13
cat /dev/zero | pv -r -a -T -i 0.1 | /home/pi/wifibroadcast/tx -p 0 -b 8 -r 4 -f 1024 wlan0 > /dev/null
arm 700, gpu 250, sdram 400 (Pi1/Odroid-W Serienzustand)
1.18MiB mit 1024/8/4 auf 54M schwankend
1.16MiB mit 1024/8/4 auf 36M schwankend
1.10MiB mit 1024/8/4 auf 24M schwankend
1.05MiB mit 1024/8/4 auf 18M schwankend
arm 1000, gpu 250, sdram 400 (Pi Zero Serienzustand)
1.40MiB mit 1024/8/4 auf 54M schwankend
1.30MiB mit 1024/8/4 auf 36M schwankend
1.25MiB mit 1024/8/4 auf 24M schwankend
1.10MiB mit 1024/8/4 auf 18M schwankend
arm 1000, gpu 400, sdram 433:
1.7MiB mit 1024/8/4 auf 54M schwankend
1.4MiB mit 1024/8/4 auf 24M schwankend
arm 1000, gpu 450, sdram 450:
1.8MiB mit 1024/8/4 auf 54M schwankend
1.4MiB mit 1024/8/4 auf 24M schwankend
arm 1100, gpu 400, sdram 433:
1.78MiB mit 1024/8/4 auf 54M schwankend
1.70MiB mit 1024/8/4 auf 36M schwankend
1.41MiB mit 1024/8/4 auf 24M schwankend
1.16MiB mit 1024/8/4 auf 18M stabil
arm 1100, gpu 450, sdram 433:
1.82MiB mit 1024/8/4 auf 54M schwankend
1.78MiB mit 1024/8/4 auf 36M schwankend
1.42MiB mit 1024/8/4 auf 24M schwankend
1.16MiB mit 1024/8/4 auf 18M stabil
arm 1100, gpu 500 sdram 466:
1.95MiB mit 1024/8/4 auf 54M schwankend
1.90MiB mit 1024/8/4 auf 36M schwankend
1.45MiB mit 1024/8/4 auf 24M schwankend
1.16MiB mit 1024/8/4 auf 18M stabil
arm 1100, gpu 550 sdram 466:
1.96MiB mit 1024/8/4 auf 54M schwankend
1.88MiB mit 1024/8/4 auf 36M schwankend
1.46MiB mit 1024/8/4 auf 24M schwankend
1.16MiB mit 1024/8/4 auf 18M stabil
Zum Vergleich auf einem Pi2:
2.61MiB mit 1024/8/4 auf 54M stabil
1.99MiB mit 1024/8/4 auf 36M stabil
1.47MiB mit 1024/8/4 auf 24M stabil
1.16MiB mit 1024/8/4 auf 18M stabil