Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
jazzy

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
kilted

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
rolling

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
dashing

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
iron

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

web_video_server package from web_video_server repo

web_video_server

ROS Distro
humble

Package Summary

Tags No category tags.
Version 2.1.0
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/RobotWebTools/web_video_server.git
VCS Type git
VCS Version ros2
Last Updated 2025-05-28
Dev Status MAINTAINED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

HTTP Streaming of ROS Image Topics in Multiple Formats

Additional Links

Maintainers

  • Błażej Sowa

Authors

  • Mitchell Wills

web_video_server - HTTP Streaming of ROS Image Topics in Multiple Formats

This node provides HTTP streaming of ROS image topics in various formats, making it easy to view robot camera feeds and other image topics in a web browser without requiring special plugins or extensions.

Features

  • Stream ROS image topics over HTTP in multiple formats:
    • MJPEG (Motion JPEG)
    • VP8 (WebM)
    • VP9 (WebM)
    • H264 (MP4)
    • PNG streams
    • ROS compressed image topics
  • Adjustable quality, size, and other streaming parameters
  • Web interface to browse available image topics
  • Single image snapshot capability
  • Support for different QoS profiles in ROS 2

Installation

Dependencies

  • ROS (Noetic) or ROS 2 (Humble+)
  • OpenCV
  • FFmpeg/libav
  • Boost
  • async_web_server_cpp

Installing packages

For newer ROS2 distributions (humble, jazzy, rolling) it is possible to install web_video_server as a package:

sudo apt install ros-${ROS_DISTRO}-web-video-server

Building from Source

Create a ROS workspace if you don’t have one:

mkdir -p ~/ros_ws/src
cd ~/ros_ws/src

Clone this repository:

# ROS 2
git clone https://github.com/RobotWebTools/web_video_server.git
# ROS 1
git clone https://github.com/RobotWebTools/web_video_server.git -b ros1

Install dependencies with rosdep:

cd ~/ros_ws
rosdep update
rosdep install --from-paths src -i

Build the package and source your workspace:

colcon build --packages-select web_video_server
source install/setup.bash

Usage

Starting the Server

# ROS 1
rosrun web_video_server web_video_server

# ROS 2
ros2 run web_video_server web_video_server

Configuration

Server Configuration Parameters

Parameter Type Default Possible Values Description
port int 8080 Any valid port number HTTP server port
address string “0.0.0.0” Any valid IP address HTTP server address (0.0.0.0 allows external connections)
server_threads int 1 1+ Number of server threads for handling HTTP requests
ros_threads int 2 1+ Number of threads for ROS message handling
verbose bool false true, false Enable verbose logging
default_stream_type string “mjpeg” “mjpeg”, “vp8”, “vp9”, “h264”, “png”, “ros_compressed” Default format for video streams
publish_rate double -1.0 -1.0 or positive value Rate for republishing images (-1.0 means no republishing)

Running with Custom Parameters

You can configure the server by passing parameters via the command line:

```bash

ROS 1

rosrun web_video_server web_video_server _port:=8081 _address:=localhost _server_threads:=4

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package web_video_server

2.1.0 (2025-05-21)

  • Use target_link_libraries instead of ament_target_dependencies (#182)
  • Fix compile warnings (#176)
  • Use chrono steady clock for frame timing (#173)
  • Add pkg-config dependency (#175)
  • Separate web_video_server into a component and an executable (#168)
  • Contributors: Błażej Sowa, Fabian Freihube, Joe Dinius, Ph.D., Lars Lorentz Ludvigsen, Mat198

2.0.1 (2024-10-26)

  • Add ros_environment to test dependencies (#166)
  • Contributors: Błażej Sowa

2.0.0 (2024-10-11)

  • Replace boost with std (#164)
  • Add ament_cpplint test, resolve TODOs (#162)
  • Add license headers to all C++ source files, update copyrights (#161)
  • Add support for alpha pngs by adding per stream type decode functions (backport #106) (#163)
  • Add link to /stream in stream list (backport #118) (#160)
  • Add support for jpg compression format (backport #142) (#159)
  • Reformat the code with uncrustify (#158)
  • Use hpp extension for headers (#157)
  • Fix request logging, remove global parameters (#156)
  • Replace nh with node (#155)
  • Fix declaring and retrieving node parameters (#154)
  • Fix usage of deprecated libavcodec functions (#150)
  • Use cv_bridge hpp headers when available (#149)
  • Use target_link_libraries instead of ament_target_dependencies where applicable
  • Don't install headers
  • Add CI workflow and ament_lint tests (#148)
  • Update package maintainer
  • allow topic searches to continue past invalid multi-type topics. (#146)
  • Add QoS profile query parameters (#133)
  • Fix build for ROS2 Humble (#129)
  • Fix build for ROS2 Foxy (#111)
  • Contributors: Błażej Sowa, Domenic Rodriguez, Robert Brothers, Sebastian Castro, Tina Tian, TobinHall, Matthew Bries

1.0.0 (2019-09-20)

  • Port to ROS 2

0.2.1 (2019-06-05)

  • Restream buffered frames with minimum publish rate (#88)
    • Restream buffered frames with minimum publish rate
    • Implement restreaming for ros_compressed_streamer
  • Update travis config (#89)
  • Fall back to mjpeg if ros_compressed is unavailable (#87)
  • Contributors: Jihoon Lee, Viktor Kunovski, sfalexrog

0.2.0 (2019-01-30)

  • Add "default_stream_type" parameter (#84) This allows users to specify default stream type in their .launch files. Using a "ros_compressed" stream type sometimes results in a much lower resource consumption, and having it set as a default is much nicer for end users.
  • Add a workaround for MultipartStream constant busy state (#83)
    • Add a workaround for MultipartStream constant busy state
    • Remove C++11 features
  • lax rule for topic name (#77)
  • Add PngStreamer (#74)
  • fix SteadyTimer check for backported ROS versions (#71) i.e. on current kinetic
  • Pkg format 2 (#68)
    • use package format 2
    • add missing dependency on sensor_msgs
  • fixed undeclared CODEC_FLAG_GLOBAL_HEADER (#65)
  • Contributors: Andreas Klintberg, Dirk Thomas, Felix Ruess, Kazuto Murase, Viktor Kunovski, sfalexrog

0.1.0 (2018-07-01)

  • Avoid queuing of images on slow ethernet connection (#64)

  • use SteadyTimer (if available) for cleaning up inactive streams (#63)

File truncated at 100 lines see the full file

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged web_video_server at Robotics Stack Exchange

OSZAR »