This is the documentation for
v7 but the latest version is
v10
.
You can switch versions in the menu on the left/at the top.
Check your current version with the following command:
composer show spatie/laravel-medialibrary
The medialibrary has built-in support to convert images. To generate conversions of other media types – most notably PDFs and videos – the medialibrary uses a image generators to create a derived image file of the media.
Conversion of specific file type are defined in the exact same way as images:
$this->addMediaConversion('thumb')
->width(368)
->height(232)
->performOnCollections('videos');
The medialibrary includes image generators for the following file types:
The PDF generator requires Imagick and Ghostscript. If you're running into issues with Ghostscript have a look at issues regarding Ghostscript.
The only requirement to perform a conversion of a SVG file is Imagick.
##Video
The video image generator uses the PHP-FFMpeg package that you can install via composer:
$ composer require php-ffmpeg/php-ffmpeg
You'll also need to follow FFmpeg
installation instructions on their official website.
The video image generator allows you to choose at which time of the video the derived file should be created using the setExtractVideoFrameAtSecond
on the conversion.
$this->addMediaConversion('thumb')
->width(368)
->height(232)
->extractVideoFrameAtSecond(20)
->performOnCollections('videos');
Once the conversion is created you can easily use the thumbnail in a html video
tag for example:
<video controls poster="{{ $video->getUrl('thumb') }}">
<source src="{{ $video->getUrl() }}" type="video/mp4">
Your browser does not support the video tag.
</video>