프레임 레이트는 동영상이 1초 동안 보여 주는 정지 이미지(프레임)의 개수입니다. 단위는 초당 프레임 수로, fps라고 표기합니다. 기술 표준에서는 프레임 주파수라고 부르기도 합니다.
동영상 파일에서 프레임 레이트는 비디오 스트림을 설명하는 메타데이터 값입니다. 25 fps에서는 각 프레임이 화면에 1/25초, 즉 40밀리초 동안 표시됩니다.
어떤 파일에 포함되어 있는지
MP4, MOV, MKV, WebM, AVI, WMV, FLV 같은 동영상 형식에는 프레임 레이트 정보가 들어 있습니다. 각 형식은 이 값을 서로 다른 방식으로 저장합니다.
- MP4와 MOV: time-to-sample 테이블에 동일한 길이의 프레임 구간이 나열됩니다. ExifTool은 이 테이블을 바탕으로
VideoFrameRate값을 평균으로 계산합니다. 일부 MP4 파일은VideoAvgFrameRate,VideoMaxFrameRate같은 태그에 평균 및 최대 레이트를 따로 저장하기도 합니다. - MKV:
DefaultDuration필드에 프레임당 시간이 나노초 단위로 저장됩니다.FrameRate필드는 정보 제공용일 뿐입니다. - WebM: 이 형식은 Matroska의 하위 집합이며
DefaultDuration을 함께 사용할 수 있습니다. WebM 가이드라인에서는FrameRate필드를 더 이상 사용하지 않는 것으로 표시합니다. - AVI: 스트림 헤더의 rate 값을 scale 값으로 나눈 값이 프레임 레이트입니다.
- WMV와 FLV: 메타데이터에 프레임 레이트 태그가 들어 있을 수 있습니다.
오디오 스트림에는 이런 종류의 프레임 레이트가 없습니다. FFmpeg의 ffprobe는 이에 대해 0/0 값을 표시합니다.
값이 어떻게 표시되는지
보고서에서는 프레임 레이트를 29.97처럼 소수로, 또는 25/1처럼 분수로 표시할 수 있습니다. 분수 25/1는 1초에 25프레임을 의미합니다. 레이트가 정수가 아닐 때 분수는 값을 정확하게 유지합니다.
일반적인 값은 다음과 같습니다.
24/1: 24 fps, 영화 필름에 주로 쓰이는 레이트24000/1001: 약 23.976 fps, FFmpeg에서ntsc-film이라고 부르는 값25/1: 25 fps, FFmpeg에서pal이라고 부르는 값30000/1001: 약 29.97 fps, FFmpeg에서ntsc라고 부르는 값50및60: YouTube 기준으로 동영상 업로드에서 흔히 쓰이는 레이트120: 일반적인 값이 아닌 상한선입니다. 초고선명 텔레비전(ultra-high definition TV)에 대한 ITU 표준에서 정의된 가장 높은 레이트입니다.
고정 및 가변 프레임 레이트
고정 프레임 레이트에서는 모든 프레임의 길이가 같습니다. 가변 프레임 레이트에서는 동영상 재생 중 프레임 사이의 시간이 달라집니다.
FFmpeg의 ffprobe는 두 필드를 표시합니다. avg_frame_rate는 평균 레이트이고, r_frame_rate는 기준 레이트입니다. 기준 레이트는 모든 타임스탬프를 정확히 표현할 수 있는 가장 낮은 레이트이며, FFmpeg 문서에서는 추정값이라고 설명합니다.
예를 들어 각 프레임 길이가 1/25초 또는 1/50초라면 r_frame_rate는 50/1가 됩니다. 평균값은 이보다 낮으므로 두 필드 값이 달라집니다. 타임스탬프는 time base 단위로 계산됩니다.
값이 어디에서 오는지
녹화된 동영상은 촬영 시점에 프레임 레이트가 정해집니다. 인코더는 이후 프레임을 제거해 동영상 크기를 줄이는 방식 등으로 프레임 레이트를 변경할 수 있습니다.
인터레이스 비디오는 다른 숫자를 표시할 수 있습니다. 이 동영상의 경우 Apple의 AVFoundation 프레임워크는 프레임 레이트가 아니라 필드 레이트를 보고합니다.
왜 중요한지
프레임 레이트는 주로 움직임이 얼마나 부드럽게 보이는지에 영향을 줍니다. 레이트가 높을수록 움직임은 더 부드럽지만, 레이트가 올라갈수록 체감 차이는 줄어듭니다. 초당 약 12프레임보다 낮으면 움직임이 아니라 정지 이미지가 연속해서 보이게 됩니다.
24 fps 이상이면 일반적으로 움직임이 부드럽게 보이며, 30 또는 60 fps가 적절한 목표입니다. 레이트가 높을수록, 인코더가 레이트를 낮추지 않는 한, 압축된 파일 크기도 커집니다. 따라서 60 fps는 30 fps보다 더 부드럽게 보일 수 있지만 파일 크기는 더 커집니다.
YouTube에서는 촬영할 때와 같은 프레임 레이트로 동영상을 업로드하도록 안내합니다. 고정 프레임 레이트에서는 레이트에 재생 시간을 곱하면 전체 프레임 수가 됩니다. 예를 들어 4초 동안 25 fps이면 100프레임이 됩니다.