Cant code to many led lights on my Ardunio Uno

I’m using an Ardunio Uno and 300 x 4 LED strips.

If I decrease the amount of leds per strip the code works, else it fails.
It seems to be a memory limit, what are good strategies on dealing with 1200 addressable leds?

#include "FastLED.h"
#define NUM_STRIPS 4
#define NUM_LEDS_PER_STRIP 300
CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP];
void setup() { 
	FastLED.addLeds<WS2812B, 10>(leds[0], NUM_LEDS_PER_STRIP);
	FastLED.addLeds<WS2812B, 11>(leds[1], NUM_LEDS_PER_STRIP);
	FastLED.addLeds<WS2812B, 12>(leds[2], NUM_LEDS_PER_STRIP);
	FastLED.addLeds<WS2812B, 13>(leds[3], NUM_LEDS_PER_STRIP);

}
void loop() {
	for (int x = 0; x < NUM_STRIPS; x++) {
		// This inner loop will go over each led in the current strip, one at a time
		for (int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
			leds[x][i] = CRGB::Red;
			FastLED.show();
			leds[x][i] = CRGB::Black;
			delay(2);
		}
	}
}

You either need a library that can generate the data as it sends it out, or use fewer bits per pixel and expand it as it sends it out, or you need to use fewer LEDs, or you need to use an MCU with more SRAM. Simple multiplication dictates that you don't have enough SRAM to buffer 1200 LEDs (at 3 bytes a piece) on a part with 2048 bytes of sram!

The 1284p would be my recommendation - it's got more sram than even the mega (though less flash - but flash isn't your problem), and there's a bunch of people on the forums here who love them, and several sources for boards.

Use an Arduino Mega, that has 8K of SRAM and so will be able to cope with the buffer size you need.