- Newest
- Most votes
- Most comments
For live video transmission from an ESP32-S3-EYE device, RTMP (Real-Time Messaging Protocol) is a viable option, but it may not be the most suitable choice for this specific hardware. The ESP32-S3 has limited resources, and RTMP can be relatively resource-intensive.
Instead, you might want to consider using RTP (Real-time Transport Protocol) for your live video transmission. RTP is generally more lightweight and better suited for embedded systems like the ESP32-S3. It's designed for delivering audio and video over IP networks and is widely supported in various streaming scenarios.
AWS Elemental MediaLive, a service often used for ingesting and processing live video streams, supports both RTMP and RTP as input protocols. This means you have flexibility in choosing the protocol that works best for your ESP32-S3-EYE device.
When developing your firmware, you'll need to implement the chosen protocol (RTP or RTMP) for sending the video stream from your ESP32-S3-EYE. If you decide to use AWS services for your live streaming solution, you can configure AWS Elemental MediaLive to ingest the RTP or RTMP stream from your device.
Remember to also consider factors such as network conditions, latency requirements, and the overall architecture of your surveillance camera system when choosing the most appropriate protocol for your specific use case.
Sources
Live Video Encoding – AWS Elemental MediaLive Features – AWS
RTMP Push and RTP Push input configuration - Live Streaming on AWS with Amazon S3
Architecture overview - Live Streaming on AWS with Amazon S3
For live video transmission from an ESP32-S3-EYE, RTSP (Real-Time Streaming Protocol) is often recommended over RTMP (Real-Time Messaging Protocol) due to its better suitability for embedded systems and lower resource requirements. Here's a breakdown of the options and recommendations:
-
RTSP (Real-Time Streaming Protocol):
- More suitable for embedded systems like ESP32
- Lower overhead and resource requirements
- Better support in the ESP-IDF framework
- Can be used with RTP (Real-time Transport Protocol) for actual data transmission
-
MJPEG (Motion JPEG) over HTTP:
- Simple to implement
- Compatible with most web browsers
- Higher bandwidth usage compared to other options
- Lower latency, but potentially lower quality
-
WebSockets:
- Can be used to stream video frames
- Good for web-based applications
- Relatively easy to implement
-
RTMP (Real-Time Messaging Protocol):
- More commonly used for streaming to services like YouTube or Twitch
- Higher resource requirements, which can be challenging for ESP32
- Less common in embedded systems
For the ESP32-S3-EYE, RTSP is often the recommended choice due to its balance of performance and resource usage. Here are some steps to implement RTSP streaming:
- Use the ESP-IDF framework, which provides better support for networking and camera interfaces.
- Utilize the esp32-camera library for capturing images from the camera module.
- Implement an RTSP server on the ESP32. You can find open-source RTSP server implementations for ESP32, such as the one in the following GitHub repository: https://github.com/geeksville/esp32-rtsp-server
- Configure your network settings and start the RTSP server.
- Stream the camera feed using the RTSP server.
You may find these other sources helpful:
[1] Title: "ESP32 Video Streaming Web Server Camera" URL: https://github.com/donny681/ESP32_CAMERA_QR Relevant Passage: "This project demonstrates how to stream video from an ESP32 board with a camera module to a web browser over WiFi using the HTTP protocol."
[2] Title: "Video Streaming on ESP32 with RTSP" URL: https://www.arducam.com/video-streaming-on-esp32-with-rtsp/ Relevant Passage: "This tutorial shows how to stream video from an ESP32 camera module using the RTSP (Real-Time Streaming Protocol) protocol."
[3] Title: "ESP32-CAM Video Streaming over RTSP" URL: https://www.instructables.com/ESP32-CAM-Video-Streaming-Over-RTSP/ Relevant Passage: "This Instructable will guide you through the process of setting up an ESP32-CAM board to stream video over RTSP (Real-Time Streaming Protocol)."
RTMP has significant overhead and will retry packets for frames already in the past. Plain RTP or UDP are lighter but have no error correction.
RTP-FEC or SRT would be ideal if the device supports it.
Failing that go with simple UDP.
Relevant content
- asked 4 years ago
- asked 2 years ago
- asked a year ago
- AWS OFFICIALUpdated a year ago
