fmonts / ffmpeg-bundle
Symfony 扩展,将 PHP-FFmpeg 作为 Symfony 服务提供(https://github.com/PHP-FFMpeg/PHP-FFMpeg/)
0.8.5
2023-12-24 14:12 UTC
Requires
- php: >=8.0
- php-ffmpeg/php-ffmpeg: ^1.0
- symfony/dependency-injection: ^5.4 || ^6.0 || ^7.0
- symfony/framework-bundle: ^5.4 || ^6.0 || ^7.0
Requires (Dev)
README
本扩展提供了一个简单包装器,用于将PHP_FFmpeg库暴露为 Symfony 服务。
本分支增加了对 Symfony5、Symfony6 和 Symfony7 的支持,并弃用了对旧版 Symfony 和 PHP 的支持
设置扩展
- 安装 FFmpeg 并找出二进制文件的存放位置。以下是在 Ubuntu/Debian 上的示例
$ sudo apt install ffmpeg $ whereis ffmpeg # outputs: ffmpeg: /usr/bin/ffmpeg $ whereis ffprobe # outputs: ffmpeg: /usr/bin/ffprobe
- 在 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
键仅用于写入 双遍日志。
- 使用 composer 安装扩展
$ composer require fmonts/ffmpeg-bundle
- 在 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'); } }