emgag / video-thumbnail-sprite
PHP library for generating video thumbnail sprites
Installs: 5 731
Dependents: 0
Suggesters: 0
Security: 0
Stars: 26
Watchers: 4
Forks: 14
Open Issues: 1
Requires
- php: 7.*
- captioning/captioning: ^2.0
- emgag/flysystem-tempdir: ^0.1.0
- intervention/image: ^2.0
- php-ffmpeg/php-ffmpeg: ~0.6
- symfony/process: ^2.5|^3.0|^4.0
Requires (Dev)
- guzzlehttp/guzzle: ^5.0|^6.0
- phpunit/phpunit: ^6.2
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 emgag/video-thumbnail-sprite
Usage
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');
Acknowledgments
- 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
License
video-thumbnail-sprite is licensed under the MIT License.