dumpk / elastcoder
AWS Elastic Transcoder服务集成
Requires
- aws/aws-sdk-php: ~3.0
- dumpk/esetres: 0.9
Requires (Dev)
- laravel/laravel: ~5.1
- phpspec/phpspec: ~2.1
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-17 08:30:47 UTC
README
Laravel的AWS Elastic Transcoder集成。如果你不想深入研究PHP 3.x版本的AWS SDK,这是一个简单的封装!
安装
使用composer安装此包
composer require dumpk/elastcoder
将服务提供者添加到config/app.php文件中
Dumpk\Elastcoder\ElastcoderServiceProvider::class
运行以下命令发布配置文件:
php artisan vendor:publish --tag=elastcoder
将以下变量添加到.env文件中,并使用您的Amazon凭证
AWS_ACCESS_KEY_ID={AMAZONACCESSKEY}
AWS_SECRET_ACCESS_KEY={SECRETAMAZONSOMETHINGLONG}
AWS_REGION={YOURREGION}
用法
将ElastcoderAWS类添加到类头中
use Dumpk\Elastcoder\ElastcoderAWS;
现在您只需要实例化您的类
$elastcoder = new ElastcoderAWS();
您需要在使用此库之前将视频上传到S3,这意味着您已经为您想要编码的文件拥有了密钥。配置必须如下所示:
$config = [ 'PresetId' => '432423-dsda', 'width' => 1920, 'height' => 1080, 'aspect' => '16:9', 'ext' => 'mp4', 'PipelineId' => '343244232-n2fuqq4', 'Watermarks' => [[ 'PresetWatermarkId' => 'BottomRight', 'InputKey' => '1080.png', ]], 'TimeSpan' => [ 'StartTime' => '0.4', 'Duration' => '5.3' ], ]
在dumpk/elastcoder/example/elastcoder.php配置文件夹中有一个示例文件,请记得更改pipeline和presetId的值,这些值您已经在AWS账户中配置好了。
现在您可以调用转码函数
$job = $elastcoder->transcodeVideo($asset->key, $destinationKey, $config, $thumbPattern);
您还可以这样转码音频文件
$job = $elastcoder->transcodeAudio($inputfile,$uotputfile,$artwork)
这将返回一个包含作业ID的数组,您可以通过检查作业的完整性来确定视频是否已准备好。但您已经知道这一点,所以为了方便起见,您可以使用
$job = $elastcoder->getJob($job["Id"]);
并检查$job['Status']是否等于'complete'
您还可以更改文件的ACL,因为您可能希望让每个人都能看到您令人惊叹的视频,所以
$elastcoder->setPublicObject($key, $bucket);
如果您想更具体地定义权限并具有不同类型的权限,您可以使用
$elastcoder->setObjectACL($key, $bucket, $acl);
$acl可以是以下值的字符串 => private|public-read|public-read-write|authenticated-read|bucket-owner-read|bucket-owner-full-control