GithubHelp home page GithubHelp logo

walter1604 / esp32-tv Goto Github PK

View Code? Open in Web Editor NEW

This project forked from atomic14/esp32-tv

0.0 0.0 0.0 791 KB

ESP32 - Sound and Vision - Video Streaming to the ESP32

Shell 0.13% C++ 4.73% Python 0.73% C 0.01% Jupyter Notebook 94.40%

esp32-tv's Introduction

Build Firmware

ESP32 Video Streaming!

Yes - it actually works! Streaming video with audio over WiFi to an ESP32!

WiFi Streaming

And - playing video from an SD Card!

SD Card Video

There's two projects in this repo - one for the ESP32 firmware and another for the server.

The README files in each project have more details.

How Does It Work?

The server is pretty simple, it has a few endpoints:

  • /channel_info - returns a list of channel lengths in audio samples
  • /frame/<int:channel_index>/<int:ms> - returns a JPEG image for the given channel at the given time (in ms)
  • /audio/<int:channel_index>/<int:start>/<int:length> - returns 8 bit PCM audio at 16KHz for the given channel starting from the given sample index and for the given length (in samples)

The ESP32 firmware connects to the server and requests the channel info. The video playback is locked to the audio sample playback. The audio is played back using the I2S peripheral and we use that to know how much time has elapsed to request the correct frames. This way the video and audio are always in sync.

You can get around 15 frames per second at 280x240 resolution, the main limitation is WiFi bandwidth and decoding the JPEGs.

Support for SD Cards

In the README file for the firmware there are instructions on how to convert a video file to a MJPEG AVI file - if you've got a device with an SD Card you can use this instead of WiFi streaming.

esp32-tv's People

Contributors

cgreening avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.