要保存Tello无人机的视频,可以使用Python代码和Tello SDK来实现。以下是一个简单的示例代码:
from threading import Thread
import cv2
from djitellopy import Tello
# 创建Tello对象
tello = Tello()
# 连接Tello无人机
tello.connect()
# 开始接收视频流
tello.streamon()
# 创建一个cv2窗口来显示视频
cv2.namedWindow("Tello Video Stream")
def video_stream():
# 循环接收视频流
while True:
# 读取视频帧
frame = tello.get_frame_read().frame
# 在窗口中显示视频帧
cv2.imshow("Tello Video Stream", frame)
# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 创建一个线程来接收视频流
video_thread = Thread(target=video_stream)
# 启动线程
video_thread.start()
# 保存视频的文件名
output_file = "tello_video.avi"
# 创建一个VideoWriter对象来保存视频
fourcc = cv2.VideoWriter_fourcc(*'XVID')
video_writer = cv2.VideoWriter(output_file, fourcc, 20.0, (960, 720))
# 循环保存视频帧,直到按下'q'键停止
while True:
# 读取视频帧
frame = tello.get_frame_read().frame
# 写入视频帧到VideoWriter对象
video_writer.write(frame)
# 在窗口中显示视频帧
cv2.imshow("Tello Video Stream", frame)
# 按下'q'键退出循环
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 停止保存视频,释放资源
video_writer.release()
# 关闭窗口
cv2.destroyAllWindows()
以上代码使用了djitellopy
库来连接和控制Tello无人机,并使用cv2
库来显示和保存视频帧。代码创建了一个窗口来显示Tello的视频流,并在按下'q'键时退出循环。同时,代码还创建了一个VideoWriter对象来保存视频帧到一个AVI文件中。要保存视频,只需按下'q'键停止循环后,视频将保存为指定的文件名。