Use lower resolution: for many OpenCV application you need something like 512x512.
Skip frames if you have delay. Skip first 300 frames. Use WiFi extender. Set video quality slightly lower.However I personally like approach with multi threading (no skip frames needed):Python:drone.set_video_encoder_rate(1)
Python:def recv_thread(): global frameA global run_recv_thread global drone print('start recv_thread()') drone = tellopy.Tello() drone.connect() drone.subscribe(drone.EVENT_FLIGHT_DATA, handler) drone.set_video_encoder_rate(1) drone.set_loglevel(drone.LOG_WARN) container = av.open(drone.get_video_stream()) while run_recv_thread: for f in container.decode(video=0): frameA = f time.sleep(0.01) ... threading.Thread(target=recv_thread).start() ... while run_cv_thread: if frameA is None: time.sleep(0.01) else: #do your opencv stuff with frameA
Thanks a lot