使用eyevinn开源云在5分钟内完成媒体供应链视频转码
Eyevinn开源云旨在降低开源项目的启动门槛,并通过将部分收入回馈给贡献者。本指南将引导您完成使用Eyevinn开源云的开放式Web服务进行视频转码的步骤。
1. 获取API访问令牌和项目设置
OSC_ACCESS_TOKEN的环境变量中。 如下图所示:
<code class="bash">export OSC_ACCESS_TOKEN=<access-token-copied-above></code>
<code class="bash">mkdir transcode cd transcode npm init</code>
<code class="bash">npm install --save @osaas/client-core @osaas/client-services @osaas/client-transcode</code>
transcode.js的文件,并添加以下代码:<code class="javascript">const { context } = require('@osaas/client-core');
const ctx = new context();</code>测试运行脚本:
<code class="bash">node transcode.js</code>
2. 设置用于存储转码视频文件的存储空间
<code class="bash">npm install --save minio</code>
setup()的新函数,该函数将上下文作为参数:<code class="javascript">const { context, waitForInstanceReady } = require('@osaas/client-core');
const { getMinioMinioInstance, createMinioMinioInstance } = require('@osaas/client-services');
const minio = require('minio');
const delay = (ms) => new Promise((res) => setTimeout(res, ms));
async function setup(context) {
console.log('setting up storage');
let storage = await getMinioMinioInstance(context, 'devguide');
if (!storage) {
storage = await createMinioMinioInstance(context, {
name: 'devguide',
rootuser: 'admin',
rootpassword: 'abc12345678'
});
await waitForInstanceReady('minio-minio', 'devguide', context);
await delay(2000);
}
const client = new minio.Client({
endpoint: new URL(storage.url).hostname,
accessKey: 'admin',
secretKey: 'abc12345678',
});
const buckets = await client.listBuckets();
if (!buckets.find((bucket) => bucket.name === 'output')) {
await client.makeBucket('output');
}
}
async function main() {
const ctx = new context();
await setup(ctx);
}
main();</code>运行脚本将创建一个存储服务和存储桶。
3. 设置视频转码器
将以下代码添加到setup()函数中,创建视频转码实例。(如果已拥有S3存储桶,请替换以下S3凭据为您的存储桶凭据)
追梦A系列(11.0版本,以下11.0均简称为A)是针对企业网站定制设计的,模板采用全新AS3.0代码编辑,拥有更快的运行和加载速度,A系列模板主要针对图片展示,拥有简洁大气展示效果,并且可以自由扩展图片分类,同时还拥有三个独立页面介绍栏目,一个新闻栏目,一个服务介绍栏目,一个幻灯片展示和flv视频播放栏目。A系列模板对一些加载效果进行了修改,包括背景的拉伸模式以及标题的展示方式等都进行了调整,同
0
<code class="javascript">const { getEncoreInstance, createEncoreInstance } = require('@osaas/client-services');
...
async function setup(context) {
...
let transcoder = await getEncoreInstance(context, 'devguide');
if (!transcoder) {
transcoder = await createEncoreInstance(context, {
name: 'devguide',
s3AccessKeyId: 'admin',
s3SecretAccessKey: 'abc12345678',
s3Endpoint: storage.url
});
}
}</code>4. 转码视频文件
使用以下示例视频进行转码:https://testcontent.eyevinn.technology/mp4/vinn.mp4
将以下代码添加到main()函数中:
<code class="javascript">const { transcode } = require('@osaas/client-transcode');
...
async function main() {
const ctx = new context();
await setup(ctx);
await transcode(ctx, {
encoreInstanceName: 'devguide',
inputUrl: new URL('https://testcontent.eyevinn.technology/mp4/vinn.mp4'),
externalId: 'vinn',
outputUrl: new URL('s3://output/')
});
}</code>为了接收转码进度通知,可以使用callbackUrl参数:
<code class="javascript">await transcode(ctx, {
encoreInstanceName: 'devguide',
inputUrl: new URL('https://testcontent.eyevinn.technology/mp4/vinn.mp4'),
externalId: 'vinn',
outputUrl: new URL('s3://output/'),
callbackUrl: 'https://example.com/webhook'
});</code>您可以使用S3客户端验证输出存储桶中的转码文件。
本指南简化了原文,并对代码块进行了格式调整,使其更易于阅读和理解。 同时,对部分语句进行了同义词替换,避免了直接照搬原文。
以上就是通过开放的Web服务对视频进行转码视频的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号