azraelir/ffmpeg-bundle

Symfony bundle to provide PHP-FFmpeg as a Symfony service (https://github.com/alchemy-fr/PHP-FFmpeg)

Installs: 9

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 29

Type:symfony-bundle

0.7.2 2018-12-16 11:52 UTC

README

Latest Stable Version Total Downloads Latest Unstable Version License

This bundle provides a simple wrapper for the PHP_FFmpeg library, exposing the library as a Symfony service.

This fork adds Symfony4 support and drops legacy Symfony2 and PHP5 support

Download FFmpegBundle using composer

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

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],
];

Configuration

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

Usage

$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');