Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Robotic Tooling
  3. web_video_server

web_video_server

BSD-3-ClauseC++

A ROS node that streams robot camera feeds and image topics over HTTP in multiple video formats for web browser viewing.

Visit WebsiteGitHubGitHub
390 stars218 forks0 contributors

What is web_video_server?

web_video_server is a ROS node that streams image topics from robotics systems over HTTP in multiple video formats like MJPEG, VP8, VP9, and H264. It allows developers to view real-time camera feeds and sensor data directly in web browsers without requiring special plugins, simplifying remote monitoring and debugging of robots.

Target Audience

Robotics developers and researchers working with ROS or ROS 2 who need to visualize robot camera feeds, sensor data, or image topics remotely via web interfaces.

Value Proposition

It provides a lightweight, plugin-based solution that supports multiple streaming formats and adjustable parameters, making it easy to integrate robot visualization into web applications without complex setup or proprietary tools.

Overview

HTTP Streaming of ROS Image Topics in Multiple Formats

Use Cases

Best For

  • Viewing real-time robot camera feeds in a web browser
  • Remote monitoring and debugging of ROS-based robotics systems
  • Building web interfaces for robot teleoperation or data visualization
  • Streaming sensor data (e.g., LIDAR, depth cameras) over HTTP
  • Creating dashboards that display multiple robot video streams
  • Educational or research projects requiring browser-accessible robot visuals

Not Ideal For

  • Systems not using ROS or ROS 2, as it relies entirely on ROS message handling and topic subscriptions.
  • Real-time control applications where sub-second latency is critical, due to inherent HTTP and browser processing delays.
  • Projects requiring streaming of non-image ROS topics like point clouds or IMU data, as it only supports image data types.
  • Environments with strict security policies that cannot expose HTTP ports for streaming, due to its unencrypted HTTP interface by default.

Pros & Cons

Pros

Multi-format Streaming

Supports diverse formats like MJPEG, VP8, VP9, H264, and PNG, allowing compatibility with various browsers and applications without plugins, as listed in the features.

Plugin-based Extensibility

Features a modular architecture with custom streamer plugins, enabling easy addition of new formats, as highlighted in the README's plugin tutorial link.

Adjustable Parameters

Allows real-time control over stream quality, size, bitrate, and inversion via URL parameters, providing flexibility for different use cases, detailed in the configuration tables.

Web Interface

Includes a browser-based interface to browse ROS topics and access streams or snapshots, simplifying navigation without manual URL construction, as shown in the usage examples.

ROS 2 QoS Support

Compatible with different Quality of Service profiles in ROS 2, ensuring reliable messaging for robotics applications, mentioned in the features and parameter tables.

Cons

Complex Dependency Setup

Requires installation of multiple libraries like OpenCV, FFmpeg, Boost, and async_web_server_cpp, which can be challenging and error-prone across different systems, as noted in the dependencies section.

Limited to Image Topics

Only handles ROS image topics, so it cannot stream other sensor data types without custom plugins, restricting its use to visual data streaming.

Scalability Concerns

Default configuration uses a single server thread, which may not efficiently handle high concurrent streams without manual tuning of server_threads and ros_threads parameters.

Basic Documentation

Advanced topics like custom plugin development are only briefly linked, requiring users to seek external resources for in-depth guidance, as seen with the tutorial reference.

Frequently Asked Questions

Quick Stats

Stars390
Forks218
Contributors0
Open Issues20
Last commit2 months ago
CreatedSince 2014

Tags

#robotics#ros2#robot-operating-system#mjpeg#ros#video-streaming#web-interface#http-streaming

Built With

O
OpenCV
R
ROS
F
FFmpeg
B
Boost
R
ROS 2

Links & Resources

Website

Included in

Robotic Tooling3.8k
Auto-fetched 11 hours ago

Related Projects

OBS-StudioOBS-Studio

OBS Studio - Free and open source software for live streaming and screen recording

Stars75,944
Forks10,073
Last commit3 days ago
bokehbokeh

Interactive Data Visualization in the browser, from Python

Stars20,446
Forks4,261
Last commit20 hours ago
plotly.pyplotly.py

The interactive graphing library for Python :sparkles:

Stars18,768
Forks2,838
Last commit4 days ago
openmctopenmct

A web based mission control framework.

Stars13,112
Forks1,482
Last commit2 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub