nystudio107/transcoder

此包最新版本(1.1.1)没有可用的许可证信息。

将视频转换为各种格式,并提供视频缩略图

资助包维护!
khalwat

安装: 191

依赖项: 0

建议者: 0

安全: 0

星级: 25

关注者: 6

分支: 4

开放问题: 1

类型:craft-plugin

1.1.1 2017-03-05 06:21 UTC

This package is auto-updated.

Last update: 2024-08-29 04:32:32 UTC


README

No Maintenance Intended

已弃用

此Craft CMS 2.x插件不再受支持,但它功能齐全,您可以按需继续使用。许可证还允许您将其分支出来,根据需要对其进行修改以支持旧版本。

此插件的Craft CMS 3.x版本可在以下位置找到: craft-transcoder,并且也可以通过Craft CP中的Craft插件商店进行安装。

Craft CMS的转码插件

将视频转换为各种格式,并提供视频缩略图

相关: Craft 3.x的转码器

安装

要安装Transcoder,请按照以下步骤操作

  1. 下载并解压文件,将transcoder目录放入您的craft/plugins目录中
  2. -OR- 直接在craft/plugins文件夹中执行git clone https://github.com/nystudio107/transcoder.git。然后您可以使用git pull来更新它
  3. -OR- 使用Composer通过composer require nystudio107/transcoder安装
  4. 在Craft控制面板的设置>插件下安装插件
  5. 插件文件夹应命名为transcoder,以便Craft能够识别。GitHub最近开始在zip文件下载的文件夹名称中附加-master(分支名称)。

Transcoder适用于Craft 2.4.x、Craft 2.5.x和Craft 2.6.x。 ffmpeg 必须安装才能使其正常工作。

Transcoder概述

Transcoder视频允许您将任何本地存储的视频转换为任何比特率/帧率,并将其保存为Web就绪的.mp4文件。

它还允许您以任何大小和任何时间码获取视频的缩略图。

最后,它允许您通过特殊下载链接下载任意文件(例如转码后的视频)。

如果源文件自上次视频编码以来已更改,它将重新编码视频并替换它。

配置Transcoder

Transcoder的唯一配置在config.php文件中,这是一种多环境友好方式来存储默认设置。不要编辑此文件,而是将其复制到craft/config作为transcoder.php并在此处进行更改。以下是默认的config.php文件

<?php
/**
 * Transcoder Configuration
 *
 * Completely optional configuration settings for Transcoder if you want to customize some
 * of its more esoteric behavior, or just want specific control over things.
 *
 * Don't edit this file, instead copy it to 'craft/config' as 'transcoder.php' and make
 * your changes there.
 */

return array(

/**
 * The path to the ffmpeg binary
 */
    "ffmpegPath" => "/usr/bin/ffmpeg",

/**
 * The path where the transcoded videos are stored
 */

    "transcoderPath" => $_SERVER['DOCUMENT_ROOT'] . "/transcoder/",

/**
 * The URL where the transcoded videos are stored
 */

    "transcoderUrl" => "/transcoder/",
);

使用Transcoder

生成转码视频

要生成转码视频,请执行以下操作

{% set transVideoUrl = craft.transcoder.getVideoUrl('/home/vagrant/sites/nystudio107/public/trimurti.mp4', {
    "frameRate": 20,
    "bitRate": "500k"
}) %}

您也可以传递一个AssetFileModel

{% set myAsset = entry.someAsset.first() %}
{% set transVideoUrl = craft.transcoder.getVideoUrl(myAsset, {
    "frameRate": 20,
    "bitRate": "500k"
}) %}

如果已存在转码视频,它将返回转码视频的URL;如果不存在,它将返回“”并启动转码过程(对于长视频,这可能需要相当长的时间)。

在您传递的数组中,如果键/值对不存在,则使用默认值

{
    "bitRate" => "800k",
    "frameRate" => 15,
}

如果您想让Transcoder不更改参数,请在键/值对中传递空值,例如

{% set transVideoUrl = craft.transcoder.getVideoUrl('/home/vagrant/sites/nystudio107/public/trimurti.mp4', {
    "frameRate": "",
    "bitRate": ""
}) %}

上面的示例将导致它不更改源电影的帧率或比特率(不建议用于客户端校验目的)。

生成视频缩略图

要从视频生成缩略图,请执行以下操作

{% set transVideoThumbUrl = craft.transcoder.getVideoThumbnailUrl('/home/vagrant/sites/nystudio107/public/trimurti.mp4', {
    "width": 300,
    "height": 200,
    "timeInSecs": 20,
}) %}

该功能将返回一个URL,指向视频缩略图,大小由您指定,从视频的时间码timeInSecs处开始。如果缩略图不存在,它将立即创建。

在您传递的数组中,如果键/值对不存在,则使用默认值

{
    "width" => 200,
    "height" => 100,
    "timeInSecs" => 10,
}

如果您想让Transcoder不更改参数,请在键/值对中传递空值,例如

{% set transVideoThumbUrl = craft.transcoder.getVideoThumbnailUrl('/home/vagrant/sites/nystudio107/public/trimurti.mp4', {
    "width": "",
    "height": "",
    "timeInSecs": 20,
}) %}

上述示例将导致它以视频的任何大小生成缩略图(不建议用于客户校验目的)。

生成下载URL

要生成文件的下载URL,请执行以下操作

{% set downloadUrl = craft.transcoder.getDownloadUrl('/some/url') %}

当用户点击URL时,文件将下载到他们的本地计算机。如果文件不存在,返回""

出于安全原因,文件必须位于webroot中(因此必须作为参数传递URL或URI,而不是路径)。

转码路线图

一些待办事项和潜在功能的想法

  • 视频可能以不同的格式保存(尽管.mp4确实是视频的标准格式)
  • 视频可能被调整大小,无论是宽高比、绝对大小还是其他
  • 可以编写访问器来获取有关视频的信息(高度、宽度、时长等)

nystudio107提供