All Projects → tuupola → esp_video

tuupola / esp_video

Licence: MIT-0 license
Proof of concept video player for ESP32 boards

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
CMake
9771 projects

Projects that are alternatives of or similar to esp video

esp32 mmd
esp32でmmd
Stars: ✭ 93 (+181.82%)
Mutual labels:  esp-idf
Gesture-Detecting-Macro-Keyboard
Glorified Bluetooth macro keyboard with machine learning (TensorFlow Lite for Microcontrollers) running on an ESP32.
Stars: ✭ 68 (+106.06%)
Mutual labels:  esp-idf
esp effects
Old school demo effects for ESP32
Stars: ✭ 31 (-6.06%)
Mutual labels:  esp-idf
ESP32-CAM-MJPEG-Stream-Decoder-and-Control-Library
The library is MJPEG stream decoder based on libcurl and OpenCV, and written in C/C++.
Stars: ✭ 40 (+21.21%)
Mutual labels:  mjpeg-player
RoverController
LoRa/WiFi remote controller for driving my rover
Stars: ✭ 87 (+163.64%)
Mutual labels:  esp-idf
ESP32 IMU BARO GPS VARIO
GPS altimeter/variometer with LCD display, routes with waypoints, data/gps track logging, bluetooth NMEA sentence transmission, wifi AP + webpage configuration
Stars: ✭ 72 (+118.18%)
Mutual labels:  esp-idf
esp32-owb
Maxim One Wire Bus driver for ESP32.
Stars: ✭ 115 (+248.48%)
Mutual labels:  esp-idf
opcua-esp32
Embedded OPC UA Server on ESP32 based on open62541 stack
Stars: ✭ 82 (+148.48%)
Mutual labels:  esp-idf
ssd1306-esp-idf-i2c
Sample code for driving 128x64 OLED display (SSD1306 driver) via ESP-IDF's I2C master driver
Stars: ✭ 93 (+181.82%)
Mutual labels:  esp-idf
ESP32 CC1101
ESP32 driver library for TI CC1100 Low-Power Sub-1 GHz RF Transceiver
Stars: ✭ 39 (+18.18%)
Mutual labels:  esp-idf
esp-idf-zh
ESP-IDF 中文文档
Stars: ✭ 102 (+209.09%)
Mutual labels:  esp-idf
bluepad32
Bluetooth gamepad support for the ESP32 (mirror)
Stars: ✭ 117 (+254.55%)
Mutual labels:  esp-idf
esp-epaper-display
ESP-IDF component for waveshare epaper displays
Stars: ✭ 16 (-51.52%)
Mutual labels:  esp-idf
esp-homekit-arduino-sdk
Arduino wrapper for ESP-IDF HomeKit library
Stars: ✭ 34 (+3.03%)
Mutual labels:  esp-idf
esp32-ota
ESP32 OTA based on ThingsBoard Open-source IoT Platform
Stars: ✭ 45 (+36.36%)
Mutual labels:  esp-idf
esp-idf-sys
Bindings for ESP-IDF (Espressif's IoT Development Framework)
Stars: ✭ 132 (+300%)
Mutual labels:  esp-idf
micro ros espidf component
micro-ROS ESP32 IDF component and sample code
Stars: ✭ 122 (+269.7%)
Mutual labels:  esp-idf
MQTT VPN
IP over MQTT for ESP controllers and Linux
Stars: ✭ 95 (+187.88%)
Mutual labels:  esp-idf
Homekit
Homekit for ESP32 with Arduino framework
Stars: ✭ 80 (+142.42%)
Mutual labels:  esp-idf
esp littlefs
LittleFS port for ESP-IDF
Stars: ✭ 143 (+333.33%)
Mutual labels:  esp-idf

Videoplayer for ESP32

This is a proof of concept videoplayer which plays raw RGB565 and MJPG video files from the SD card. You can convert any video file to to both formats with ffmpeg. Currently videos are played without sound.

Big Buck Bunny on TTGO T4

You can also see how it works in Vimeo.

Configure and compile

$ git clone git clone https://github.com/tuupola/esp_video.git --recursive
$ cd esp_video
$ cp sdkconfig.ttgo-t4-v13 sdkconfig
$ make -j8 flash

If you have some other board or display run menuconfig yourself.

$ git clone git clone https://github.com/tuupola/esp_video.git --recursive
$ cd esp_video
$ make menuconfig
$ make -j8 flash

Download and convert video

I used Big Buck Bunny in the examples. Converted video should be copied to a FAT formatted SD card. Note that by default ESP-IDF does not support long filenames. Either enable them from menuconfig or use short 8.3 filenames.

$ wget https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4 -O bbb.mp4
$ ffmpeg -i BigBuckBunny_320x180.mp4 -f rawvideo -pix_fmt rgb565be -vcodec rawvideo bbb24.raw

The original video is 24 fps. With SPI interface the SD card reading speed seems to be the bottleneck. You can create 12 fps raw video version with the following.

$ ffmpeg -i BigBuckBunny_320x180.mp4 -f rawvideo -pix_fmt rgb565be -vcodec  rawvideo -r 12 bbb12.raw

With motion jpeg video ESP32 itself is the bottleneck. With my testing I was able to decode at approximately 8 fps. You can create a 8 fps MJPG video with the following.

$ ffmpeg -i BigBuckBunny_320x180.mp4 -r 8 -an -f mjpeg -q:v 1 -pix_fmt yuvj420p -vcodec mjpeg -force_duplicated_matrix 1 -huffman 0 bbb08.mjp

There is a reasonable size difference between raw and motion jpeg files.

$ du -h bbb12.raw
798M	bbb12.raw

$ du -h bbb12.mjp
117M	bbb12.mjp

$ du -h bbb08.mjp
 80M	bbb08.mjp

Code expects to find files bbb12.raw and bbb08.mjp in the sdcard. You can change which file is played via menuconfig Component config -> Video demo configuration.

Big Buck Bunny

Copyright (C) 2008 Blender Foundation | peach.blender.org
Some Rights Reserved. Creative Commons Attribution 3.0 license.
http://www.bigbuckbunny.org/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].