최종 단계에서 영상들을 합치는 과정(concat)에서 경로가 두 번 중복되어 잘못 생성되는 오류가 발생했다.
경로가 두 번 반복됨 →
input_upscaled/input_out_tmp_videos/input_upscaled/input_out_tmp_videos/
즉, 스크립트 내부에서 output_dir 또는 tmp_dir 경로를 잘못 이어붙였다는 의미인 것 같다.
Real-ESRGAN의 inference_realesrgan_video.py 내부에서 초기 코드가 다음과 같이 설정.
tmp_dir = os.path.join(args.output, 'input_out_tmp_videos')
input_upscaled/input_out_tmp_videos ← 원래 맞는 경로
그 결과:
input_upscaled/input_out_tmp_videos/input_upscaled/input_out_tmp_videos
이렇게 반복된 경로가 생겨서 ffmpeg이 파일을 찾지 못했다.
inference_realesrgan_video.py의 concat 지점에서 아래처럼 바꿔보자.
video_list_path = os.path.join(output_dir, tmp_dir, 'input_vidlist.txt')
또는
tmp_dir = os.path.join(output_dir, tmp_dir)
이런 식으로 output_dir과 tmp_dir을 두 번 합치는 코드. 이 부분이 경로를 중첩시키는 원인이지 않을까.
아래 코드를 문제 있는 기존 코드에서 고쳐보자.
# tmp_dir는 output_dir 밑에 직접 생성
tmp_dir = os.path.join(output_dir, "tmp_frames")
os.makedirs(tmp_dir, exist_ok=True)
video_list_path = os.path.join(tmp_dir, "input_vidlist.txt")
그리고 프레임 저장도 이렇게 돼야 한다
out_frame_path = os.path.join(tmp_dir, f"{frame_id:05d}.png")
그리고 concat할 때도:
ffmpeg_concat_cmd = f'ffmpeg -f concat -safe 0 -i "{video_list_path}" -c copy "{final_output_path}"'
이렇게 1차로 고쳐보자.
| 업스케일링 코드 (환경에 맞게 코드 최적화하기) (0) | 2025.11.24 |
|---|---|
| 업스케일링 해보기(2) (0) | 2025.11.15 |