Displaying Video on an ILI9341 with ESP32

I have an ILI9341 touch-display that I would like to use to display short clips of video. I am using an ESP32 Dev Module to drive it and have set up the board according to this video by @xtronical (I'm hoping that's his actual account and not just some other guy...) In his video he showed me how to use the tft_espi library by @bodmer to draw things on screen and even display jpegs from the sd card that is part of the touchscreen.

I have tried countless ways to display video on this display, from showing jpegs one after another (much too slow, has a wave effect) to using the AnimatedGIF library by Louis Banks, which I was surprised to find worked first try with gifs uploaded into the SPIFFS library. However, I couldn't get it to display gifs off of the sd card, until I changed the adafruit_gfx_sdcard example to use the tft_espi library. It then resulted in a very off-colour version of my gif, which I then tried to correct by converting the color format. One of my gifs works just fine, another didn't change and a third is filling in random pixels with blank white!

Is the AnimatedGIF library the way to go? Can I make it work fast enough and with the right colour? Please advise.

P.S. Cruddy video quality doesn't bother me. I'd take 5 fps any day. Also, I'm pretty new at this forum; was Project Guidance the right type for this post? I tried to find 'tft' and 'video' but no dice.

Is this an academic approach just to prove it's doable?

If not, you've chosen the wrong hardware. Get a Raspberry Pi and a small display for it. This hardware has the resources to display video.

It's more than an academic approach, I'm actually building this into a project. I'm also not really interested in using a Raspberry Pi. If it's simply not possible with an ESP32 then so be it, I just won't build it in. But I'd like to give it a go just the same. I've seen a couple of people online in my same situation who succeeded but they either used a slightly different display or didn't provide the code.

Well if you have seen code that writes a single image to the TFT then see how long the write takes.

That should give you some idea of the frames per second that setup would be capable of.

I tried breaking a simple gif into jpegs, took way too long. But I'm thinking there must be some way to speed up the process. This is why I asked people more knowledgeable about the subject than me.

In fact, I'm starting to feel that this subject was too broad. If anybody knows any other way, please chime in, but I'd like to focus on the AnimatedGIF library; if the colors worked right with tft_espi I would be set!

Sure there is, use a Pi.

If you had read my previous replies you would know that I don't want to use a Pi.

Does anybody have any ideas?

Intel Galileo Single ATX DDR2 1066 Microcontroller

Sorry, but I'm looking for a way to use an ESP32, not for a new microcontroller.

Did you use a parallel connection so that data transfer to the LCD doesn't become a bottleneck?
There is a trade-off between the number of signal lines and the transfer speed.

It depends on the resolution that you want. I let you decide on what h/w platform is most suitable for you project. I was able to get 5 fps with ILI9341 and ILI9488 SPI LCD w/ touch screen, using ESP32 and bodmer's library. This may not be the most desire configuration, but sometimes you're working with a budget with special circumstances. For my project, I need to conserve GPIOs. :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.