sujayjaju/ffmpeg-bundle
Composer 安装命令:
composer require sujayjaju/ffmpeg-bundle
包简介
Symfony bundle to provide PHP-FFmpeg (https://github.com/PHP-FFmpeg/PHP-FFmpeg) as a Symfony service
关键字:
README 文档
README
This bundle provides a simple wrapper for the PHP_FFmpeg library, exposing it as a Symfony service.
Based on pulse00/ffmpeg-bundle by pulse00
Usage Example
Enable the extension in the AppKernel
.... new sujayjaju\FFmpegBundle\PhpFFmpegBundle(), ....
Configure which ffmpeg binary to use in config.yml:
php_ffmpeg: ffmpeg_binary: /usr/bin/ffmpeg ffprobe_binary: /usr/bin/ffprobe binary_timeout: 300 # Use 0 for infinite threads_count: 4
Using the service:
$ffmpeg = $this->get('php_ffmpeg.ffmpeg'); // Open video $video = $ffmpeg->open('/your/source/folder/input.avi'); // Resize to 640x480 $video ->filters() ->resize(new Dimension(640, 480), ResizeFilter::RESIZEMODE_INSET) ->synchronize(); // Create a thumbnail $video ->frame(FFMpeg\Coordinate\TimeCode::fromSeconds(10)) ->save('/PATH/frame.jpg'); // Start transcoding and save video $video->save(new FMpeg\Format\Video\X264(), '/PATH/video.mp4');
Sample Integration With 1up-lab/OneupUploaderBundle
- Step 1: Create Your Upload Listener Class
namespace Application\YourBundle\EventListener; use FFMpeg\Exception\InvalidArgumentException; use FFMpeg\Exception\RuntimeException; use Oneup\UploaderBundle\Event\PostUploadEvent; class YourUploadListener { protected $doctrine; protected $ffmpeg; public function __construct($doctrine, $ffmpeg) { $this->doctrine = $doctrine; $this->ffmpeg = $ffmpeg; } public function onUpload(PostUploadEvent $event) { $file_path = $event->getFile()->getPathname(); $response = $event->getResponse(); $video = null; try{ $ffmpeg = $this->ffmpeg->open($file_path); }catch(InvalidArgumentException $e){ $response->setSuccess(false); $response->setError("Could not load file"); $response['preventRetry'] = true; unlink($file_path); return; }catch(RuntimeException $e){ $response->setSuccess(false); $response->setError("Invalid File"); $response['preventRetry'] = true; unlink($file_path); return; } // Sample code to check if video was uploaded $streams = $ffmpeg->getStreams(); foreach($streams as $stream){ if($stream->get('codec_type') == 'video'){ $video = $stream; } } if(is_null($video)){ $response->setSuccess(false); $response->setError("Invalid Video"); $response['preventRetry'] = true; unlink($file_path); return; } // Do what you want with the video // $video } }
- Step 2: Define your service
application.your_upload_listener: class: Application\YourBundle\EventListener\YourUploadListener arguments: [@doctrine, @php_ffmpeg.ffmpeg] tags: - { name: kernel.event_listener, event: oneup_uploader.post_upload, method: onUpload }
sujayjaju/ffmpeg-bundle 适用场景与选型建议
sujayjaju/ffmpeg-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.16k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2014 年 11 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「ffmpeg」 「multimedia」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sujayjaju/ffmpeg-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sujayjaju/ffmpeg-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sujayjaju/ffmpeg-bundle 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Thumbnails for videos
FFMpeg video/audio/subs conversions, thumbnails, audio extraction, query...
A simple but effective command-line tool for generating thumbnails of a video, and corresponding VTT file, for use within JW Player to allow for toolbar video preview.
SoMin API SDK is a PHP library for making calls to SoMin API.
Allows you to upload, manage, and display files from your server directories.
Translate your app into 113+ Languages with Human Translation Capabilities!
统计信息
- 总下载量: 1.16k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-11-12