ESP32 Tiny Video Streamer

Atomic14’s ESP32 streaming setup plays video and sound over Wi-Fi.

Jeremy Cook
8 months ago

In this project, YouTuber atomic14 demonstrates how to use the ESP32 to stream video to a 1.69" 240x280 pixel TFT display over Wi-Fi. The build includes synced audio output via I2S, along with IR remote control capabilities.

After some experimentation, atomic14 was able to get a series of JPEG images to display at 28 frames per second (FPS), using the JPEGDEC decoding library and direct memory access (DMA). For Wi-Fi streaming, he decided on an HTTP server to provide the needed sequence of images. Here the ESP32 is cleverly set up so that one of its two cores takes care of downloading video data, while the other shows the frames on-screen.

Audio to go along with the video is encoded as eight-bit PCM data at 16 kHz, which gives reasonable quality with a fairly low data usage. Sound is output via an I2S amplifier, and audio data is used to calculate elapsed time for audio/visual synchronization.

An IR receiver is soldered and programmed in for rudimentary remote control (complete with simulated channel-change static). The result is what one might call a functional prototype ESP32 streamer/TV device. Perhaps we’ll see this device redesigned and/or stuffed into a 3D-printed frame to finish off the build in the future.

If you’d like to examine this work more closely and/or add to it, code is available here. There’s also a non-Wi-Fi SD card version available if that suits your needs better.

Jeremy Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles