WiFi LED matrix display

I am building a 40x40 LED matrix that connects to my WiFi with two ESP8266's. The display will be running at 30 frames per second and can display 15 different levels of brightness per LED by using half a byte of data per LED. This means I need 800 bytes 30 times a second.

While one ESP8266 is getting the next frame(s) the other is displaying the image. That way there is no down time because one microcontroller is always displaying frames. I can either swap each frame, in which case one microcontroller spends 30ms displaying a frame while the other spends that time getting on. Or I can get more data then needed so I can use that as a buffer in case the WiFi goes slow at some point.

I've tried connecting the ESP8266 via WiFi to a Raspberry Pi 2 running a nginx server. This is working pretty well but since I am a complete newbie at networking I am wondering if getting the frame data from a server is the most efficient way of doing things or if there is some other software that would be better?

Finally I could use some advice on what capacitors to use for an ESP8266 that is constantly using WiFi as I have read that it can burst through a lot of current.