1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import cv2
import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError

# Initialize ROS node
rospy.init_node('video_publisher', anonymous=True)

# Create a publisher for the video stream
video_pub = rospy.Publisher('video_stream', Image, queue_size=10)

# Initialize OpenCV video capture
cap = cv2.VideoCapture('rtsp://admin:qwer1234!.@192.168.1.67:554')

# Initialize CvBridge for image conversion
bridge = CvBridge()

# Loop to read and publish video frames
while not rospy.is_shutdown():
# Read a frame from the video
ret, frame = cap.read()

# Convert the frame to a ROS image message
try:
ros_image = bridge.cv2_to_imgmsg(frame, "bgr8")
except CvBridgeError as e:
rospy.logerr(e)

# Publish the ROS image message
video_pub.publish(ros_image)

# Release the OpenCV video capture and shutdown ROS node
cap.release()
rospy.shutdown()