code: def run(self):
          
          if not self.camera.is_running:
              self.camera.start()
          while True:
              if not self.cmd_q.empty():
                  cmd = self.cmd_q.get()
                  if cmd[0] == 'stop':
                      self.out.close()
                      self.recording = False
                  elif cmd[0] == 'start':
                      filename = cmd[1]
                      self.out = si.FFmpegWriter(filename)
                      self.recording = True
                      self.count = 0
  
              if self.recording:
                  if self.count == 0:
                      image, _, _ = self.camera.frames()
                      
                      if self.data_buf is None:
                          self.data_buf = np.zeros([1, image.height, image.width, image.channels])
                      self.data_buf[0,...] = image.raw_data
                      self.out.writeFrame(self.data_buf)
  
                  self.count += 1
                  if self.count == self.rate:
                      self.count = 0
docs: Continually write images to the filename specified by a command queue.