Сгенерируйте все файлы (.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.)
Ответ 6
Я написал простой скрипт для генерации миниатюр и файла vtt.
https://github.com/antonzhelyazkov/video-vtt