Рассинхронизация звука и видео после конвертации, дерганая картинка на телевизоре или отказ видеоредактора принять файл — частые симптомы несовпадения частоты кадров исходника и требований проекта. Изменение частоты кадров видео (FPS) решает эти проблемы, но только если понимать, что происходит с кадрами при конвертации: дублирование, выбрасывание или интерполяцию. Бездумное изменение параметра способно ухудшить качество сильнее, чем исходная проблема.
В этом материале разберём, когда изменение FPS оправдано, какие инструменты подходят для разных задач и как не потерять синхронизацию аудиодорожки. Инструкции подходят для Windows, macOS и Linux, а команды проверены на актуальных версиях FFmpeg.
Что такое частота кадров и когда её нужно менять
Частота кадров (frame rate, FPS) — количество неподвижных изображений, отображаемых за одну секунду видео. Типичные значения: 24 fps для кино, 25 fps для европейского телевещания (стандарт PAL), 30 и 29,97 fps для американского вещания (NTSC), 50 и 60 fps для плавной записи движения, 120 и выше — для игровых роликов и slow-motion.
Менять частоту кадров приходится в нескольких ситуациях. Самая распространённая — подготовка видео к публикации на площадке с ограничениями или монтаж материала, снятого разными камерами с разными FPS. Вторая причина — уменьшение размера файла: понижение с 60 до 30 fps заметно снижает битрейт при том же визуальном качестве статичных сцен.
Отдельный случай — интерполяция: искусственное повышение плавности путём генерации промежуточных кадров. Это уже не простое изменение параметра, а вычислительно сложная обработка, и результат зависит от алгоритма.
Способы изменения FPS: обзор инструментов
Выбор инструмента зависит от задачи: разовая конвертация, пакетная обработка или точная работа в монтажном проекте. Ниже — основные варианты с их сильными сторонами.
- 🎬 Видеоредакторы (DaVinci Resolve, Adobe Premiere Pro, Shotcut) — частота кадров задаётся в настройках проекта и при экспорте; подходят, когда видео всё равно монтируется.
- ⚙️ Конвертеры с интерфейсом (HandBrake, Shutter Encoder) — простой выбор FPS в настройках кодирования без командной строки.
- 💻 FFmpeg — консольная утилита для точного контроля, пакетной обработки и автоматизации.
- 🌐 Онлайн-конвертеры — вариант для небольших файлов, когда устанавливать программы нежелательно; учитывайте ограничения на размер и приватность.
Для одного короткого ролика проще всего подойдёт HandBrake: открываете файл, выбираете в разделе видео нужное значение FPS и запускаете кодирование. Для десятков файлов разумнее написать скрипт на FFmpeg — это сэкономит часы ручной работы.
Как изменить частоту кадров в HandBrake
HandBrake — бесплатный конвертер с открытым кодом, доступный для Windows, macOS и Linux. Порядок действий в нём одинаков на всех платформах, хотя расположение элементов интерфейса может немного отличаться между версиями.
Откройте программу и перетащите видеофайл в окно либо выберите его через кнопку открытия источника. Перейдите на вкладку Video и найдите выпадающий список Framerate (FPS). По умолчанию там стоит Same as source — частота исходника. Выберите нужное значение из списка: 23,976, 24, 25, 29,97, 30, 50, 59,94 или 60.
Рядом обратите внимание на переключатель режима: Constant Framerate (постоянная частота) или Variable Framerate (переменная). Для монтажа и загрузки на платформы надёжнее выбирать постоянную частоту — с переменной некоторые редакторы и плееры работают некорректно, что проявляется в виде рассинхрона звука.
⚠️ Внимание: изменение FPS в конвертере всегда означает перекодирование видео. Каждое перекодирование в формат с потерями (H.264, H.265) неизбежно снижает качество. Поэтому не конвертируйте один и тот же файл несколько раз подряд — работайте от исходника.
☑️ Проверка перед конвертацией FPS
Изменение FPS через FFmpeg
FFmpeg — стандарт де-факто для обработки видео из командной строки. Базовая команда для смены частоты кадров выглядит так:
ffmpeg -i input.mp4 -r 30 -c:a copy output.mp4
Здесь параметр -r 30 задаёт выходную частоту 30 кадров в секунду, а -c:a copy копирует аудиодорожку без перекодирования — это сохраняет качество звука и ускоряет процесс. Видеопоток при этом перекодируется кодеком по умолчанию.
Более корректный способ — использовать фильтр fps, который даёт предсказуемое поведение при нецелых соотношениях:
ffmpeg -i input.mp4 -vf "fps=25" -c:v libx264 -crf 20 -c:a copy output.mp4
Параметр -crf 20 управляет качеством: меньше значение — выше качество и больше размер файла. Значения в диапазоне 18–23 обычно дают разумный баланс, но точный выбор зависит от содержимого ролика.
Понижение и повышение FPS: в чём разница
Понижение частоты кадров — технически простая операция: лишние кадры отбрасываются. При переходе с 60 на 30 fps удаляется каждый второй кадр, и результат выглядит естественно. Проблемы возникают при неудобных соотношениях, например с 25 на 24: кадры выпадают неравномерно, и движение может подёргиваться.
Повышение сложнее. Простое дублирование кадров (что делает -r без дополнительной обработки) не добавляет плавности — зритель видит те же 24 уникальных кадра в секунду, просто упакованных в контейнер 60 fps. Для реального повышения плавности нужна интерполяция движения — генерация промежуточных кадров на основе анализа соседних.
В FFmpeg для этого существует фильтр minterpolate, а специализированные решения на нейросетях (например, инструменты на базе моделей оптического потока) дают заметно лучший результат на сложных сценах. Учтите: интерполяция требовательна к ресурсам и может создавать артефакты вокруг быстро движущихся объектов.
| Преобразование | Метод | Риски | Когда применять |
|---|---|---|---|
| 60 → 30 fps | Отбрасывание кадров | Минимальные | Уменьшение размера, требования площадки |
| 30 → 24 fps | Отбрасывание / преобразование кинопроекции | Подёргивание движения | Стилизация под кино |
| 24 → 60 fps | Дублирование кадров | Нет прироста плавности | Совместимость с проектом 60 fps |
| 24 → 60 fps | Интерполяция движения | Артефакты, нагрузка на ПК | Плавное slow-motion, апскейл плавности |
| 25 ↔ 29,97 fps | Ресемплинг кадров | Рассинхрон звука, дрожание | Конвертация между стандартами PAL/NTSC |
Типичные ошибки и как их избежать
Первая и самая частая ошибка — рассинхронизация звука. Она возникает, когда видеопоток изменяется, а аудио остаётся прежней длительности, либо когда исходник имеет переменную частоту кадров (типично для записей с экрана и смартфонов). Решение — принудительно задавать постоянный FPS и проверять результат на всей длительности ролика, а не только в начале.
Вторая ошибка — ожидание чуда от повышения FPS. Если исходник снят в 24 кадра, никакая конвертация не превратит его в настоящее 60 fps видео без интерполяции, а интерполяция на сложных сценах даёт видимые артефакты. Третья проблема — многократное перекодирование: каждый цикл деградирует картинку.
⚠️ Внимание: если видео предназначено для монтажа, не меняйте FPS заранее в конвертере. Задайте нужную частоту в настройках проекта редактора — он сам корректно обработает исходники, и вы избежите лишнего перекодирования.
Почему 29,97, а не 30 кадров?
Дробные значения вроде 29,97 и 23,976 — наследие эпохи аналогового телевещания. При переходе на цветное ТВ в системе NTSC частоту кадров слегка понизили для совместимости со звуковой поднесущей. Стандарт закрепился и используется до сих пор, поэтому при конвертации между 29,97 и ровными 30 fps возможен постепенный уход синхронизации звука.
Как проверить результат конвертации
После обработки не полагайтесь на глазомер — проверьте файл инструментами. Команда ffprobe покажет фактическую частоту кадров, длительность и параметры потоков. Универсальные анализаторы вроде MediaInfo выводят ту же информацию в удобном окне, включая режим частоты (постоянная или переменная).
Затем просмотрите ролик целиком или хотя бы в нескольких точках: начало, середина, конец. Обращайте внимание на совпадение губ речи со звуком и на плавность панорамных планов — именно там артефакты заметнее всего. Если синхронизация «плывёт» к концу файла, вероятнее всего, исходник имел переменный FPS, и конвертацию нужно повторить с принудительной постоянной частотой.
Часто задаваемые вопросы
Можно ли изменить FPS без перекодирования видео?
Частично. Существует приём смены метаданных контейнера (например, через -c copy с указанием новой частоты), который меняет скорость воспроизведения без перекодирования. Но это меняет и длительность, и скорость звука, поэтому подходит лишь для узких задач вроде ускорения таймлапсов. Для обычной смены FPS перекодирование неизбежно.
Почему после смены FPS звук отстаёт от видео?
Наиболее вероятная причина — переменная частота кадров в исходнике (записи с экрана, смартфона, веб-камеры). Повторите конвертацию, принудительно задав постоянный FPS, и убедитесь, что аудиодорожка обрабатывается синхронно с видеопотоком.
Какой FPS выбрать для загрузки в соцсети?
Большинство платформ корректно принимают 24, 25, 30, 50 и 60 fps. Оптимальная стратегия — оставить частоту исходника, если она входит в этот список, и не конвертировать без необходимости. Точные требования конкретной площадки проверяйте в её актуальной справке, так как рекомендации со временем меняются.
Повысит ли смена с 30 на 60 fps плавность видео?
Сама по себе — нет: без интерполяции кадры просто продублируются. Реальную плавность даёт только генерация промежуточных кадров специальными фильтрами или нейросетевыми инструментами, и качество результата зависит от содержимого сцены.
Теряется ли качество при понижении FPS?
Детализация самих кадров при грамотных настройках кодирования сохраняется, но теряется информация о движении: отброшенные кадры восстановить невозможно. Кроме того, любое перекодирование в формат с потерями немного снижает качество, поэтому всегда сохраняйте исходный файл.