Possibility of recording 2 videos with different resolutions from a copter

Hello Team,

I am a student working on a university research and will like to enquire if i can use an ardupilot equipped copter to record 2 videos at the same time at different resolutions. I’m doing this as i need the lower resolution video for the research and the higher resolution video for my manual analysis and do not want to have to transcode the high resolution video after i receive it.


Hi there,

So ArduPilot in general is mostly flight code for multicopters, planes, submarines, cars, boats, antenna trackers (and a few more). We have some interfaces for controlling cameras and gimbals but normally don’t directly deal with recording videos.

The only part of ArduPilot that deals with video is APSync that can stream video over wifi but I’m afraid it doesn’t record the video and it only handles one video stream. Also the Optional-Hardware >> Video section of the wiki has some suggested open source (or almost open source) video systems.

I’ve changed the category to “ArduCopter” because, as a “Blog” it was appearing on the front page of ardupilot.org.

Thank @rmackay9.
I can do this using the python script below if i am working on my webcam. I am however unsure if the same thing will work if i am using an ArduCopter as i do not have the funds to secure one yet and i am still interacting with my lecturer to see if i can secure one. I was hoping to get all the variables straight so i can start working immediately i secure one.

import cv2
import numpy as np
# Create a VideoCapture object
cap = cv2.VideoCapture(0)
# Check if camera opened successfully
if (cap.isOpened() == False): 
  print("Unable to read camera feed")
# Default resolutions of the frame are obtained.The default resolutions are system dependent.
# We convert the resolutions from float to integer.
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
# Define the codec and create VideoWriter object.The output is stored in 'outpy.avi' file.
out = cv2.VideoWriter('output1.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 10, (frame_width,frame_height))
out2 = cv2.VideoWriter('output2.avi',cv2.VideoWriter_fourcc('M','J','P','G'), 10, (640,480))
  ret, frame = cap.read()
  if ret == True: 
    # Write the frame into the file 'output.avi'
    # Display the resulting frame    
    # Press Q on keyboard to stop recording
    if cv2.waitKey(1) & 0xFF == ord('q'):
  # Break the loop
# When everything done, release the video capture and video write objects
# Closes all the frames