fmonts/ffmpeg-bundle

Symfony 扩展,将 PHP-FFmpeg 作为 Symfony 服务提供(https://github.com/PHP-FFMpeg/PHP-FFMpeg/)

安装数量: 100,623

依赖关系: 0

建议者: 0

安全性: 0

星标: 11

关注者: 3

分支: 29

开放问题: 0

类型:symfony-bundle

0.8.5 2023-12-24 14:12 UTC

This package is auto-updated.

Last update: 2024-08-28 12:48:46 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

本扩展提供了一个简单包装器,用于将PHP_FFmpeg库暴露为 Symfony 服务。

本分支增加了对 Symfony5、Symfony6 和 Symfony7 的支持,并弃用了对旧版 Symfony 和 PHP 的支持

设置扩展

  1. 安装 FFmpeg 并找出二进制文件的存放位置。以下是在 Ubuntu/Debian 上的示例
$ sudo apt install ffmpeg
$ whereis ffmpeg
# outputs: ffmpeg: /usr/bin/ffmpeg
$ whereis ffprobe
# outputs: ffmpeg: /usr/bin/ffprobe
  1. 在 yaml 文件中创建所需的配置,例如 config/packages/dubture_f_fmpeg.yaml
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: /var/ffmpeg-tmp

注意:temporary_directory 键仅用于写入 双遍日志

  1. 使用 composer 安装扩展
$ composer require fmonts/ffmpeg-bundle
  1. 在 services.yaml 中,在 services 下添加
FFMpeg\FFMpeg: '@dubture_ffmpeg.ffmpeg'

使用方法

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