Частота кадров и время
Частота кадров (fps)
Сколько изображений в секунду содержит видео. Общие значения: 24 (кино), 25 (трансляция PAL), 30 (большинство телефонов и веб-видео), 50 и 60 (спорт, игры, плавное движение), 120 и 240 (замедленная съемка).
Почему это важно: он решает, сколько кадров существует для извлечения, и определяет, что означает «шаг один кадр». Установите пошаговый инструмент на неправильную частоту кадров, и вы либо увидите одно и то же изображение дважды, либо молча пропустите кадры.
Длительность кадра
Обратная величина частоты кадров — продолжительность каждого кадра на экране. При 30 кадрах в секунду — 33,3 мс; при 60 кадрах в секунду — 16,7 мс; при 24 кадрах в секунду, 41,7 мс.
Почему это важно: это потолок точности. Если нужный момент длится 10 мс, а частота кадров — 30 кадров в секунду, он может попасть между двумя кадрами и просто отсутствовать в файле.
Переменная частота кадров (VFR)
Некоторые источники — записи экрана, записи с телефона при слабом освещении, потоковые снимки — не используют константу интервал между кадрами. Они излучают кадры только при изменении содержимого или меняют скорость в зависимости от доступного освещения.
Почему это важно: "Каждый 10-й кадр" становится непредсказуемым отрезком времени в кадрах VFR, а арифметические метки времени смещаются. Если пошаговое изменение кадров ведет себя непоследовательно, вероятной причиной является VFR. Преобразование в постоянную частоту кадров перед извлечением устраняет проблему.
Временной код
Идентификатор позиции, обычно записываемый HH:MM:SS:FF где FF — номер кадра в пределах секунды. Отличается от прошедшего времени воспроизведения.
Почему это важно: именно так вы записываете, какой кадр вы сделали, чтобы кто-то другой мог найти его снова. Временная метка в миллисекундах служит той же цели для большинства работ, не связанных с трансляцией.
Сжатие и типы кадров
I-кадр (ключевой кадр, кадр с внутренним кодированием)
Кадр, хранящийся как полное изображение, независимое от любого другого кадра. Примерно эквивалентен отдельному файлу JPEG внутри видеопотока.
Почему это важно: I-кадры — это то, с чего может начаться декодер. Поиск произвольной позиции означает переход к предыдущему I-кадру и декодирование вперед, поэтому в некоторых файлах поиск кажется медленным и неточным.
P-frame (прогнозируемый кадр)
Сохраняет только различия с предыдущим кадром. Гораздо меньше, чем I-кадр.
Почему это важно: P-кадр не может быть декодирован в одиночку. Именно этот механизм обеспечивает большую часть эффективности сжатия видео, а также тот факт, что вы не можете просто вытащить кадр 4732 из файла, не декодировав то, что было перед ним.
B-кадр (двунаправленный кадр)
Сохраняет различия как с предыдущим, так и с предыдущим кадром. позже frame. Самый маленький из трех типов.
Почему это важно: B-кадры означают порядок хранения в файле отличается от порядка отображения, что является одной из причин, по которой точный поиск с точностью до кадра сложнее, чем кажется со стороны.
GOP (группа изображений)
Повторяющийся шаблон кадров I, P и B — например, за одним I-кадром следуют 29 других, затем еще один I-кадр.
Почему это важно: длинная GOP означает, что I-кадры находятся далеко друг от друга, что делает поиск более грубым. Файлы, оптимизированные для потоковой передачи, часто имеют GOP длительностью в несколько секунд; кадры, снятые прямо с камеры, обычно имеют более короткие кадры.
Битрейт
Данные в секунду видео, в Мбит/с. Скорость передачи данных по телефону обычно составляет 10–50 Мбит/с; потоковое видео 3–8; профессиональные промежуточные кодеки могут превышать 200.
Почему это важно: это самый надежный показатель того, насколько хорошо будет выглядеть извлеченный кадр. Кадр 4K из потока со скоростью 5 Мбит/с будет отображать артефакты сжатия, которых нет в кадре 1080p из файла камеры со скоростью 50 Мбит/с — разрешение само по себе не говорит о качестве изображения.
С потерями и без потерь
Сжатие с потерями безвозвратно удаляет информацию (H.264, JPEG, MP3). Без потерь точно сохраняется каждое значение (PNG, FFV1, FLAC).
Почему это важно: извлечение в PNG из источника с потерями ничего не восстанавливает — вы получаете копию уже испорченных пикселей без потерь. Однако он предотвращает добавление второе поколение потерь, которое имеет значение, если кадр будет впоследствии отредактирован.
Цвет и пиксели
Цветность подвыборка (4:4:4, 4:2:2, 4:2:0)
Видео сохраняет яркость при полном разрешении и цвет при уменьшенном разрешении, поскольку человеческое зрение гораздо более чувствительно к первому. Обозначение описывает, сколько цветов сохраняется: 4:4:4 — полный, 4:2:2 — половина по горизонтали, 4:2:0 — половина в обоих направлениях.
Почему это важно: почти всего потребительского видео имеет формат 4:2:0, поэтому извлеченный кадр имеет детализацию цвета при половинном разрешении в каждом направлении. Он невидим на фотографиях, но очень заметен на резких цветных краях — красный текст на темном фоне является классическим случаем, и это свойство источника, а не ошибка извлечения.
Цветовое пространство (Rec. 709, Rec. 2020, sRGB)
Определение того, что сохраненные числа означают как цвета. HD-видео обычно имеет формат Rec. 709, HDR часто Rec. 2020 г., фотографии обычно имеют формат sRGB.
Почему это важно: Рек. 709 и sRGB близки, но не идентичны. Источники HDR очень разные, и кадр HDR, извлеченный без тональной компрессии, обычно выглядит размытым и плоским.
Ограниченный диапазон и полный диапазон
В видео обычно черный код присваивается кодовому значению 16, а белый — 235, оставляя запас по высоте с обеих сторон. Для неподвижных изображений используется полный диапазон от 0 до 255.
Почему это важно: это единственная наиболее распространенная причина того, что «мой извлеченный кадр выглядит скучнее, чем видео». Если преобразование не применено, черный цвет становится серым, а изображение выглядит плоским; применяется дважды, тени раздавливаются, а световые эффекты обрезаются. Это также не потеря качества — это несоответствие предположений.
Глубина цвета
Битов на цветовой канал. Потребительское видео обычно 8-битное (256 уровней на канал); профессиональные кадры и HDR – 10-битные или 12-битные.
Почему это важно: 8-бит показывает видимые полосы в плавных градиентах, наиболее явно это небо. При извлечении в PNG сохраняется вся глубина источника, но невозможно добавить уровни, которые никогда не записывались.
Гамма
Нелинейная зависимость между сохраненными значениями и отображаемой яркостью. Конвейеры видео и неподвижных изображений не всегда имеют одну и ту же кривую.
Почему это важно: несоответствие гаммы смещает яркость средних тонов — изображение в целом выглядит слишком темным или слишком светлым, без каких-либо изменений в черных и белых точках.
Форматы и контейнеры
Контейнер и кодек
Контейнер — это оболочка файла (MP4, MOV, MKV, WebM). Кодек — это метод сжатия внутреннего контента (H.264, HEVC, VP9, ​​AV1, ProRes).
Почему это важно: это объясняет наиболее запутанную ошибку при извлечении кадров — два файла с именами .mp4 один открывается, а другой нет. Расширение описывает коробку, а не то, что в ней находится. MP4, содержащий HEVC, может быть отклонен, если MP4, содержащий H.264, работает.
H.264 (AVC)
Наиболее широко поддерживаемый видеокодек. Воспроизводится практически везде.
Почему это важно: если файл не открывается в браузерном инструменте, перекодирование в H.264 в контейнере MP4 — это решение, которое работает почти всегда.
HEVC (H.265)
Преемник H.264: примерно вдвое меньший битрейт при аналогичном качестве. По умолчанию для записей iPhone, начиная с iOS 11.
Почему это важно: поддержка браузера неоднородна и зависит от платформы. Видео iPhone, которое не загружается в браузере, очень часто имеет формат HEVC.
ProRes и DNxHD
Промежуточные кодеки, используемые при редактировании. Очень большие файлы, очень легкое сжатие, рассчитано на многократное перекодирование.
Почему это важно: ни один браузер их не декодирует. Это самый очевидный случай использования FFmpeg или редактора, а не веб-инструмента.
PNG
Формат изображения без потерь с альфа-каналом. Файлы большего размера.
Почему это важно: правильный выбор для извлеченных кадров, которые будут редактироваться, анализироваться, измеряться или архивироваться.
JPEG
Формат изображения с потерями и настройкой качества, обычно от 1 до 100. Примерно в десять раз меньше размера PNG в высоком качестве.
Почему это важно: правильный выбор, когда вам нужно много кадров и местом назначения является документ, билет или тренировочный набор, допускающий легкое сжатие. Обратите внимание, что шкала качества не стандартизирована для разных инструментов — «90» в одном приложении не совсем «90» в другом.
WebP
Новый формат изображения с режимами как с потерями, так и без потерь, примерно на 25–30 % меньше, чем JPEG при сопоставимых показателях. качество.
Почему это важно: хорошо подходит для показа в Интернете, менее универсально принимается программным обеспечением для настольных компьютеров, чем PNG и JPEG. Выбирайте его, когда кадры передаются на веб-страницу, а не в инструмент.
Условия рабочего процесса извлечения
Интервал выборки
Разрыв между извлеченными кадрами выражается либо в секундах (один каждые 5 секунд), либо в кадрах (каждые 10 секунд).
Почему это важно: два показания дают совершенно разные результаты для одного и того же файла, и их путаница является наиболее распространенной причиной получения гораздо большего или гораздо меньшего количества изображений, чем предполагалось.
Контактный лист
Сетка извлеченных кадров, просматриваемых вместе. Заимствовано из фильма, где пробный лист позволяет сразу выбирать негативы.
Почему это важно: паттерны во времени — открытие зазора, изменение состояния, появление дефекта — видны в сетке так, как они не видны во время воспроизведения.
Дополненные нулями
Запись порядковых номеров с ведущими нулями: frame_0001 а не frame_1.
Почему это важно: имена файлов обычно сортируются как текст, что обеспечивает frame_10 до frame_2. Любой инструмент, который читает ваши кадры в порядке имен файлов, будет воспроизводить их в зашифрованном виде без него.
Обработка на стороне клиента
Работа выполняется в браузере, а не на сервере. Файл считывается с диска в страничную память и никогда не передается.
Почему это важно: оно снимает ограничения на время загрузки и размер, налагаемые сервером, и это единственная схема, при которой отснятый материал в соответствии с соглашением о неразглашении или обязательством по защите данных вообще может обрабатываться через веб-страницу. Его также можно протестировать — отключитесь от сети и посмотрите, работает ли оно по-прежнему.