h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2 h264_image_transport h264_msgs

Repository Summary

Description Adds H264 decoding to ROS2 image transport
Checkout URI https://github.com/clydemcqueen/h264_image_transport.git
VCS Type git
VCS Version master
Last Updated 2023-07-01
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags h264 ffmpeg v4l2 ros2
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
h264_image_transport 0.1.0
h264_msgs 0.1.0

README

h264_image_transport build status

Adds H264 decoding to ROS2 image transport. Also includes a simple node to copy H264 packets from a video4linux camera.

Possible future work: add H264 encoder

Example usage

Command line:

ros2 run image_transport republish h264 raw --ros-args -r in/h264:=/image_raw/h264 -r out:=/repub_raw

Launch file:

ros2 launch h264_image_transport example_launch.py

h264_cam_node parameters

Parameter Type Default Notes
input_fn string /dev/video2 Can be any ffmpeg format
fps string 30 Desired frame rate
size string 800x600 Width by height
frame_id string camera_frame Camera frame ID
camera_info_path string info.ini Path to camera info file

h264_cam_node topics

Topic Message Notes
image_raw/h264 h264_msgs::msg::Packet H264 packet
camera_info sensor_msgs::msg::CameraInfo Camera info message

Requirements

Tested on ROS2 Foxy, Galactic and Humble.

Requires libavdevice, libavformat, libavcodec, libavutil, libswscale.

Here’s one way to satisfy these requirements:

sudo apt install libavdevice-dev libavformat-dev libavcodec-dev libavutil-dev libswscale-dev

Note: rosdep won’t find keys for most of these libraries so package.xml declares dependencies on ffmpeg and libavdevice-dev. Strictly speaking ffmpeg is not required.

CONTRIBUTING

Any contribution that you make to this repository will be under the BSD license 2.0, as dictated by that license.


h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2

h264_image_transport repository

h264 ffmpeg v4l2 ros2