# Test video functionalities with `qrb_ros_video` `qrb_ros_video` is a ROS package that provides hardware-accelerated video processing for Qualcomm robotics platforms. This sample application provides the following features: - Hardware-accelerated H.264/H.265 video encoding and decoding using Qualcomm VPU - Zero-copy memory management for high-performance video processing - Seamless integration with ROS 2 ecosystem and camera pipelines - Support for real-time video streaming and file I/O operations ## Pipeline flow for `qrb_ros_video` The figure shows the pipeline flow for `qrb_ros_video`. ![image18](data:image/png;base64,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) **`qrb_ros_video` pipeline** - **Video encoder node**: Converts raw images to compressed H.264/H.265 streams using Qualcomm VPU hardware. - **Video decoder node**: Decodes compressed video streams back to raw image frames. - **Camera support**: Seamlessly accepts input from the QRB ROS Camera package with zero-copy transport. - **File I/O components**: Implements CompressedWriter and ImageWriter for saving video data to files. - **Hardware acceleration**: Leverages Qualcomm Video Processing Unit (VPU) for efficient encoding/decoding. - **Memory management**: Uses DMA buffers and qrb\_ros\_transport for zero-copy operations. ## `qrb_ros_video` APIs **ROS Interfaces** Topics: Encoder | Topic | Message type | Description | | --- | --- | --- | | `/input` | `qrb_ros::transport::type::Image` | Uncompressed YUV frames | | `/output` | `sensor_msgs::msg::CompressedImage` | Compressed H.264/H.265 video stream | Topics: Decoder | Topic | Message type | Description | | --- | --- | --- | | `/input` | `sensor_msgs::msg::CompressedImage` | Indicates the input of a compressed H.264/H.265 video stream. | | `/output` | `qrb_ros::transport::type::Image` | Indicates the output decoded YUV frames. | **ROS parameters** Video encoder parameters | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `format` | string | "h264" | Video codec format (h264/h265) | | `pixel_format` | string | "nv12" | Input pixel format (nv12/p010) | | `width` | int | 1920 | Video width | | `height` | int | 1080 | Video height | | `framerate` | int | 30 | Frames per second | | `bitrate` | int | 5000000 | Target bit rate in bits/second | | `rate_control` | string | "variable" | Rate control mode (variable/cbr) | | `profile` | string | "main" | Codec profile (baseline/main/high) | | `level` | string | "4.1" | Codec level | Video decoder parameters | Parameter | Type | Default | Description | | --- | --- | --- | --- | | `format` | string | "h264" | Indicates the input codec format. | | `pixel-format` | string | "nv12" | Indicates the output pixel format. | ## Prerequisites - You have set up the device, installed ROS2 Jazzy and QIR SDK on the device according to [Install the QIR SDK](https://docs.qualcomm.com/doc/80-90441-2/topic/2-install-the-qir-sdk.html#install-qir-sdk). - You have connected the device to the display monitor. ## Run out-of-the-box `qrb_ros_video` **Steps** 1. Install the `qrb_ros_video` packages. sudo apt install ros-jazzy-qrb-ros-video ros-jazzy-qrb-ros-video-test Copy to clipboard 2. Start the local video file recording. mkdir -p /data sudo chmod 777 /data source /opt/ros/jazzy/setup.bash # push YUV sample file 1920_1080_nv12.yuv to /data/ directory scp IP@ubuntu:/home/ubuntu sudo mv /home/ubuntu/1920_1080_nv12.yuv /data ros2 launch qrb_ros_video encoder_launch.py Copy to clipboard 3. Start the local video file playback. mkdir -p /data sudo chmod 777 /data source /opt/ros/jazzy/setup.bash # push YUV sample file 1920_1080.mp4 to /data/ directory scp IP@ubuntu:/home/ubuntu sudo mv /home/ubuntu/1920_1080.mp4 /data ros2 launch qrb_ros_video decoder_launch.py Copy to clipboard ## Build from source **Steps** 1. Install dependencies. sudo apt install build-essential cmake pkg-config # Install GStreamer development packages sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-devs # Install ROS2 Jazzy (if not already installed) # Follow instructions at https://docs.ros.org/en/jazzy/Installation.html sudo apt install ros-jazzy-rclcpp ros-jazzy-rclcpp-components ros-jazzy-ament-cmake-auto ros-jazzy-std-msgs ros-jazzy-sensor-msgs ros-jazzy-qrb-ros-transport-image-type Copy to clipboard 2. Download the source code and build with colcon. source /opt/ros/jazzy/setup.bash git clone https://github.com/qualcomm-qrb-ros/qrb_ros_video qrb_ros_video colcon build --packages-select qrb_ros_video Copy to clipboard 3. Run and debug. source install/setup.bash # push YUV sample file 1920_1080_nv12.yuv to /data/ directory ros2 launch qrb_ros_video encoder_launch.py Copy to clipboard Last Published: Sep 07, 2026 [Previous Topic Test core audio functionalities with qrb\_ros\_audio\_service](https://docs.qualcomm.com/bundle/publicresource/80-90441-2/topics/test-core-audio-functionalities-with-qrb_ros_audio_service.md) [Next Topic Evaluate ROS component performance with qrb\_ros\_benchmark](https://docs.qualcomm.com/bundle/publicresource/80-90441-2/topics/evaluate-ros-component-performance-with-qrb_ros_benchmark.md)