23.976fps 타임라인에서 24fps 소스를 재해석하면 1시간에 3.6초 길어진다
23.976fps 소스와 정확한 24/1 소스가 한 타임라인에 있다는 사실만으로 싱크가 밀리지는 않습니다. 먼저 원본의 실제 프레임레이트, 타임라인 프레임레이트, 클립을 맞춘 방식을 확인하세요. 모든 프레임을 유지해 24/1 원본을 24000/1001로 재해석하면 영상은 약 0.1% 느려지고, 한 시간 분량은 3.6초 길어집니다. 반대로 클립 길이를 유지하는 프레임 변환이라면 반복·드롭·보간으로 타임라인에 맞추므로 같은 속도 차이가 누적되지 않습니다. 이 글은 화면이 끊겨 보이는 문제를 체험하는 대신, 편집·합성·납품에서 무엇이 싱크를 바꿨는지 가르는 절차를 다룹니다.
먼저 구분할 것: 프레임레이트가 다른 것과 길이가 달라지는 것은 다릅니다
영상 한 장을 종이에 찍힌 한 컷이라고 생각해 보세요. 초당 몇 장을 넘길지가 프레임레이트입니다. 같은 100장을 더 천천히 넘기면 장면은 오래 이어집니다. 반대로 장면이 끝나는 시각을 고정하려면 목표 프레임레이트에 맞춰 일부 장을 건너뛰거나, 같은 장을 한 번 더 보여 주거나, 중간 장면을 만들어야 합니다.
편집기에서 서로 다른 프레임레이트의 소스를 사용하면 결국 두 방법 중 하나로 타임라인의 시간을 맞춥니다. 차이는 원본 프레임을 전부 유지하며 속도를 바꾸는지, 원래 재생 시간을 유지하며 프레임을 변환하는지입니다. 따라서 “23.976과 24를 섞었다”는 말만으로는 싱크가 몇 초 밀릴지 계산할 수 없습니다. 원본 프레임 수와 편집기의 실제 처리 방식을 함께 알아야 합니다.
두 프레임레이트 표기는 숫자가 가까워도 같지 않습니다. 23.976fps는 정확히 23.976이 아니라 24000/1001, 즉 약 23.976023976fps입니다. 정확한 24fps는 24/1입니다. 편집기에서 “23.98”이라고 표시해도 실제 시간값은 24000/1001일 수 있으니, 소수점 한 자리만 보고 같은 프레임레이트로 판단하지 마세요.
23.976fps와 24fps에서 3.6초가 늘어나는 조건
속도 변경 없이 프레임 수를 그대로 둔 채 초당 표시할 프레임 수만 바꾸면 길이는 역비례합니다. 계산은 두 식이면 충분합니다.
- 재생 속도 비율 = 타임라인 프레임레이트 ÷ 소스 프레임레이트
- 변환 후 길이 = 소스 길이 × 소스 프레임레이트 ÷ 타임라인 프레임레이트
24fps로 1시간인 영상은 24×3,600=86,400프레임입니다. 이 프레임을 하나도 빼지 않고 24000/1001로 재생하면 86,400÷(24000/1001)=3,603.6초가 됩니다. 원래 3,600초보다 정확히 3.6초 깁니다. 재생 속도는 23.976…÷24=1000/1001, 즉 약 99.9001%입니다. 약 0.1% 느려지는 대신 프레임은 전부 남습니다.
방향을 거꾸로 하면 영상 길이는 줄어듭니다. 24000/1001 소스를 24/1로 프레임 그대로 재해석하면 약 100.1% 속도로 재생되어 원래 길이보다 짧아집니다. 3,600초를 기준으로 한 비율 계산은 3,596.4036초, 약 3.5964초 감소입니다. 이 값은 3.6초로 반올림할 수 있지만, 정확한 방향은 “늘어남”이 아니라 “줄어듦”입니다. 실제 파일에는 정수 프레임만 있으므로 입력한 길이가 정확한 프레임 경계가 아니면 계산기와 파일 표시가 한 프레임 안에서 다를 수 있습니다.
| 원본 → 타임라인 | 프레임을 그대로 보존할 때 속도 | 1시간 기준 길이 변화 | 결과 |
|---|---|---|---|
| 24 → 24000/1001 | 99.9001% | +3.600초 | 느려지고 길어짐 |
| 24000/1001 → 24 | 100.1000% | 약 -3.596초 | 빨라지고 짧아짐 |
| 길이 보존 변환 | 100% | 누적 길이 차이 없음 | 프레임 반복·드롭·보간 가능 |
표의 두 번째 줄은 3,600초라는 시간을 비율로 환산한 값입니다. 실제 24000/1001 소스는 프레임 수가 정수이므로 “정확히 한 시간”과 딱 맞지 않을 수 있습니다. 제목의 3.6초는 정확한 24/1 한 시간 분량의 프레임을 낮은 속도로 모두 재생하는 상황을 가리킵니다. 어느 방향이든 소스가 섞였다는 이유만으로 자동 발생하지 않습니다.
길이 보존 프레임레이트 변환과 재해석을 구분하세요
첫째는 프레임을 보존하는 재해석입니다. 원본의 프레임 수와 순서는 유지하고, 각 프레임을 몇 초 동안 보여 줄지만 바꿉니다. 24/1 원본을 24000/1001로 재해석하면 같은 장면을 조금 느리게 보여 주고 클립 길이도 늘어납니다. After Effects의 Interpret Footage > Main > Conform To Frame Rate가 이 동작의 예입니다. Premiere Pro에서는 Project 패널에서 클립을 우클릭한 뒤 Modify > Interpret Footage > Assume this frame rate를 선택하고, 바뀐 Duration을 확인할 수 있습니다.
이 동작은 원본 파일의 픽셀이나 프레임을 다시 만들지 않습니다. 파일을 읽을 때 어떤 속도로 재생할지에 대한 해석을 바꾸는 것입니다. 그래서 같은 파일을 여러 프레임레이트로 재해석하면 사용 위치에 따라 길이와 동작 속도가 다르게 보일 수 있습니다. 타임라인에 이미 배치한 클립의 Speed/Duration을 조절한 것과 프로젝트 패널의 Interpret Footage를 바꾼 것도 영향 범위가 다를 수 있으니, 현재 클립에 어떤 설정이 적용됐는지 확인하세요.
오디오는 영상과 항상 같은 방식으로 바뀌지 않습니다. After Effects 문서는 프레임레이트를 conform하면 영상 길이는 바뀌지만 오디오는 그대로 남을 수 있어 싱크가 바뀔 수 있다고 설명합니다. Premiere Pro의 프레임레이트 변경 절차는 오디오도 함께 길이가 바뀔 수 있다고 안내합니다. 편집기와 적용한 명령에 따라 동작이 다르므로, 메뉴 이름만 보고 오디오까지 같이 늘었으리라 가정하지 마세요. 별도 녹음 오디오와 영상 중 어느 쪽을 기준으로 삼는지도 먼저 정해야 합니다.
둘째는 클립 길이를 유지하는 프레임레이트 변환입니다. 클립이 타임라인에서 차지하는 시간은 유지하고, 그 시간 안에서 목표 프레임레이트에 맞는 화면을 제공합니다. 목표 시각에 해당하는 원본 프레임이 없으면 프레임을 건너뛰거나 이전 프레임을 반복할 수 있습니다. 설정에 따라 두 프레임을 섞거나 움직임을 추정해 새 프레임을 만들 수도 있습니다. 장면 길이는 유지되지만 움직임이 고르지 않게 보일 수 있습니다.
FFmpeg의 fps 필터는 목표 프레임레이트로 고정할 때 필요한 프레임을 복제하거나 드롭하는 방식입니다. Dolby Hybrik의 변환 문서도 길이를 보존하는 변환과 모든 프레임을 살려 속도를 바꾸는 변환을 따로 설명합니다. 즉, 이 둘은 결과가 다른 작업입니다. 프레임이 반복돼 보이는 현상은 cadence 문제이고, 시간이 갈수록 오디오와 영상이 벌어지는 현상은 길이·속도 차이일 수 있습니다. 한쪽 증상을 다른 쪽 설정으로 고치려 하지 마세요. 타임라인 미리보기 자체가 끊겨 디코딩 성능이 의심된다면 프리미어 프로에서 코덱 때문에 영상이 끊기는 경우도 별도로 확인하세요.
계산기: 입력한 소스 길이와 변환 방식으로 비교하기
아래 계산기에 원본 프레임레이트, 타임라인 프레임레이트, 클립의 실제 길이를 넣어 보세요. 시·분·초는 타임코드 숫자가 아니라 재생 시간을 뜻합니다. “프레임 보존 재해석”을 고르면 속도비와 길이 변화를 계산하고, “길이 보존 프레임 변환”을 고르면 목표 프레임 수가 얼마나 달라지는지 비교합니다.
프레임레이트 차이 계산기
원본 길이를 입력하고, 프레임을 모두 유지하는 재해석인지 길이를 유지하는 프레임 변환인지 선택하세요. 길이는 타임코드가 아닌 실제 시·분·초입니다.
24fps 원본을 24000/1001 타임라인에서 프레임 보존 방식으로 재생하고 길이를 1시간으로 넣으면 출력은 01:00:03.600, 길이 차이는 +3.600초, 재생 속도는 약 99.9001%로 나옵니다. 같은 조건에서 길이 보존 변환을 선택하면 시간은 그대로이고, 약 86프레임을 타임라인에 맞춰 빼야 한다는 예상이 나옵니다. 정확한 프레임 선택은 변환 알고리즘에 따라 달라집니다.
반대로 24000/1001 소스에서 24/1 타임라인으로 바꾸면 프레임 보존 재해석은 약 100.1%로 빨라집니다. 입력한 길이와 실제 정수 프레임 수가 정확히 맞지 않을 수 있어 계산기의 길이 값은 반올림될 수 있습니다. 길이 보존을 선택하면 속도비는 100%로 유지되고 프레임 수만 늘어납니다. 계산 결과는 변환 설정을 정하기 전의 비교값이지, 특정 편집기가 실제로 선택한 프레임을 예측하는 값은 아닙니다.
싱크를 진단하는 순서
1. 원본 프레임레이트와 길이를 확인하세요. 파일 이름이나 프로젝트의 “24” 표기만 믿지 말고 소스 메타데이터를 확인합니다. FFmpeg가 설치돼 있다면 다음 명령으로 비디오 스트림을 읽을 수 있습니다.
ffprobe -v error -select_streams v:0 -show_entries stream=r_frame_rate,avg_frame_rate,time_base,duration,nb_frames -of default=noprint_wrappers=1 input.mov
r_frame_rate, avg_frame_rate, duration, nb_frames가 서로 어떤 값을 가리키는지 보고, 24000/1001과 24/1을 구분하세요. 가변 프레임레이트 파일처럼 값이 다르게 나타나는 소스라면 한 숫자만으로 처리 방식을 단정하지 마세요. 이 명령은 파일의 스트림 정보를 보여 줄 뿐, 편집기가 프로젝트 안에서 어떤 변환을 적용했는지까지 알려 주지는 않습니다.
2. 타임라인 또는 컴프의 프레임레이트를 확인하세요. 프로젝트 설정에서 숫자만 보는 데서 멈추지 말고, 최종 납품이 요구하는 속도와 일치하는지 확인합니다. 이미지 시퀀스는 영상 파일처럼 프레임별 촬영 시각을 함께 저장하지 않는 경우가 많습니다. 가져올 때 지정한 프레임레이트에 따라 시퀀스의 총 길이가 달라질 수 있으니, 렌더 시퀀스를 불러온 설정도 살펴보세요.
3. 해당 클립이 어떤 방식으로 타임라인에 맞춰졌는지 확인하세요. Interpret Footage, Conform, Speed/Duration, Time Remapping, 프레임 보간 중 무엇을 썼는지 살펴봅니다. 프로젝트 전체에서 원본 해석을 바꿨는지, 특정 타임라인 인스턴스만 속도를 바꿨는지 구분합니다. 작업 내역을 모른다면 현재 클립의 Duration과 속도 값을 먼저 기록하고, 한 번에 한 항목만 바꿔 비교하세요.
4. 시작점과 끝점에서 싱크를 비교하세요. 촬영 슬레이트, 손뼉, 플래시, 비프음처럼 영상과 오디오가 동시에 찍힌 기준점이 가장 좋습니다. 시작부터 끝까지 같은 양만큼 어긋나면 시작 오프셋을 먼저 의심할 수 있습니다. 시작은 맞는데 끝으로 갈수록 차이가 커지면 재생 속도, 프레임레이트 해석, 별도 레코더의 시계 오차 등을 확인하세요. 증상만으로 원인을 확정하지 말고, 계산된 속도비와 실제 프레임 수가 맞는지 대조합니다.
24/1 영상을 24000/1001로 프레임 보존 재해석하고 오디오를 원래 속도로 둔 경우, 예상 오차는 10분 지점 약 0.6초, 30분 지점 약 1.8초, 1시간 지점 3.6초입니다. 이는 속도 차이가 해당 구간 전체에 계속 적용될 때의 근사치입니다. 일부 클립만 재해석했다면 그 클립 구간에서만 차이가 쌓이므로, 전체 프로그램 길이에 0.1%를 곱하지 마세요.
5. 내보낸 파일을 다시 열어 확인하세요. 타임라인 미리보기만 맞고 납품 파일에서 밀린다면 렌더 프레임레이트, 오디오 포함 여부, 출력 프레임 수와 전체 길이를 확인합니다. 원본과 출력의 영상 길이만 비교하지 말고, 별도 오디오의 시작과 끝도 확인하세요. 타임코드는 프레임마다 붙인 주소이지, 그 자체가 실제 재생 시간은 아닙니다. DF(drop-frame)도 29.97fps 영상에서 시계 시간과 맞추려고 타임코드 번호 일부를 건너뛰는 표기 방식입니다. 영상 프레임을 실제로 버리는 변환은 아닙니다. SMPTE 표준의 DF 보정은 30프레임 계수에 적용되므로, 23.976/24 프레임 변환으로 생긴 길이 차이를 DF로 설명하거나 고칠 수 없습니다. 이런 경우에는 파일의 프레임 수와 실제 재생 길이, 오디오 기준점을 대조하세요. 포럼에는 23.976 파일의 초 단위 길이와 프레임 타임코드 길이가 달라 EDL 기준을 걱정한 편집자 사례도 있습니다. 따라서 표시창 하나만으로 싱크 오류라고 결론 내리지 마세요.
실측 예시: 1001프레임은 두 방식에서 어떻게 달라질까?
FFmpeg로 24/1 합성 패턴을 1001프레임 만들면 길이는 41.708333초입니다. 이 프레임을 하나도 버리지 않고 24000/1001로 재해석한 샘플은 1001프레임을 유지한 채 약 41.750초가 됐습니다. 약 0.0417초 늘었습니다. 같은 소스를 fps=24000/1001로 길이 보존 변환한 샘플은 1000프레임, 약 41.708333초였습니다. 같은 길이를 유지하는 대신 한 프레임을 덜 쓴 것입니다.
이 샘플은 저해상도 패턴을 이용해 두 처리의 차이를 확인한 것입니다. 특정 NLE의 기본값이나 별도 오디오, 카메라의 가변 프레임레이트까지 시험한 결과는 아닙니다. 다만 24fps에서 23.976fps로 모두 프레임을 살리는 것과 같은 길이 안에서 프레임을 맞추는 것이 서로 다른 선택이라는 점을 확인할 수 있습니다.
내보내기 전에 확인할 항목
- 원본 파일의 프레임레이트가 정확히 24/1인지 24000/1001인지 확인했나요?
- 시퀀스 프레임레이트와 최종 납품 규격이 일치하나요?
- 프레임을 보존해 속도와 길이를 바꿀지, 길이를 보존해 프레임을 변환할지 정했나요?
- 별도 오디오, 프록시, EDL, 외부 타임코드가 같은 시간 기준을 쓰나요?
- 시작점과 끝점에서 오디오 기준점이 모두 맞나요?
- 실제로 내보낸 파일을 다시 열어 프레임 수와 재생 길이를 확인했나요?
정리
두 프레임레이트의 소스가 함께 있어도 자동으로 싱크가 밀리는 것은 아닙니다. 프레임을 전부 유지하며 다른 속도로 재생할 때 길이가 달라집니다. 싱크를 미는 것은 혼합 자체가 아니라, 길이를 바꾸는 변환입니다.
참고 문서
vfx 잡학지식

댓글 0
첫 댓글을 남겨보세요.