test
aa
렌더러 엔진 전체 구조
Palmier Pro의 미리보기와 출력 엔진이 타임라인을 네이티브 영상 조립판으로 바꾸는 흐름.
핵심은 Timeline을 AVFoundation이 먹을 수 있는 CompositionResult로 바꾸는 엔진이다. VideoEngine이 플레이어와 미리보기 상태를 잡고, CompositionBuilder가 실제 오디오·비디오 조립판을 만든다.
쉽게 말하면 타임라인은 편집 레시피고, 렌더러는 그 레시피를 AVPlayer와 익스포터가 재생할 수 있는 영상 조립판으로 번역하는 번역기다.
미디어 입력과 변환
비디오, 이미지, Lottie, 오디오가 렌더러 안에서 같은 시간축 재료로 정리되는 방식.
핵심은 서로 다른 미디어를 최대한 AVFoundation의 트랙 모델로 통일하는 거다. 비디오는 대체로 그대로 쓰고, 이미지는 긴 still video로, Lottie는 알파가 있는 ProRes 영상으로 바꿔 캐시에 둔다.
그 다음부터 엔진은 다 같은 클립처럼 trim, speed, transform, opacity를 먹일 수 있다.
애니메이션과 출력
키프레임, 스크럽, 텍스트 오버레이, 최종 export가 하나의 렌더 파이프라인으로 이어지는 방식.
결론부터 말하면 키프레임은 최종 픽셀을 직접 그리는 게 아니라 AVFoundation instruction으로 번역된다. buildVisuals()가 opacity, transform, crop, volume을 시간 구간별 ramp로 바꾸고, 플레이어와 익스포터가 그 지시를 실행한다.
텍스트만은 별도 Core Animation 레이어로 처리되어 preview와 export 단계에서 각각 합성된다.
지금 엔진과 비교
현재 앱의 RenderGraph·Native Preview·FFmpeg 기반 엔진과 Palmier Pro 렌더러를 나란히 보는 섹션.
Palmier Pro는 편집기 타임라인을 바로 AVFoundation composition으로 바꾸는 단일 네이티브 렌더러에 가깝다. 지금 엔진은 도메인별 프로젝트를 먼저 RenderGraph로 컴파일하고, preview·proxy·export·진단이 그 계약을 소비하는 구조다.
한쪽은 영상 편집 앱 내부 구조가 단순하고, 다른 한쪽은 여러 제품 워크플로우를 먹이기 위한 계약·캐시·검증 레이어가 두껍다.