This bundle provides a simple wrapper for the PHP_FFmpeg library, exposing the library as a Symfony service.
Require the bundle with composer:
$ composer require fmonts/ffmpeg-bundle "^0.7"
Composer will install the bundle to your project's vendor/fmonts/ffmpeg-bundle
directory.
Enable the bundle in the kernel
Note: In a default Symfony application that uses Symfony Flex, bundles are enabled/disabled automatically for you when installing/removing them, so you don't need to look at or edit this bundles.php file.
<?php
// config/bundles.php
return [
// ...
Dubture\FFmpegBundle\DubtureFFmpegBundle::class => ['all' => true],
];
Configure which ffmpeg binary to use in packages/dubture_f_fmpeg.yaml
or in your parameters.yaml
file:
dubture_f_fmpeg:
ffmpeg_binary: /usr/bin/ffmpeg
ffprobe_binary: /usr/bin/ffprobe
binary_timeout: 300 # Use 0 for infinite
threads_count: 4
$ffmpeg = $this->get('dubture_ffmpeg.ffmpeg');
// Open video
$video = $ffmpeg->open('/your/source/folder/input.avi');
// Resize to 1280x720
$video
->filters()
->resize(new Dimension(1280, 720), ResizeFilter::RESIZEMODE_INSET)
->synchronize();
// Start transcoding and save video
$video->save(new X264(), '/your/target/folder/video.mp4');