Миниатюры кадровМиниатюры кадров отображаются при наведении курсора на линию перемотки. Чтобы это работало, нужно сделать несколько вещей:
1. КоллекцииОбычно, коллекция кадров представляет собой jpg со склеенным кадрами 160x90 (размер может быть любой). Вот пример такой картинки из Youtube: Склеивание миниатюр позволяет сэкономить ресурсы на запросах к серверу, но это не обязательно - можно хранить все кадры отдельными картинками. Вы также можете использовать однокадровые mp4 вместо jpg. 2. РазметкаРазметка кадров по времени оформляется в формате WebVTT. Нужно создать текстовый файл с любым расширением (например, txt) WEBVTT 00:02.000 --> 00:05.873 //site.com/collection1.jpg#xywh=0,0,160,90 00:05.874 --> 00:07.362 //site.com/collection1.jpg#xywh=160,0,160,90 00:07.363 --> 00:10.399 //site.com/collection1.jpg#xywh=320,0,160,90 Время указывается в формате HH:MM:SS:MMM (часы:минуты:секунды.миллисекунды). Можно убрать в начале часы, как в примере, если они не нужны. Ниже указывается ссылка на коллекцию с координатами нужного кадра в пикселях (по x, по y, ширина, высота). В примере указаны три первых кадра первого ряда коллекции. Если вы не используете коллекции и все кадры загружаются отдельно, то размечать координаты не нужно - просто указывайте ссылку на картинку. 3. ПодключениеВ редакторе нужно включить модуль миниатюр Ссылку на файл разметки следует указать плееру параметром thumbnails (его можно использовать и в плейлистах) var player = new Playerjs({"thumbnails":"//site.com/thumbnails.txt" Для загрузки текстовых файлов всегда учитывайте кроссдоменные ограничения. Как часто делать миниатюрыРекомендуют делать кадры с частотой в зависимости от длительности видео
СтилиНастроить стили миниатюр можно в конструкторе. Но если вам нужен прямой доступ через CSS, то с версии 12.12 его можно получить по id pjs_thumbnail_[id] [id] - это id контейнера плеера. Допустим, плеер находится в контейнере player, тогда идентификатор блока миниатюр будет называться pjs_thumbnail_player (внутри этого блока находится тег img с картинкой). Создание коллекции кадров с помощью FFmpegДля создания изображений из файлов видео обычно используют утилиту FFmpeg. Запуск команд осуществляется из командной строки, типовой запрос для создания коллекции картинок из MP4 ffmpeg -i "input.mp4" -vsync vfr -vf "select=isnan(prev_selected_t)+gte(t-prev_selected_t\,5),scale=160:90,tile=5x5" -qscale:v 3 "output%03d.jpg"
Пример скрипта на PHP, который готовит картинки и файл разметки. PHPПротестировано в версии FFmpeg 4.0 Это пример скрипта, который создает миниатюры кадров из видео и генерирует файл разметки. Для работы требуются библиотеки FFmpeg и FFprobe (в скрипте настраиваются пути к бинарным файлам, если они не установлены). В настройках также настраиваются параметры:
Для запуска нужно указать две переменные - file (файл видео) и output (файл с разметкой, который сгенерируется в итоге) thumbnails.php?file=video.mp4&output=video.vtt Скрипт создаст коллекции картинок с нужным интервалом и сгенерирует файл разметки в формате WebVTT |