
색보정 작업을 하다 보면, 타임라인에서는 아무 문제 없이 재생되던 프로젝트가
Deliver 페이지에서 렌더링을 시작하는 순간 멈추거나 실패하는 경우를 겪게 된다.
오류 메시지도 "Render Job Failed", "Failed to encode video frame", "GPU memory is full" 등 다양한데, 원인을 특정하기 어려울 때가 많다.
10년 넘게 다빈치 리졸브로 색보정 납품을 해오면서 이런 렌더링 실패를 수없이 겪었다.
이 글에서는 렌더링이 실패하는 주요 원인들을 유형별로 분류하고, 각각에 대한 실질적인 해결 방법을 정리했다.
1. GPU 메모리(VRAM) 부족
렌더링 실패 원인 중 가장 흔한 것이 VRAM 부족이다.
"Your GPU memory is full"이라는 메시지가 뜨면서 렌더가 멈추는 경우인데, 편집 중에는 괜찮다가 렌더링 때만 발생하는 이유가 있다.
편집 중에는 리졸브가 프록시 모드나 캐시를 활용해서 GPU 부하를 줄여 주지만,
렌더링 단계에서는 모든 이펙트, 노이즈 리덕션, 컬러 그레이딩을 원본 해상도에서 풀 퀄리티로 처리한다.
타임라인에서 문제없이 재생되던 것과 렌더링에서 터지는 것은 완전히 다른 문제다.
해결 방법은 다음과 같다.
Preferences > System > Memory and GPU에서 GPU Processing Mode가 올바르게 설정되어 있는지 확인한다.
간혹 내장 그래픽이 선택되어 있거나, CUDA/OpenCL 설정이 꼬여 있는 경우가 있다.
노이즈 리덕션이 가장 큰 VRAM 소비 원인이다.
Temporal NR과 Spatial NR을 동시에 높은 값으로 적용하면 4K 기준으로 VRAM 8GB는 쉽게 초과된다.
노이즈 리덕션을 사용해야 한다면 해당 클립만 먼저 Render in Place로 처리한 뒤 메인 렌더를 돌리는 것이 안정적이다.
Fusion 컴포지션이 복잡한 경우에도 VRAM 사용량이 급증한다.
멀티레이어 합성이나 파티클 이펙트가 포함된 Fusion 클립은 Edit 페이지에서 우클릭 > Render in Place로 미리 렌더링해 두면,
최종 Deliver 렌더 시 GPU 부담이 크게 줄어든다.
가급적 4K 색보정 작업에는 VRAM 8GB 이상을 권장하며,
노이즈 리덕션이나 Fusion을 적극적으로 사용하는 환경이라면 16GB 이상이 안정적이다.
VRAM 8GB 이하 GPU에서 4K 프로젝트를 렌더링하는 것은 구조적으로 불안정할 수밖에 없다.
2. 코덱 문제 - H.264/H.265 인코딩 실패
"Failed to encode video frame" 또는 "Cannot find appropriate codec"라는 메시지가 뜨면서 렌더가 실패하는 경우다.
이 문제는 특히 무료 버전(DaVinci Resolve Free)에서 빈번하게 발생한다.
무료 버전은 H.264/H.265 하드웨어 가속 인코딩을 지원하지 않는다(macOS 제외).
Windows 환경에서 무료 버전을 쓰면서 H.265로 내보내기하려 할 때 이 오류가 나는 경우가 대부분이다.
해결 방법은 몇 가지가 있다.
가장 확실한 방법은 출력 코덱을 바꾸는 것이다.
H.264/H.265 대신 DNxHR이나 ProRes(macOS)로 먼저 렌더링한 뒤,
필요하다면 Shutter Encoder 같은 외부 도구로 H.264/H.265로 재인코딩하면 된다.
파일 크기는 커지지만, 렌더링 안정성은 비교할 수 없이 높다.
Studio 버전을 사용 중인데도 이 오류가 나는 경우라면 GPU 드라이버 문제일 가능성이 높다.
NVIDIA 사용자는 GeForce Experience에서 Studio Driver로 설치하는 것을 권장한다.
Game Ready Driver보다 안정성이 높고, 영상 작업 도구와의 호환성이 더 좋다.
간혹 비트레이트 설정이 너무 높아서 인코더가 처리하지 못하는 경우도 있다.
Deliver 페이지에서 Quality를 "Restrict to"로 바꾸고, 비트레이트를 적절한 값(4K H.264 기준 50,000~80,000 Kbps)으로 제한해 보는 것도 방법이다.
"Automatic" 설정이 오히려 안정적인 경우도 많다.
3. 특정 프레임/클립에서 렌더링이 멈추는 경우
렌더링이 진행되다가 특정 퍼센트에서 반복적으로 멈추는 경우가 있다.
이건 십중팔구 해당 위치의 클립에 문제가 있다는 뜻이다.
원인은 여러 가지다. 소스 파일 자체가 손상되었거나, 가변 프레임레이트(VFR) 영상이 들어있거나,
특정 클립에 적용된 Fusion 컴포지션이나 OFX 플러그인이 충돌을 일으키는 경우가 대표적이다.
먼저, 렌더가 멈추는 정확한 위치를 파악해야 한다.
Deliver 페이지 하단의 렌더링 진행률을 보면 몇 번째 프레임에서 실패했는지 알 수 있다.
해당 프레임 근처를 타임라인에서 찾아가서 천천히 스크러빙해 보면, 문제 클립을 특정할 수 있다.
문제 클립을 찾았다면, 해당 클립만 따로 Render in Place를 시도해 본다. 이것만으로 해결되는 경우가 꽤 많다.
Render in Place가 실패한다면 해당 소스 파일을 외부 도구로 트랜스코딩하거나, 클립을 교체해야 한다.
가변 프레임레이트(VFR) 문제는 스마트폰이나 화면 녹화 소프트웨어로 촬영한 영상에서 자주 발생한다.
VFR 영상은 프레임 간 타이밍이 일정하지 않기 때문에 리졸브가 디코딩에 실패하는 경우가 있다.
이 경우 해당 영상을 고정 프레임레이트(CFR)로 미리 변환해서 가져오는 것이 근본적인 해결책이다.
급할 때 쓸 수 있는 임시 방편도 있다.
Preferences > User > UI Settings에서 "Stop renders when a frame or clip cannot be processed" 옵션을 해제하면,
문제 프레임에서 멈추지 않고 렌더를 끝까지 완주한다.
다만 이 경우 해당 프레임이 손상되거나 깨질 수 있으므로, 렌더 완료 후 결과물을 반드시 처음부터 끝까지 확인해야 한다.
(납품용 파일에서는 절대 권장하지 않는 방법이지만, 원인을 좁혀가는 과정에서는 유용하다.)
4. OFX 플러그인 충돌
서드파티 OFX 플러그인이 렌더링 크래시의 원인인 경우가 생각보다 많다.
특히 리졸브 버전을 업데이트한 직후에 기존 플러그인과 호환이 깨지면서 발생하는 경우가 대표적이다.
Neat Video, BorisFX, Red Giant 같은 플러그인들이 대표적인 예다.
증상은 대개 이렇다.
타임라인 재생은 되는데 렌더링만 하면 크래시가 나거나, 리졸브 자체가 강제 종료되거나,
"The fusion composition on the current frame or clip could not be processed successfully"라는 메시지가 뜬다.
의심되는 플러그인이 있다면, 해당 플러그인이 적용된 노드나 이펙트를 일시적으로 비활성화한 뒤 렌더를 돌려 보면 원인을 특정할 수 있다.
컬러 페이지에서 해당 노드를 우클릭 > Disable Node로 끄거나, OFX 이펙트를 체크 해제하면 된다.
플러그인이 원인이라면, 해당 플러그인의 최신 버전이 현재 리졸브 버전과 호환되는지 제조사 웹사이트에서 확인해야 한다.
호환 목록에 없다면 플러그인 업데이트를 기다리거나, 해당 효과를 리졸브 내장 ResolveFX로 대체하는 것이 현실적이다.
리졸브는 플러그인 로딩 과정에서 크래시를 감지하면 해당 플러그인을 블랙리스트에 등록해서 이후 로딩을 차단한다.
플러그인을 재설치하거나 업데이트한 뒤에도 로딩이 안 되는 경우,
Preferences > System > Video Plugins에서 블랙리스트에 등록된 플러그인을 다시 활성화할 수 있다.
5. 디스크 공간 부족 및 스토리지 문제
의외로 자주 발생하는 문제인데, 특히 렌더링이 중간까지는 잘 진행되다가
갑자기 실패하는 패턴이라면 디스크 공간을 의심해 볼 필요가 있다.
렌더링 중에는 출력 파일이 실시간으로 기록되면서 용량이 계속 늘어난다.
4K ProRes 422 HQ로 60분짜리 영상을 렌더링하면 파일 크기가 수백 GB에 달할 수 있다.
출력 드라이브에 충분한 여유 공간이 있는지 확인하는 것이 기본 중의 기본이다.
출력 드라이브뿐 아니라, 캐시 드라이브와 시스템 드라이브의 공간도 확인해야 한다.
리졸브는 렌더링 과정에서도 캐시를 활용하고, 데이터베이스가 시스템 로컬 드라이브에 위치하는 경우가 많기 때문이다.
시스템 드라이브의 여유 공간이 10GB 이하로 떨어지면 예측하기 어려운 오류가 발생하기 시작한다.
또한, 스토리지 속도 자체가 문제가 되는 경우도 있다.
4K 이상 고해상도 영상을 비압축이나 ProRes 4444로 렌더링할 때, 쓰기 속도가 느린 외장 HDD를 출력 대상으로 지정하면
데이터 기록이 처리 속도를 따라가지 못해서 렌더가 실패할 수 있다.
렌더 출력은 최소한 SATA SSD 이상의 드라이브에 하는 것이 안전하다.
6. 렌더 캐시 손상
타임라인에서는 잘 재생되고 소스 파일에도 문제가 없는데, 렌더링만 하면 실패하는 경우가 있다.
이때는 렌더 캐시가 손상되었을 가능성을 의심해야 한다.
리졸브는 Smart Cache나 User Cache로 미리 렌더링해 둔 캐시 파일을 렌더링 과정에서도 참조하는데,
이 캐시 파일이 손상되면 디코딩 에러가 발생한다.
해결 방법은 간단하다. Playback > Delete Render Cache > All로 캐시를 전부 삭제한 뒤, 렌더를 다시 시도하면 된다.
반대의 접근도 가능하다. Deliver 페이지의 Advanced Settings에서 "Use render cached images" 옵션을 활성화하면,
이미 캐시된 구간은 캐시 파일을 그대로 사용하여 렌더링한다.
이 방법은 특히 Fusion이나 무거운 OFX 이펙트가 적용된 클립에서 렌더링이 실패하는 경우에 효과적이다.
캐시가 정상적으로 생성된 상태라면, 이 옵션을 켜는 것만으로 렌더가 안정적으로 완료되는 경우가 많다.
7. 프로젝트 타임라인/프레임레이트(FPS) 불일치
프로젝트 설정과 소스 미디어의 프레임레이트가 다를 때 렌더링에서 문제가 생기는 경우가 있다.
예를 들어 23.976fps 타임라인에 29.97fps 클립이 섞여 있으면, 리졸브가 프레임 변환(리타이밍)을 하면서 특정 프레임에서 디코딩에 실패할 수 있다.
이런 상황을 방지하려면 프로젝트 시작 시 타임라인 프레임레이트를 주요 소스에 맞춰 설정하는 것이 원칙이다.
이미 편집이 진행된 상태에서 프레임레이트를 바꾸기 어렵다면,
문제가 되는 클립들을 타임라인 프레임레이트에 맞춰 트랜스코딩한 뒤 교체하는 방법이 가장 현실적이다.
Deliver 페이지에서 출력 설정의 프레임레이트가 타임라인과 다르게 설정되어 있는지도 확인해야 한다.
(의도적으로 다르게 설정한 것이 아니라면, 타임라인과 동일한 프레임레이트로 출력하는 것이 안전하다.)
8. 렌더 속도 조절 및 기타 안정화 설정
만약 위의 방법들로 해결되지 않을 때 시도해 볼 수 있는 설정들이 있다.
Deliver 페이지의 Advanced Settings > File 탭에서 Render Speed를 조절할 수 있다.
기본값은 Maximum인데, 이것을 75나 50으로 낮추면 GPU와 CPU에 가해지는 순간 부하가 줄어들어 렌더가 안정적으로 완료되는 경우가 있다.
렌더 시간은 늘어나지만, "렌더 실패"보다는 낫다.
렌더링 중에 뷰어가 실시간으로 업데이트되는 것도 리소스를 소모한다.
뷰어 우측 상단의 점 세 개 메뉴에서 Minimal로 설정하면 라이브 미리보기가 꺼지면서 렌더링 안정성이 올라간다.
그래도 계속 실패한다면, 프로젝트를 새로 만들어서 타임라인을 옮기는 것도 시도해 볼 만하다.
타임라인 전체를 선택(Ctrl+A)한 뒤 복사하고, 새 프로젝트를 생성해서 붙여넣기한 뒤 렌더를 돌리면,
데이터베이스 손상으로 인한 문제가 해결되는 경우가 있다. 이 방법은 원인을 정확히 알 수 없을 때 마지막으로 시도하는 카드다.
마무리
렌더링이 실패했을 때 순서대로 확인해 볼 항목들을 정리하면 이렇다.
[렌더링 실패 시 체크리스트]
1. 가장 중요한 건 오류 발생 시 오류 메시지를 정확히 확인한다.
"GPU memory is full"이면 VRAM 문제, "Failed to encode video frame"이면 코덱이나 비트레이트 문제,
특정 프레임에서 멈춘다면 해당 클립이나 플러그인 문제일 가능성이 높다.
2. 디스크 공간을 확인한다. 출력 드라이브, 캐시 드라이브, 시스템 드라이브 모두 여유 공간이 충분한지 점검한다.
3. 렌더 캐시를 삭제하고 다시 시도한다. 캐시 손상은 겉으로 드러나지 않는 원인이라 놓치기 쉽다.
4. GPU 드라이버가 최신 상태인지 확인한다. NVIDIA 사용자는 Studio Driver를 사용하는 것을 권장한다.
5. 출력 코덱을 바꿔 본다. H.264/H.265로 실패한다면 DNxHR이나 ProRes로 먼저 렌더링해 본다.
6. 특정 프레임에서 반복 실패한다면 해당 클립을 트랜스코딩하거나 Render in Place를 시도한다.
7. 서드파티 플러그인을 하나씩 비활성화하며 원인을 좁혀 본다.
8. 그래도 안 된다면 렌더 속도를 낮추거나, 새 프로젝트에 타임라인을 옮겨서 시도한다.
렌더링 실패는 경험이 쌓이면 오류 메시지만 보고도 대략적인 원인을 짐작할 수 있게 된다.
중요한 건 당황하지 말고, 하나씩 변수를 제거해 나가면서 원인을 좁혀 나가는 것이다.
위 체크리스트를 순서대로 밟아 나가면 대부분의 렌더 문제를 해결할 수 있다.