nystudio107 / transcoder
将视频转换为各种格式,并提供视频缩略图
Requires
- composer/installers: ~1.0
This package is auto-updated.
Last update: 2024-08-29 04:32:32 UTC
README
已弃用
此Craft CMS 2.x插件不再受支持,但它功能齐全,您可以按需继续使用。许可证还允许您将其分支出来,根据需要对其进行修改以支持旧版本。
此插件的Craft CMS 3.x版本可在以下位置找到: craft-transcoder,并且也可以通过Craft CP中的Craft插件商店进行安装。
Craft CMS的转码插件
将视频转换为各种格式,并提供视频缩略图
相关: Craft 3.x的转码器
安装
要安装Transcoder,请按照以下步骤操作
- 下载并解压文件,将
transcoder
目录放入您的craft/plugins
目录中 - -OR- 直接在
craft/plugins
文件夹中执行git clone https://github.com/nystudio107/transcoder.git
。然后您可以使用git pull
来更新它 - -OR- 使用Composer通过
composer require nystudio107/transcoder
安装 - 在Craft控制面板的设置>插件下安装插件
- 插件文件夹应命名为
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提供