code: def __init__(
      self,
      video_paths: List[str],
      src_video_path_index: int,
      transition: Optional[TransitionConfig] = None,
  ):
      assert (
          len(video_paths) > 0
      ), "Please provide at least one input video"
      assert all(
          pathmgr.exists(video_path) for video_path in video_paths
      ), "Invalid video path(s) provided"
  
      self.video_paths = [
          pathmgr.get_local_path(video_path)
          for video_path in video_paths
      ]
      self.src_video_path_index = src_video_path_index
  
      video_info = get_video_info(
          self.video_paths[src_video_path_index]
      )
  
      self.height = ceil(video_info["height"] / 2) * 2
      self.width = ceil(video_info["width"] / 2) * 2
      log.info("Width=%d height=%d", self.width, self.height)
  
      self.sample_aspect_ratio = video_info.get(
          "sample_aspect_ratio", "1"
      )
      log.info("Aspect ratio=%s", self.sample_aspect_ratio)
  
      self.transition = transition
  
file_path: AugLy/augly/video/augmenters/ffmpeg/concat.py
imports: import logging
  from dataclasses import dataclass
  from enum import Enum
  from math import ceil
  from typing import List, Optional
  from augly.utils import pathmgr
  from augly.video.augmenters.ffmpeg.base_augmenter import BaseVidgearFFMPEGAugmenter
  from augly.video.helpers import get_video_info, has_audio_stream
  from dataclasses_json import dataclass_json
label_desc: Use image node_id 1 to create a new VideoAugmenterByConcat object from inherited base classes: BaseVidgearFFMPEGAugmenter with example: obj = VideoAugmenterByConcat(video_paths, src_video_path_index, transition)