Гид по технологиям

Как создать листы миниатюр (thumbnail sheets) из видео в Linux

• 6 min read • Linux • Обновлено 24 Nov 2025
Листы миниатюр из видео в Linux
Листы миниатюр из видео в Linux

Зачем нужны листы миниатюр

Лист миниатюр — это обычный растровый файл, в котором в виде матрицы расположены превью-кадры из видеозаписи. Они выполняют ту же роль, что и фотолисты памяти прошлого: дают быстрый визуальный обзор содержимого видеоролика без необходимости открывать и просматривать его полностью.

Кому полезно:

  • Видеоредакторам — быстро искать нужные сцены.
  • Архивистам и каталогизаторам — массовая проверка качества и содержания.
  • Веб-публикациям — превью для каталога видео.

Важно: лист миниатюр не заменяет полноценную оценку контента (звук, движение, текст на экране). Это средство быстрой фильтрации.

Когда лист миниатюр не подойдёт

  • Когда нужно проверить аудиодорожку или субтитры.
  • Когда важна высокая точность временных меток или кадра (требуется отдельный экспорт кадров с указанием времени).
  • При работе с DRM-защищёнными файлами, где извлечение кадров технически ограничено.

Способ 1 — Gnome Видео (удобно, без командной строки)

Если вы используете окружение GNOME, приложение «Видео» (Gnome Videos, ранее Totem) имеет встроенную функцию создания галереи снимков.

Шаги:

  1. Откройте приложение «Видео». Окно запуска приложения Видео
  2. Откройте нужное видео.
  3. В меню приложения выберите «Создать галерею снимков…» (Create Screenshot Gallery …). Меню с пунктом Создать галерею снимков
  4. В появившемся окне задайте ширину миниатюры, число скриншотов либо выберите автоматический режим, укажите имя файла и нажмите «Сохранить». Окно настройки галереи скриншотов

Плюсы:

  • Очень просто и быстро.
  • Подходит для разовых задач и пользователей, избегающих терминала.

Минусы:

  • Ограниченные параметры: мало контроля над частотой выборки кадров, масштабом, способами фильтрации.

Результат приложения: готовый лист миниатюр в виде единого файла. Пример листа, сгенерированного Gnome Видео

Способ 2 — ffmpeg (максимальный контроль)

ffmpeg — универсальный инструмент для работы с видео в терминале. Он позволяет точно управлять выбором кадров, масштабированием, композицией плиток и качеством итоговых изображений.

Базовый шаблон команды (вариант для Linux):

ffmpeg -ss 3 -i '/path/to/video/file.mp4' -frames 5 -vf 'select=not(mod(n\,3000)),scale=320:240,tile=4x3' -vsync vfr -q:v 10 image-sheet-filename_%03d.jpg

Разбор ключевых опций:

  • -ss 3 — пропустить первые 3 секунды видео (можно задать другое значение); полезно, чтобы избежать титров.
  • -i ‘/path/to/video/file.mp4’ — входной файл.
  • -frames 5 — сколько кадров будет обработано (можно управлять этим числом целиком или выбирать кадры фильтром).
  • -vf ‘…’
    • select=not(mod(n\,3000)) — алгоритм выборки кадров: из последовательности кадров берётся каждый N-й кадр (здесь 3000). Чем меньше число, тем выше частота выборки.
    • scale=320:240 — размер каждой миниатюры; выберите значение, сохраняющее соотношение сторон.
    • tile=4x3 — компоновка: 4 колонки и 3 строки на одном листе.
  • -vsync vfr — переменное значение частоты кадров при выборке изображений.
  • -q:v 10 — качество выходного jpeg (меньше значение = выше качество).
  • image-sheet-filename_%03d.jpg — шаблон имени: %03d нумерует файлы, когда итоговых плиток больше, чем помещается в одном файле.

Пояснение выбора select=not(mod(n\,3000)):

  • n — номер текущего кадра в потоке.
  • mod(n,3000) возвращает остаток от деления номера кадра на 3000.
  • not(mod(…)) делает так, что выборка срабатывает каждые 3000 кадров.

Практическое правило: уменьшайте число в mod, если хотите больше кадров; увеличивайте — чтобы сделать выборку реже.

Пример: если у вас фильм 2 часа и вы хотите 24 миниатюры, рассчитайте период выборки: общие_кадры / 24 (см. раздел «Управление количеством листов»).

Команда ffmpeg в терминале

Управление количеством итоговых файлов

Если одно изображение не вмещает все выбранные кадры, ffmpeg создаст серию файлов с суффиксом %03d. Чтобы предсказать нужное значение для select (в mod) используйте формулу:

Total Frames In Your Video / Number Of Tiles In A Sheet / Number Of Image Sheets You Want

Например:

  • У вас 216000 кадров в видео (видео ~2 часа при 30 fps).
  • Вы используете tile=6x4 => 24 миниатюры на лист.
  • Хотите получить 3 листа.
  • Тогда mod-значение ≈ 216000 / 24 / 3 = 3000.

Это значение подставляете в select=not(mod(n\,3000)). Если точное число кадров неизвестно, ориентируйтесь на длительность и fps: fps × секунды ≈ кадры.

Советы по качеству и соотношению сторон

  • Масштаб (scale): выбирайте размеры, кратные исходному аспекту. Для 16:9 используйте 320:180, 640:360 и т. п.
  • Формат итогового файла: JPEG — компактный, PNG — без потерь (больше размер).
  • Качество JPEG настраивается через -q:v (0–51, где 0 — наилучшее).
  • Если хотите получить чистые кадры с метками времени, сначала экспортируйте отдельные кадры, а затем компонуйте их утилитой ImageMagick (montage).

Дополнительные методы и альтернативы

  • VLC: через меню «Видео» → «Снимок» можно периодически сохранять кадры вручную или использовать расширения/плагины для автоматизации.
  • mpv + lua-скрипты: гибкий проигрыватель с возможностью скриптинга для выборки кадров в заданные моменты.
  • ffmpeg + ImageMagick: экспортировать отдельные кадры командой ffmpeg, затем собирать плитки командой montage (ImageMagick) для более сложной верстки.
  • Python (OpenCV/Pillow): написать скрипт, который выбирает кадры по сценам, времени или детекции лиц, и собирает из них листы.

Когда выбирать альтернативу:

  • Нужна автоматическая детекция сцен — используйте OpenCV или scene-detect + ffmpeg.
  • Нужна простая быстрая галерея для одного видео — Gnome Видео или VLC.
  • Нужно массовое пакетное создание по папке — ffmpeg-скрипт или Python-утилита.

Мини-методология: шаг за шагом

  1. Определите цель: обзор/архив/веб-показ.
  2. Решите формат листа: размеры миниатюр, число колонок/строк, итоговый формат (jpg/png).
  3. Определите частоту выборки: вручную (каждые N кадров) или по времени (каждые M секунд) либо по сценам.
  4. Если нужно единообразие — используйте ffmpeg с scale и tile.
  5. Сгенерируйте и просмотрите результат; скорректируйте параметры по качеству и плотности.

Чек-листы по ролям

Редактор:

  • Указать ключевые сцены, которые должны попасть в лист.
  • Выбрать размер миниатюры, сохраняющий читаемость деталей.
  • Проверить на наличие водяных знаков/лишних титров.

Архиватор:

  • Выбрать качественный формат (PNG для архива).
  • Пронумеровать файлы по шаблону с временными метками в имени.
  • Сопроводить метаданными (JSON/CSV с временными метками).

Веб-редактор:

  • Оптимизировать размер для быстрой загрузки (усреднить качество JPEG).
  • Подумать об адаптивных версиях (маленькая/средняя/большая).

Шпаргалка команд (быстрый подбор)

ffmpeg — простая серия кадров через каждые N секунд:

ffmpeg -ss 0 -i '/path/to/video.mp4' -vf "fps=1/10,scale=320:-1" thumb-%04d.jpg

(сохранит по одному кадру каждые 10 секунд)

ffmpeg + montage (ImageMagick) — экспорт и компоновка:

ffmpeg -i video.mp4 -vf fps=1/30 frame-%05d.png
montage frame-*.png -tile 6x4 -geometry +0+0 sheet.png

Прямая плиточная генерация через ffmpeg (ещё раз):

ffmpeg -i video.mp4 -vf 'select=not(mod(n\,1500)),scale=320:240,tile=5x5' -vsync vfr out_%03d.jpg

Решение: какую стратегию выбрать (диаграмма)

flowchart TD
  A[Нужно быстрое превью?] -->|Да| B[Использовать Gnome Видео или VLC]
  A -->|Нет — нужен контроль| C[Использовать ffmpeg]
  C --> D{Нужна детекция сцен?}
  D -->|Да| E[OpenCV / scene-detect + ffmpeg]
  D -->|Нет| F[ffmpeg с select/scale/tile]

Критерии приёмки

  • Визуальная читаемость миниатюр на целевом устройстве (мобильном/рабочем столе).
  • Все ключевые сцены попали в набор (при необходимости).
  • Итоговый файл не превышает допустимого размера для публикации.

Глоссарий (в одну строку)

  • Минитюра: уменьшенное изображение кадра.
  • Tile (плитка): количество колонок × строк на листе.
  • select=…: фильтр ffmpeg для выбора кадров по номеру.
  • scale: изменение размера изображения.

Практические примеры и типичные ошибки

  1. Частая ошибка: неверный выбор mod в select — приведёт к либо слишком большому количеству кадров, либо к почти пустым листам. Всегда тестируйте на отрезке.
  2. Если используете FPS для выборки (vf=fps=…), учтите, что при переменном fps поведение может отличаться.
  3. Для материалов с титрами и заставками лучше задавать -ss, чтобы начинать выборку после вступления.

Итог

Листы миниатюр — простой и эффективный способ получить быстрый обзор видеофайлов. Для разовой, быстрой операции используйте приложение «Видео» в GNOME; для пакетной обработки и точной настройки — ffmpeg в сочетании с ImageMagick или скриптами. Выбор методики зависит от задач: удобство vs контроль.

Надеюсь, это руководство помогло. А какой метод используете вы для массовой генерации миниатюр?

Пример сгенерированного листа миниатюр ffmpeg

Результат: изменение масштаба и плитки

Большая плитка, демонстрация вариантов

Пример изменённого масштаба и частоты выборки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро