[BUG] ZED ROS 2 Driver Fails to Launch in Isaac ROS Container - "unknown encoder: libx264"

System Environment:

  • Hardware: Jetson Orin Nano 8GB Developer Kit
  • Software: Fresh flash of JetPack 6.2.1 (L4T 36.4.4)
  • ROS Distro: ROS 2 Humble
  • Docker Image: nvcr.io/nvidia/isaac/ros:aarch64-ros2_humble_77e6a678c2058abf96bedcb8f7dd4330

Problem Summary:

After successfully building the ZED ROS 2 driver from source inside the official Isaac ROS dev container (by following the official “Isaac ROS ZED Setup” guide), the driver fails to launch. The error indicates a missing libx264 encoder, pointing to a bug in the base container’s ffmpeg system library.

Steps to Reproduce:

  1. Start with a clean Jetson on JetPack 6.2.1.
  2. Meticulously follow the official “Isaac ROS ZED Setup” guide:
  • Create a clean workspace.
  • Clone zed-ros2-wrapper -b humble-v4.2.5.
  • Clone isaac_ros_common.
  • Launch the container with run_dev.sh.
  • Install the ZED SDK inside the container with install-zed-aarch64.sh.
  • Install dependencies and build the workspace with rosdep and colcon build. The build completes successfully.
  1. Source the workspace: source install/setup.bash.
  2. Attempt to launch the ZED driver: ros2 launch zed_wrapper zed_camera.launch.py camera_model:=zed2i.

Observed Result:

The launch fails with multiple instances of the following error: [ERROR] [zed.zed_node]: Failed to load plugin image_transport/ffmpeg_pub, error string: unknown encoder: libx264

Expected Result:

The ZED driver should launch successfully without errors.

Additional Diagnostics:

Running ffmpeg -encoders | grep x264 inside the container returns nothing. This confirms the libx264 codec is not available to the ffmpeg program, even after libx264-dev is installed via apt. This indicates the ffmpeg library in the base Docker image was not compiled correctly.