def METHOD_NAME(self, input):
    capture = cv2.VideoCapture(input)
    file_name = input.split('/')[-1]
    # Get Video info : resolution, fps, frame count
    width = int(capture.get(cv2.CAP_PROP_FRAME_WIDTH))
    height = int(capture.get(cv2.CAP_PROP_FRAME_HEIGHT))
    fps = int(capture.get(cv2.CAP_PROP_FPS))
    frame_count = int(capture.get(cv2.CAP_PROP_FRAME_COUNT))
    logger.info("video fps: %d, frame_count: %d" % (fps, frame_count))
    if not os.path.exists(self.output_dir):
        os.makedirs(self.output_dir)
    out_path = os.path.join(self.output_dir, file_name)
    fourcc = cv2.VideoWriter_fourcc(* 'mp4v')
    writer = cv2.VideoWriter(out_path, fourcc, fps, (width, height))
    frame_id = 0
    results = None
    while (1):
        if frame_id % 10 == 0:
            logger.info('frame id: {}'.format(frame_id))
        ret, frame = capture.read()
        if not ret:
            break
        frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        frame_input = [{'input.image': frame_rgb, 'input.fn': input}]
        results = self.exe.run(frame_input, frame_id)
        writer.write(results[0]['output'])
        frame_id += 1
    writer.release()
    logger.info('save result to {}'.format(out_path))
    return results