This guide describes how to use a custom Python ROS 2 node to record image topics from a rosbag into a video file. The node subscribes to an image topic, converts incoming images to OpenCV format using cv_bridge, and writes them to a video file with cv2.VideoWriter.
Run the Video Recorder
Window 1: Start the record_video_from_rosbag node to listen to the image topic:
ros2 run vision_package record_video_from_rosbag --ros-args -p image_topic:=/image_topic -p output_file:=output.avi

Window 2: Navigate to the directory containing your rosbag and play it:
ros2 bag play .

Stop the Recording
Once the rosbag finishes playing, press Ctrl+C in Window 1 to stop the node and finalize the video file.
Convert to MP4 (Optional)
You can convert the resulting AVI file to MP4 using ffmpeg:
ffmpeg -i output.avi output.mp4