![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged foxglove_compressed_video_transport at Robotics Stack Exchange
![]() |
foxglove_compressed_video_transport package from foxglove_compressed_video_transport repofoxglove_compressed_video_transport |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 3.0.0 |
License | Apache-2 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | ROS2 image transport plugin using libav(ffmpeg) for generating foxglove CompressedVideo messages |
Checkout URI | https://github.com/ros-misc-utilities/foxglove_compressed_video_transport.git |
VCS Type | git |
VCS Version | release |
Last Updated | 2025-08-08 |
Dev Status | DEVELOPED |
Released | RELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Bernd Pfrommer
Authors
- Bernd Pfrommer
ROS2 image transport for Foxglove CompressedVideo messages
This plugin provides a ROS2 image transport for encoding messages in Foxglove’s CompressedVideo
message format, using the FFMpeg library.
These messages can be recorded in a rosbag for processing with e.g. Foxglove Studio.
Encoding is based on the ffmpeg_encoder_decoder repo, which explains the compression process in more detail. Looking at the ffmpeg_image_transport documentation may also be helpful.
There is also an unsupported decoder provided for testing purposes. Use at your own peril.
Supported systems
Continuous integration is tested under Ubuntu with the following ROS2 distros:
Installation
From packages
sudo apt-get install ros-${ROS_DISTRO}-foxglove-compressed-video-transport
From source
Set the following shell variables:
repo=foxglove_compressed_video_transport
url=https://github.com/ros-misc-utilities/${repo}.git
and follow the instructions here
Make sure to source your workspace’s install/setup.bash
afterwards.
If all goes well you should see the transport show up:
ros2 run image_transport list_transports
should give output (among other transport plugins):
"image_transport/foxglove"
- Provided by package: foxglove_compressed_video_transport
- Publisher:
This plugin encodes frames into foxglove compressed video packets
- Subscriber:
This plugin decodes frames from foxglove compressed video packets
Remember to install the plugin on both hosts, the one that is encoding and the one that is decoding (viewing).
Parameters
Publisher (camera driver)
Here is a list of the available encoding parameters:
-
encoder
: the libav (ffmpeg) encoder being used. The default islibx264
, which is on-CPU unaccelerated encoding. Depending on your hardware, your encoding options may include the hardware acceleratedh264_nvenc
orh264_vaapi
. You can list all available encoders withffmpeg --codecs
. In the h264 row, look for(encoders)
. -
preset
: default is empty (“”). Valid values can be for instanceslow
,ll
(low latency) etc. To find out what presets are available, run e.g.ffmpeg -hide_banner -f lavfi -i nullsrc -c:v libx264 -preset help -f mp4 - 2>&1
Note: deprecated, set parameter viaencoder_av_options
instead. -
profile
: For instancebaseline
,main
. See the ffmpeg website. Note: deprecated, set parameter viaencoder_av_options
instead. -
tune
: See the ffmpeg website. The default is empty(“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
gop_size
: The number of frames between keyframes. For foxglove, this must be set to 1. The larger this number the more latency you will have, but also the more efficient the transmission becomes. -
bit_rate
: The max bit rate [in bits/s] that the encoding will target. Default is ``8242880`. -
encoder_av_options
: Set comma-separated list of libav encoder options with:
as assignment operator, e.g.tune:<foo>,delay:<bar>
. -
delay
: Not sure what it does, but it doesn’t help with delay. Default is empty (“”). Note: deprecated, set parameter viaencoder_av_options
instead. -
pixel_format
: Forces a different pixel format for internal conversions. See the ffmpeg encoder/decoder repo and the ffmpeg_image_transport repo for more. -
qmax
: Max quantization rate. Defaults to 10. See ffmpeg documentation. The larger this number, the worse the image looks, and the more efficient the encoding. -
measure_performance
: For performance debugging (developers only). Defaults to false.
The parameters are under the foxglove
variable block. If you launch
your publisher node (camera driver), you can give it a parameter list on the way like so:
``` parameters=[ params_path, { ‘image_raw.foxglove.encoder’: ‘h264_vaapi’, # ‘libx264’ ‘image_raw.foxglove.profile’: ‘main’, ‘image_raw.foxglove.preset’: ‘ll’,
File truncated at 100 lines see the full file
Changelog for package foxglove_compressed_video_transport
3.0.0 (2025-08-08)
- adjust to new image_transport and encoder/decoder API, added tests
- adapt to new ffmpeg_encoder_decoder API
- adjustments for new image_transport API
- added tests
- rename "map" parameter to "decoders"
- parameters no longer have "." prefix
- deal with humble brokenness where base_topic is not prefixed with namespace, but namespace is removed
- package splitting functions into utilities file
- Contributors: Bernd Pfrommer
1.0.3 (2025-05-26)
- avoid ament_target_dependencies
- Add Constant Rate Factor, Co-authored-by: Angsa Deployment Team <<team@angsa-robotics.com>>
- Update README.md
- Contributors: Bernd Pfrommer, Tony Najjar
1.0.2 (2025-03-30)
- Merge branch 'master' into release
- Fix segfault: the publish_fn address passed to publish() cannot be cached!
- Contributors: Michal Sojka
1.0.1 (2024-11-18)
- Fill empty message fields
(#1)
- Fix missing timestamp and frame_id in subscriber and publisher
- Contributors: Bernd Pfrommer, eLEcTRiCZiTy
1.0.0 (2024-09-16)
- initial commit
- Contributors: Bernd Pfrommer