vasictech/encoder

Laravel 包,用于使用 FFMpeg 编码视频文件

dev-master 2016-10-04 15:50 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:43:29 UTC


README

#Laravel Encoder (Alpha) 1.0

一个面向对象的 Laravel 包,用于使用 FFMPEG 编码视频文件

该包目前处于 Alpha 阶段,功能有限,并将持续升级,增加大量不同特性

此库需要安装有效的 FFMpeg。

安装

推荐通过 Composer 安装 Encoder。

{
    "require": {
        "vasictech/encoder": "~1.0"
    }
}

在 config/app.php 中注册包作为服务

return [
    VasicTech\Encoder\EncoderServiceProvider::class,
]

执行配置发布

return [
    'encoder' => 'ffmpeg',

    'ffmpeg' => [
        'path' => '/usr/bin/ffmpeg',
        'codecs' => [
            'video' => 'libx264',
            'audio' => 'aac',
        ],
        'options' => [
            'strict' => true,
            'replace' => true,
            'fork' => true,
            'log' => storage_path(),
        ]
    ]
];

配置配置文件

return [
    VasicTech\Encoder\EncoderServiceProvider::class,
]

基本用法

$encoder = VasicTech\Encoder\Encoder\FFMpeg();
$jobId = $encoder
    ->input(storage_path('app/public/trailer.mp4'))
    ->output(storage_path('app/public/trailer_enc.mp4'))
    ->execute();

脚本返回 jobID,可以记录在数据库中与文件关联。输出日志文件将命名为 jobID

文档

编解码器

您可以提供两个参数,或者只提供一个参数,第一个是视频编解码器,第二个是音频编解码器

$encoder->codecs('libx264', 'libfaac');

比特率

您可以提供两个参数,或者只提供一个参数,第一个是视频比特率,第二个是音频比特率

$encoder->bitrate('1200k', '128k');

大小

您可以提供两个参数,或者只提供一个参数,第一个是视频宽度,第二个是视频高度,如果没有提供,视频将缩放到提供的大小

$encoder->size(1280, 720);

替换

如果 ffmpeg 应替换已存在的文件

$encoder->replace(true);

严格

如果应该添加 '-strict -2' 参数

$encoder->strict(true);

分支

如果进程应该分支

$encoder->fork(true);

日志

如果 ffmpeg 应写入日志文件

$encoder->log('/path/to/file.log');

格式

强制输出格式

$encoder->format('mp4');

许可

此项目采用 MIT 许可证