Skip to content
기술 6 분 읽기

29.97fps 영상에서 프레임 번호가 어긋나는 이유

29.97fps 영상을 30fps로 세면 1시간 뒤 3.6초가 어긋납니다. 영상 리뷰 도구에서 프레임 번호가 틀어지는 원리와 직접 확인하는 방법을 정리했습니다.

프레임 표시가 타임라인 눈금과 조금씩 어긋나는 필름 스트립
프레임 표시가 타임라인 눈금과 조금씩 어긋나는 필름 스트립

프레임 번호는 영상의 실제 프레임레이트로 계산해야만 정확합니다. 영상 리뷰 도구가 모든 파일을 30fps로 가정하면, 코멘트 옆에 표시되는 프레임 번호와 타임코드가 편집자의 편집 프로그램(NLE) 화면과 조금씩 벌어지고, 24fps·60fps 파일에서는 첫 1초부터 틀립니다.

핵심 요약

  • 29.97fps는 30fps가 아닙니다. 정확히 초당 30000/1001 프레임으로, 약 0.1% 느립니다.
  • 29.97fps 영상을 30fps로 세면 1시간에 3.6초(108프레임)가 어긋납니다. 10분만 지나도 18프레임 차이가 납니다.
  • 24fps·60fps 파일은 처음부터 틀립니다. “300프레임”이라고 남긴 코멘트가 편집 타임라인에서는 2.5초 늦거나 5초 이른 지점을 가리킬 수 있습니다.
  • 드롭 프레임 타임코드는 시계와의 오차를 맞춰줄 뿐, 변환 버그는 못 고칩니다. 초를 프레임으로 바꿀 때 프레임레이트를 잘못 쓰면 어떤 타임코드 방식도 소용없습니다.
  • ffmpeg 명령 한 줄과 화면에 박힌 타임코드로 5분 안에 직접 확인할 수 있습니다.

29.97fps는 정확히 무엇인가요?

29.97fps는 NTSC 방송 프레임레이트로, 정확히 초당 30000/1001 프레임(29.97002997…)입니다. 1953년 미국 TV에 컬러 신호가 추가될 때 컬러 신호와 음성 신호가 간섭하지 않도록 프레임레이트를 0.1% 낮춘 것이 시작입니다.

그 결정은 지금도 남아 있습니다. 북미·한국·일본처럼 NTSC를 쓰던 지역에서 팔리는 카메라와 휴대폰은 29.97fps나 그 계열인 23.976fps(24000/1001), 59.94fps(60000/1001)로 촬영하는 경우가 많습니다.

차이는 작아 보입니다. 몇 분만 프레임을 세어 보면 그렇지 않습니다.

영상 리뷰 도구에서 프레임 번호는 왜 어긋나나요?

리뷰 도구는 보통 코멘트 위치를 초 단위 시간으로 저장합니다. 브라우저 영상 플레이어가 알려주는 값이 초이기 때문입니다. 코멘트 옆에 “1,204프레임”이나 “00:00:40:04”를 보여주려면 초를 프레임으로 바꿔야 합니다.

이 변환에 필요한 숫자는 딱 하나, 프레임레이트입니다. 문제는 여기서 생깁니다.

30fps로 고정하는 지름길

가장 쉬운 구현은 모든 파일에 30을 곱하는 것입니다. 30fps 테스트 영상에서는 맞아 보이기 때문에 이 버그는 눈에 띄지 않고 그대로 출시되기 쉽습니다.

영상 시작 후 정확히 10초 지점에 남긴 코멘트가 어떻게 되는지 보면 이렇습니다.

원본 프레임레이트10.0초의 실제 프레임30fps로 가정한 도구의 표시편집 프로그램에서 “300프레임”의 위치
24fps24030012.5초 (2.5초 늦음)
29.97fps29930010.01초 (1프레임 늦음)
30fps30030010.0초 (정확)
60fps6003005.0초 (5초 이름)

24, 29.97, 30, 60fps 타임라인에서 "300프레임"이 가리키는 위치 비교

24fps나 60fps 프로젝트라면 편집자는 아예 다른 컷으로 이동합니다. 29.97fps는 1프레임 차이에서 시작해 점점 커집니다.

29.97fps는 얼마나 빨리 어긋나나요?

29.97fps 영상에 초당 30프레임짜리 일반 카운터(논드롭 타임코드)를 붙이면 표시값이 실제 시간보다 점점 뒤처집니다.

실제 경과 시간재생된 프레임논드롭 타임코드 표시실제 시간보다 늦은 정도
1분1,79800:00:59:282프레임 (0.07초)
10분17,98200:09:59:1218프레임 (0.6초)
1시간107,89200:59:56:12108프레임 (3.6초)

실제 시간과 30fps로 센 타임코드가 1시간 동안 벌어지는 모습

30초짜리 광고라면 2프레임은 티가 안 날 수 있습니다. 20분짜리 유튜브 영상이나 긴 다큐라면 “여기서 잘라주세요”라는 코멘트가 엉뚱한 대사를 가리킬 수 있습니다.

드롭 프레임 타임코드는 무엇이고, 이 문제를 해결하나요?

드롭 프레임(Drop-Frame) 타임코드는 29.97fps 타임코드를 실제 시간과 맞추기 위한 번호 매기기 방식입니다. 매 분 시작마다 ;00과 ;01 두 번호를 건너뛰되, 10분 단위 분에서는 건너뛰지 않습니다. 실제 프레임은 하나도 지우지 않고 번호만 건너뜁니다.

그래서 카운터가 00:00:59;29에서 바로 00:01:00;02로 넘어갑니다. 1시간이면 108개 번호를 건너뛰는데, 위 표의 108프레임 오차와 정확히 같습니다. 드롭 프레임 타임코드는 보통 프레임 자리 앞에 세미콜론(;)을 씁니다.

1분 지점에서 ;00, ;01 번호를 건너뛰는 드롭 프레임 타임코드

드롭 프레임은 표시 문제를 풉니다. 타임코드를 시계와 맞춰줄 뿐입니다. 초를 프레임으로 바꿀 때 30000/1001 대신 30을 쓰는 도구라면, 드롭이든 논드롭이든 모든 번호가 잘못된 프레임 수 위에 쌓입니다.

리뷰할 때는 어떤 방식을 써야 하나요?

편집자의 타임라인이 보여주는 방식을 그대로 쓰면 됩니다. 리뷰 코멘트의 목적은 편집자가 그 숫자를 편집 프로그램에 입력했을 때 같은 프레임에 도착하는 것입니다. 방송 납품은 드롭 프레임, 웹·SNS 작업은 논드롭이나 프레임 번호를 쓰는 경우가 많습니다.

내 리뷰 도구가 프레임 번호를 제대로 계산하는지 어떻게 확인하나요?

문서를 믿을 필요 없이 테스트 영상을 만들어 직접 보면 됩니다.

1단계: 파일의 실제 프레임레이트 확인

ffprobe -v error -select_streams v:0 \
  -show_entries stream=r_frame_rate -of csv=p=0 your-video.mp4

29.97fps 파일이면 30/1이 아니라 30000/1001이 나옵니다.

2단계: 화면에 타임코드가 박힌 테스트 영상 만들기

ffmpeg -f lavfi -i testsrc2=size=1920x1080:rate=30000/1001 -t 600 \
  -vf "drawtext=timecode='00\:00\:00\:00':rate=30000/1001:fontsize=72:fontcolor=white:box=1:boxcolor=black@0.6:x=40:y=40" \
  test-2997.mp4

rate 값을 24, 60, 24000/1001로 바꾸면 다른 프레임레이트도 시험할 수 있습니다.

3단계: 화면 속 숫자와 도구의 숫자 비교

영상을 올리고 9분쯤으로 이동해 코멘트를 남깁니다. 코멘트 옆에 표시되는 숫자가 화면에 박힌 타임코드와 같아야 합니다. 29.97fps에서 16프레임 안팎이 차이 나면 그 도구는 30fps로 세고 있는 것입니다.

테스트 패턴은 화면 구석에 실제 경과 시간도 함께 찍어 주기 때문에, 한 프레임만 봐도 어긋남이 보입니다.

9분 지점에서 실제 경과 시간은 00:09:05.145, 논드롭 타임코드는 00:09:04:18로 약 16프레임 늦다

4단계: 한 프레임씩 넘겨보기

도구의 프레임 단위 이동 기능을 몇 번 눌러봅니다. 누를 때마다 화면 속 숫자가 정확히 1씩 바뀌어야 합니다. 번호가 건너뛰거나 반복되면 도구의 프레임 경계가 파일과 맞지 않는다는 뜻입니다.

YouViCo는 피드백 시간을 어떻게 표시하나요?

크리에이티브 팀을 위한 영상 협업 플랫폼 YouViCo는 고정값 대신 파일마다 실제 프레임레이트로 프레임 번호를 계산합니다. 23.976fps 영화 편집본, 29.97fps 브이로그, 60fps 게임 녹화본 모두 편집 프로그램에서 보는 번호와 같은 프레임 번호를 받습니다.

시간 표시 방식은 플레이어 컨트롤 바에서 한 번 고르면 됩니다. Frames(프레임), Standard(일반 시간), Timecode(타임코드) 세 가지입니다. 고른 방식은 피드백 화면의 모든 시간 표시에 똑같이 적용됩니다. 코멘트 칩, 스레드, 답글, 마커 라벨, 코멘트 입력창의 시간 스탬프까지 같습니다. 같은 코멘트를 보는 리뷰어와 편집자가 같은 숫자를 읽습니다.

프레임 단위 이동도 파일의 실제 프레임 경계를 따르기 때문에, 한 프레임 앞으로 가면 정확히 다음 프레임에 도착합니다.

Frames, Standard, Timecode 시간 표시 메뉴가 열린 YouViCo 플레이어 컨트롤 바

프레임 단위로 정확한 피드백을 남기는 방법은 프레임 단위 영상 코멘트 가이드에서 더 볼 수 있습니다.

자주 묻는 질문

29.97fps와 30fps는 같은가요?

다릅니다. 29.97fps는 정확히 초당 30000/1001 프레임으로 30fps보다 약 0.1% 느립니다. 영상 1시간이면 108프레임, 3.6초 차이가 납니다.

리뷰 코멘트가 프리미어 프로에서 몇 프레임씩 어긋나는 이유는 뭔가요?

가장 흔한 원인은 리뷰 도구가 코멘트 시간을 30fps로 프레임 변환하는데, 시퀀스는 29.97fps·23.976fps·59.94fps로 돌아가는 경우입니다. ffprobe로 파일의 프레임레이트를 확인하고, 타임코드가 박힌 테스트 영상으로 비교해 보세요.

리뷰할 때 드롭 프레임과 논드롭 중 무엇을 써야 하나요?

편집자의 타임라인 설정에 맞추면 됩니다. 드롭 프레임은 29.97fps 타임코드를 실제 시간에 맞춰주며 방송에서 주로 씁니다. 논드롭은 웹·SNS 작업에서 흔합니다. 가장 중요한 건 리뷰어와 편집자가 같은 방식을 쓰는 것입니다.

드롭 프레임 타임코드는 영상의 프레임을 지우나요?

아닙니다. 대부분의 분 경계에서 ;00, ;01 번호만 건너뛸 뿐 영상의 프레임은 모두 그대로 있습니다.

24fps나 60fps 영상도 이 문제가 있나요?

있고, 더 큽니다. 30fps로 가정하는 도구는 24fps·60fps 파일에서 첫 1초부터 틀립니다. 10초 지점의 “300프레임”은 24fps 영상에서는 실제로 12.5초, 60fps 영상에서는 5초 지점입니다.

영상 협업을 간소화할 준비가 되셨나요?

무료로 시작하기