code: def run_video(self, video):
      base_name = os.path.basename(video).split(".")[0]
      output_path = os.path.join(self.output, base_name)
      pred_frame_path = os.path.join(output_path, "frames_pred")
  
      if not os.path.exists(output_path):
          os.makedirs(output_path)
  
      if not os.path.exists(pred_frame_path):
          os.makedirs(pred_frame_path)
  
      cap = cv2.VideoCapture(video)
      fps = cap.get(cv2.CAP_PROP_FPS)
  
      out_path = U.video2frames(video, output_path)
  
      frames = sorted(glob.glob(os.path.join(out_path, "*.png")))
  
      for frame in tqdm(frames):
          pred_img = self.run_image(frame)
          pred_img = cv2.cvtColor(pred_img, cv2.COLOR_BGR2RGB)
          pred_img = Image.fromarray(pred_img)
          frame_name = os.path.basename(frame)
          pred_img.save(os.path.join(pred_frame_path, frame_name))
  
      frame_pattern_combined = os.path.join(pred_frame_path, "%08d.png")
  
      vid_out_path = os.path.join(
          output_path, "{}_deoldify_out.mp4".format(base_name)
      )
      U.frames2video(
          frame_pattern_combined, vid_out_path, str(int(fps))
      )
      print("Save video result at {}.".format(vid_out_path))
  
      return frame_pattern_combined, vid_out_path
  
imports: import glob
  import os
  import cv2
  import numpy
  import paddle
  import paddle.nn
  from PIL import Image
  from tqdm import tqdm
  from .None import utils
  from .base_module import build_model
  from paddlehub.module.module import moduleinfo
  from paddlehub.module.module import serving
label_desc: Use image node_id 6 for calling the DeOldifyPredictor obj's underlying member method code with example usage: obj.run_video(video) and returns: frame_pattern_combined,  vid_out_path