定制 fmonts/ffmpeg-bundle 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fmonts/ffmpeg-bundle

最新稳定版本:0.8.6

Composer 安装命令:

composer require fmonts/ffmpeg-bundle

包简介

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

README 文档

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 Symfony5, Symfony6 and Symfony7 support and drops legacy Symfony and PHP support

Set up the bundle

0. Install FFmpeg and Find the Binary Paths

To use this bundle, you need FFmpeg installed on your system. Find out where the binaries (ffmpeg and ffprobe) are located.

Ubuntu/Debian:

$ sudo apt install ffmpeg
$ whereis ffmpeg
# outputs: ffmpeg: /usr/bin/ffmpeg
$ whereis ffprobe
# outputs: ffmpeg: /usr/bin/ffprobe

macOS (Apple Silicon):

$ brew install ffmpeg
$ which ffmpeg
# outputs: /opt/homebrew/bin/ffmpeg
$ which ffprobe
# outputs: /opt/homebrew/bin/ffprobe

Windows:

Download FFmpeg from ffmpeg.org. Extract the binaries to a folder and note their location, e.g.:

  ffmpeg_binary: 'C:\Program Files\FFMpeg\ffmpeg.exe'
  ffprobe_binary: 'C:\Program Files\FFMpeg\ffprobe.exe'
  1. Create the required configuration in config/packages/dubture_f_fmpeg.yaml (or rename it if using a different setup):
dubture_f_fmpeg:
  ffmpeg_binary: /usr/bin/ffmpeg
  ffprobe_binary: /usr/bin/ffprobe
  binary_timeout: 300 # Use 0 for infinite
  threads_count: 4
  temporary_directory: "%kernel.cache_dir%/ffmpeg"
  1. Install the Bundle via Composer:
$ composer require fmonts/ffmpeg-bundle
  1. Register the FFmpeg Service

Add the FFmpeg service in services.yaml under the services section:

FFMpeg\FFMpeg: '@dubture_ffmpeg.ffmpeg'

Usage example

Once set up, you can use FFmpeg in your controllers for video manipulation. Below is a sample controller action:

use FFMpeg\FFMpeg;
use FFMpeg\Coordinate\Dimension;
use FFMpeg\Filters\Video\ResizeFilter;
use FFMpeg\Format\Video\X264;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;

class VideoController extends AbstractController
{
    public function resize(FFMpeg $FFMpeg): Response
    {
        // 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');
    }
}

Supported Symfony and PHP Versions

  • Symfony Versions: 5.4, 6.x, and 7.x
  • PHP Versions: 8.0 and higher

For further documentation, visit the official PHP-FFmpeg library to explore more options and features.

统计信息

  • 总下载量: 178.9k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 12
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 12
  • Watchers: 2
  • Forks: 28
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-12-07