Download the PHP package christyoga123/video-optimizer without Composer
On this page you can find all versions of the php package christyoga123/video-optimizer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download christyoga123/video-optimizer
More information about christyoga123/video-optimizer
Files in christyoga123/video-optimizer
Package video-optimizer
Short Description A fluent Laravel package for optimizing videos - resize, convert formats (MP4, WebM, AVI), compress and reduce file size while maintaining quality
License MIT
Homepage https://github.com/christyoga123/laravel-video-optimizer
Informations about the package video-optimizer
Laravel Video Optimizer
A fluent Laravel package for optimizing videos - resize, convert formats (MP4, WebM, AVI), compress and reduce file size while maintaining quality.
Features
- ๐ฌ Format Conversion - Convert videos to MP4, WebM, OGG, MOV, MKV, AVI
- ๐ Smart Resize - Resize with max width/height while maintaining aspect ratio
- ๐๏ธ Quality Control - Adjustable bitrate, CRF, and preset settings
- ๐ง Fluent API - Chain methods for clean, readable code
- โ๏ธ Configurable - Publish and customize default settings
- ๐ผ๏ธ Thumbnail Generation - Extract thumbnails from videos
-
๐ Audio Control - Option to remove or keep audio
- ๐ต Smart Audio Codecs - Auto-detects best audio codecs (fixes WebM/Ogg issues on macOS/Homebrew)
- ๐ Video Info - Get duration, dimensions, codec info
- ๐งน Auto Cleanup - Automatic temporary file cleanup with
dontCleanup()option - ๐ฆ Queueable Job - Built-in job for background processing
Requirements
- PHP 8.1+
- Laravel 10.x, 11.x, or 12.x
- FFmpeg installed on your server
Installing FFmpeg
macOS:
Ubuntu/Debian:
Windows: Download from ffmpeg.org and add to PATH.
Installation
Install the package via Composer:
The package will automatically register its service provider.
Publish Configuration (Optional)
This will create a config/video-optimizer.php file with all available options.
Usage
Basic Usage
Using Facade
From Request Input
From File Path
With Default Settings
Apply all defaults from config at once:
With Thumbnail Generation
Remove Audio
Get Video Information
Get Size Comparison
Helper Methods
Available Methods
Format Methods
| Method | Description |
|---|---|
format(string $format) |
Set output format (mp4, webm, ogg, etc.) |
toMp4() |
Convert to MP4 format (H.264 + AAC) |
toWebm() |
Convert to WebM format (VP9 + Vorbis) |
toOgg() |
Convert to OGG format (Theora + Vorbis) |
toMov() |
Convert to MOV format (H.264 + AAC) |
toMkv() |
Convert to MKV format (H.264 + AAC) |
toAvi() |
Convert to AVI format (H.264 + MP3) |
Codec Methods
| Method | Description |
|---|---|
videoCodec(string $codec) |
Set video codec |
audioCodec(string $codec) |
Set audio codec |
Resize Methods
| Method | Description |
|---|---|
maxWidth(int $width) |
Set maximum width (maintains aspect ratio) |
maxHeight(int $height) |
Set maximum height (maintains aspect ratio) |
maxDimensions(int $width, int $height) |
Set both max width and height |
Quality & Settings
| Method | Description |
|---|---|
videoBitrate(int $kbps) |
Set video bitrate in kbps |
audioBitrate(int $kbps) |
Set audio bitrate in kbps |
crf(int $value) |
Set CRF (0-51, lower = better quality) |
preset(string $preset) |
Set encoding preset (ultrafast to veryslow) |
tempDir(string $path) |
Set custom temporary directory |
timeout(int $seconds) |
Set processing timeout |
threads(int $count) |
Set number of threads |
withDefaults() |
Apply all defaults from config |
Audio Control
| Method | Description |
|---|---|
noAudio() |
Remove audio from video |
withAudio() |
Keep audio in video |
Thumbnail Methods
| Method | Description |
|---|---|
withThumbnail(int $atSecond) |
Enable thumbnail generation at specific time |
getThumbnailPath() |
Get generated thumbnail path |
Process Methods
| Method | Description |
|---|---|
process(UploadedFile $file) |
Process uploaded file |
processUploadedFile(UploadedFile $file) |
Alias for process() |
processFromPath(string $path) |
Process from file path |
processFromRequest(string $inputName) |
Process from request input name |
Info Methods
| Method | Description |
|---|---|
getDuration(string $path) |
Get video duration in seconds |
getDimensions(string $path) |
Get video width and height |
getVideoInfo(string $path) |
Get complete video info |
Configuration
After publishing, you can customize these options in config/video-optimizer.php:
Recommended Settings
For Web Streaming (Balance)
For Small File Size
For High Quality
For Fast Processing
Integration Examples
With Spatie Media Library
With Laravel Storage
In Form Request
Queueable Job
The package includes a ready-to-use job for background processing:
Manual Cleanup Control
By default, the optimizer cleans up temporary files when the object is destroyed. If you need to keep the file longer (e.g., passing between jobs), use dontCleanup():
Custom Job Implementation
In Queue Job
Testing
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.
All versions of video-optimizer with dependencies
php-ffmpeg/php-ffmpeg Version ^1.0
illuminate/support Version ^10.0|^11.0|^12.0