stef77dd / videothumbnailsprite
PHP library for generating video thumbnail sprites
1.0.3
2023-10-19 14:49 UTC
Requires
- php: >=7.3 || >=8.0
- captioning/captioning: >=2.0
- emgag/flysystem-tempdir: >=3.0
- intervention/image: >=2.5
- php-ffmpeg/php-ffmpeg: >=1.1
- symfony/process: >=5.0
Requires (Dev)
- guzzlehttp/guzzle: >=7.0
- phpunit/phpunit: >=9.0
README
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.
System requirements
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)
Installation
composer require stef77dd/videoThumbnailSprite
Usage
use \Stef77dd\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');
Acknowledgments
- Inspired by vlanard/videoscripts and scaryguy/jwthumbs.
- Thanks to Mehrdad-Dadkhah for adding ffmpegthumbnailer support and other additional features.
- Forked from Emgag's video-thumbnail-sprite
Uses:
- captioning/captioning
- imrantune/flysystem-tempdir
- intervention/image
- php-ffmpeg/php-ffmpeg
- symfony/process
- thephpleague/flysytem
License
videoThumbnailSprite is licensed under the MIT License.