WARNING: This library is no longer maintained /WARNING
PHP library for generating video thumbnail sprites to be used for thumbnails in JWPlayer's seek bar.
PHP 7.x (see release 0.2 for the latest version supporting PHP 5.5/5.6).
Following binaries need to be installed
- Either ffmpeg (tested with >= v2.2) or ffmpegthumbnailer
- imagemagick (tested with >= v6.6)
composer require emgag/video-thumbnail-sprite
use Emgag\Video\ThumbnailSprite\ThumbnailSprite;
$sprite = new ThumbnailSprite();
$ret = $sprite->setSource('path-to-source-video.mp4')
->setOutputDirectory('dir-to-store-sprite-and-vtt')
// filename prefix for image sprite and WebVTT file (defaults to "sprite", resulting in "sprite.jpg" and "sprite.vtt")
->setPrefix('sprite')
// absolute URL of sprite image or relative to where the WebVTT file is stored
->setUrlPrefix('http://example.org/sprites')
// sampling rate in seconds
->setRate(10)
// minimum number of images (will modify sampling rate accordingly if it would result in fewer images than this)
->setMinThumbs(20)
// width of a single thumbnail in px
->setWidth(120)
->generate();
// $ret = ['vttFile' => 'path-to-vtt-file', 'sprite' => 'path-to-sprite-file']
There are two different thumbnailing methods available, ffmpeg (default) or ffmpegthumbnailer.
// default, is set implicitly if not provided
$sprite->setThumbnailer(new Thumbnailer\Ffmpeg());
// change thumbnailer to ffmpegthumbnailer
$sprite->setThumbnailer(new Thumbnailer\FfmpegThumbnailer());
To keep individual source images of the sprite instead of removing it after assembling the sprite into a single image:
$sprite->setOutputImageDirectory('dir-to-store-images');
- Inspired by vlanard/videoscripts and scaryguy/jwthumbs.
- Thanks to Mehrdad-Dadkhah for adding ffmpegthumbnailer support and other additional features.
Uses:
- captioning/captioning
- emgag/flysystem-tempdir
- intervention/image
- php-ffmpeg/php-ffmpeg
- symfony/process
- thephpleague/flysytem
video-thumbnail-sprite is licensed under the MIT License.