Сгенерируйте все файлы (.vtt + sprite) для параметров Thumbnails Tooltip Jwplayer

Каков наилучший способ сгенерировать файл ".VTT" и справку jpg, прикрепленную к нему для Thumbnails Toolkip Jwplayer (http://www.jwplayer.com/blog/building-tooltip-thumbnails-with-encodingcom/-?

Я знаю, как сделать спрайт изображения с помощью php, но я не знаю, как сделать скриншоты каждого видео со временем во втором. Я думаю, что должен быть серверный инструмент для выполнения всех задач, но я не могу найти его.

Спасибо

Ответ 1

Я написал script для выполнения этой задачи. Учитывая видеофайл (MP4 или M4v), сгенерируйте уменьшенные изображения, скомпилируйте спрайт и создайте файл VTT, совместимый с миниатюрами всплывающих подсказок JWPlayer. Все манипуляции с изображениями используют инструменты из ffmpeg, ImageMagick и, необязательно, sips и optipng. Часть поколения WebVTT, я должен был написать.

Вам нужно будет установить ffmpeg и imagemagick, как минимум, чтобы использовать это.

Код Github находится здесь: https://github.com/vlanard/videoscripts (под спрайты /).

Основной смысл:

  • Создайте кучу миниатюр, например. каждые 45 секунд с видео

    ffmpeg -i ../archive/myvideofile.mp4 -f image2 -bt 20M -vf fps=1/45 thumbs/myvideofile/tv%03d.png 
    
  • Измените размеры миниатюр на маленькие, например. 100pixels wide

    sips --resampleWidth 100 thumbs/myvideofile/tv001.png thumbs/myvideofile/tv002.png thumbs/myvideofile/tv003.png
    

    ИЛИ если sips недоступно, используйте утилиту imageMagick:

    mogrify -geometry 100x thumbs/myvideofile/tv001.png thumbs/myvideofile/tv002.png thumbs/myvideofile/tv003.png
    
  • Получите размеры высоты и ширины одного из миниатюр для использования в качестве основы координат нашей сетки, используя утилиту ImageMagick

    identify -format "%g - %f" thumbs/myvideofile/tv001.png 
    

    который возвращает вывод: 100x55 + 0 + 0 - tv001.png

    из которого мы анализируем 100 и 55 в качестве нашей ширины и высоты, а общая геометрия каждого миниатюры (W, H, X, Y)

  • Затем мы создаем нашу единственную spritemap из отдельных миниатюр. Мы определяем размер целевой сетки (например, 2x2, 8x8) в соответствии с количеством эскизов, которые мы сгенерировали для этого видео, а также передаем геометрию спрайта с помощью утилиты ImageMagick

    montage thumbs/myvideofile/tv*.png -tile 2x2 -geometry 100x55+0+0 thumbs/myvideofile/myvideofile_sprite.png
    
  • Дополнительно мы можем выполнить дополнительный шаг сжатия, чтобы уменьшить спрайт

    optipng thumbs/myvideofile/myvideofile_sprite.png
    
  • Затем мы создаем файл VTT на основе количества созданных эскизов, используя интервал, который мы использовали для выделения эскизов для маркировки каждого временного сегмента и используя известные координаты каждого последовательного изображения внутри нашего спрайта, который отображает связанный сегмент.

Ответ 2

Я знаю, что это уже несколько лет, но у меня была такая же проблема, и я нашел инструмент командной строки, который быстро создает спрайты, и поскольку 1.0.6 поддерживает создание WebVTT из коробки. Имя mt, и вы можете проверить его здесь.

Цитата из их документации вы можете использовать ее следующим образом:

просто запустите mt и предоставите любой видеофайл в качестве аргументов: mt video.avi

Некоторые параметры можно изменить с помощью флагов выполнения непосредственно в mt для получения дополнительной информации просто запустите mt --help

Ответ 3

Вариант 1:

Вы можете использовать API-интерфейс encoding.com и сообщить им также экспортировать файл vtt

Я рекомендую прочитать " Как создать временные синхронизированные эскизы для использования в JW-плеере?" объяснение от encoding.com База знаний

Вариант 2:

используйте thumbnailer (mtn), это инструменты командной строки, работающие в системах UNIX, Windows. Но вам придется написать пользовательский script, чтобы сгенерировать файл VTT, соответствующий

  • Супер быстрый! Благодаря FFmpeg libavcodec.
  • Программа командной строки: может использоваться для удаленных подключений к серверам совместного размещения или использоваться в сценариях.
  • Пакетный режим: рекурсивно поиск каталогов для файлов фильмов. Запуск при более низком приоритете (хороший 10 на Linux, бездействует в Windows) по умолчанию. Для запуска с обычным приоритетом используйте опцию -n.
  • Эскизы группируются вместе в одном файле jpeg и могут быть сохранены отдельно (-I опция).
  • Прекрасно работайте с именами файлов Unicode как в Linux, так и в Windows (возможно, потребуется изменить шрифт с -f fontfile).

Ответ 4

Я разработал жемчужину Ruby, чтобы легко создать файл .VTT и спрайт эскизов.

Спасибо за вдохновляющий @randalv!

Вы можете посмотреть здесь: https://github.com/scaryguy/jwthumbs


Использование

Создайте файл видео:

movie = Jwthumbs::Movie.new("YOUR_VIDEO.mp4")

Jwthumbs::Movie.new принимает второй параметр как хэш options. Вы можете настроить несколько файлов одновременно с созданием своего видеоролика следующим образом:

movie = Jwthumbs::Movie.new("YOUR_VIDEO.mp4", seconds_between: 60, sprite_name: "my_sprite_name.jpg")

или после того, как вы установили свое видео, вы можете использовать файл Jwthumbs::Movie для настройки:

movie = Jwthumbs::Movie.new("YOUR_VIDEO.mp4")
movie.seconds_between = 60
movie.sprite_name = "my_sprite_name.jpg"

а затем для создания миниатюр и .VTT файла просто запустите эту команду.

movie.create_thumbs!

Ответ 5

Я сделал бесплатное веб-приложение для этого: https://www.videohop.com.au/thumbnail-generator

Перетащите видеофайл, и он даст вам zip файл, содержащий миниатюры спрайтов + файлы VTT. Поддерживает несколько наборов качества. (Например, 60p + 180p.)