Словарь

Что такое частота кадров?

Частота кадров - это количество кадров, которое видео показывает каждую секунду, и измеряется в fps. В отчете по метаданным она может быть указана в виде дроби, например 25/1.

frame-rate

Частота кадров - это количество неподвижных изображений, называемых кадрами, которые видео показывает каждую секунду. Единица измерения - кадров в секунду, сокращённо 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: частота кадров равна значению скорости в заголовке потока, делённому на его масштаб.
  • WMV и FLV: метаданные могут содержать тег частоты кадров.

Аудиопоток не имеет такой частоты кадров. ffprobe из FFmpeg показывает для него 0/0.

Как выглядят значения

В отчёте частота кадров может отображаться как десятичное число, например 29.97, или как дробь, например 25/1. Дробь 25/1 означает 25 кадров за 1 секунду. Дробь остаётся точной, когда значение частоты не целое число.

Обычно встречаются такие значения:

  • 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: верхний предел, а не типичное значение. Это максимальная частота в стандарте ITU для телевидения сверхвысокой чёткости.

Постоянная и переменная частота кадров

При постоянной частоте кадров каждый кадр длится одинаковое время. При переменной частоте кадров время между кадрами меняется в ходе видео.

ffprobe из FFmpeg показывает 2 поля: avg_frame_rate - это средняя частота, а r_frame_rate - базовая частота. Базовая частота - это наименьшая частота, которая может точно представить все временные метки; в документации FFmpeg она названа предположением.

Например, если кадры длятся либо 1/25, либо 1/50 секунды, значение r_frame_rate равно 50/1. Среднее при этом ниже, поэтому значения в 2 полях различаются. Временные метки считаются в единицах базового времени.

Откуда берется значение

Записанное видео получает частоту кадров во время съёмки. Позже кодировщик может изменить её, например, удаляя кадры, чтобы уменьшить размер видео.

Для чересстрочного видео может быть показано другое число. Для такого видео фреймворк AVFoundation от Apple сообщает частоту полей, а не частоту кадров.

Почему это важно

Частота кадров главным образом влияет на плавность движения. Более высокая частота делает движение плавнее, но эффект уменьшается по мере роста частоты. При частоте ниже примерно 12 кадров в секунду вы видите последовательность неподвижных изображений, а не движение.

Начиная примерно с 24 fps движение обычно выглядит плавно, а 30 или 60 fps - хороший ориентир. Более высокая частота также увеличивает размер сжатого файла, если кодировщик не снижает частоту. Поэтому 60 fps могут выглядеть плавнее, чем 30 fps, но файл будет больше.

YouTube просит загружать видео с той же частотой кадров, с которой вы его записали. При постоянной частоте произведение частоты на длительность даёт количество кадров. Например, при 25 fps за 4 секунды получается 100 кадров.

Мета-ключи