def METHOD_NAME(self, split: str = "train") -> DataparserOutputs:
    CONSOLE.print(
        "[bold red]DEPRECATION WARNING: The Record3D dataparser will be deprecated in future versions. "
        "Use `ns-data-process record3d` to convert the data into the nerfstudio format instead."
    )
    image_dir = self.config.data / "rgb"
    if not image_dir.exists():
        raise ValueError(f"Image directory {image_dir} doesn't exist")
    image_filenames = []
    for f in image_dir.iterdir():
        if f.stem.isdigit():  # removes possible duplicate images (for example, 123(3).jpg)
            image_filenames.append(f)
    image_filenames = sorted(image_filenames, key=lambda fn: int(fn.stem))
    image_filenames = np.array(image_filenames)
    num_images = len(image_filenames)
    metadata_path = self.config.data / "metadata.json"
    metadata_dict = load_from_json(metadata_path)
    poses_data = np.array(metadata_dict["poses"])
    # (N, 3, 4)
    poses = np.concatenate(
        [Rotation.from_quat(poses_data[:, :4]).as_matrix(), poses_data[:, 4:, None]],
        axis=-1,
    ).astype(np.float32)
    if self.config.max_dataset_size != -1 and num_images > self.config.max_dataset_size:
        # Evenly select max_dataset_size images from dataset, including first
        # and last indices.
        idx = np.round(np.linspace(0, num_images - 1, self.config.max_dataset_size)).astype(int)
        poses = poses[idx]
        image_filenames = image_filenames[idx]
        num_images = len(image_filenames)
    idx_test = np.arange(num_images)[:: self.config.val_skip]
    idx_train = np.array([i for i in np.arange(num_images) if i not in idx_test])
    idx = idx_train if split == "train" else idx_test
    if num_images != poses.shape[0]:
        raise RuntimeError(f"Different number of images ({num_images}), and poses ({poses.shape[0]})")
    image_filenames = image_filenames[idx]
    poses = poses[idx]
    # convert to Tensors
    poses = torch.from_numpy(poses[:, :3, :4])
    poses = camera_utils.auto_orient_and_center_poses(
        pose_utils.to4x4(poses), method=self.config.orientation_method
    )[:, :3, :4]
    # Centering poses
    poses[:, :3, 3] = poses[:, :3, 3] - torch.mean(poses[:, :3, 3], dim=0)
    poses = pose_utils.normalize(poses)
    # Camera intrinsics
    K = np.array(metadata_dict["K"]).reshape((3, 3)).T
    focal_length = K[0, 0]
    H = metadata_dict["h"]
    W = metadata_dict["w"]
    # TODO(akristoffersen): The metadata dict comes with principle points,
    # but caused errors in image coord indexing. Should update once that is fixed.
    cx, cy = W / 2, H / 2
    num_cameras = len(image_filenames)
    num_intrinsics_params = 3
    intrinsics = torch.ones((num_cameras, num_intrinsics_params), dtype=torch.float32)
    intrinsics *= torch.tensor([cx, cy, focal_length])
    aabb = torch.tensor([[-1, -1, -1], [1, 1, 1]], dtype=torch.float32) * self.config.aabb_scale
    scene_box = SceneBox(aabb=aabb)
    cameras = Cameras(
        fx=focal_length,
        fy=focal_length,
        cx=cx,
        cy=cy,
        camera_to_worlds=poses,
        camera_type=CameraType.PERSPECTIVE,
    )
    dataparser_outputs = DataparserOutputs(
        image_filenames=image_filenames,
        cameras=cameras,
        scene_box=scene_box,
    )
    return dataparser_outputs