使用eyevinn开源云在5分钟内完成媒体供应链视频转码
Eyevinn开源云旨在降低开源项目的启动门槛,并通过将部分收入回馈给贡献者。本指南将引导您完成使用Eyevinn开源云的开放式Web服务进行视频转码的步骤。
1. 获取API访问令牌和项目设置
OSC_ACCESS_TOKEN的环境变量中。 如下图所示:
export OSC_ACCESS_TOKEN=<access-token-copied-above>
mkdir transcode cd transcode npm init
npm install --save @osaas/client-core @osaas/client-services @osaas/client-transcode
transcode.js的文件,并添加以下代码:const { context } = require('@osaas/client-core');
const ctx = new context();测试运行脚本:
node transcode.js
2. 设置用于存储转码视频文件的存储空间
npm install --save minio
setup()的新函数,该函数将上下文作为参数: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();运行脚本将创建一个存储服务和存储桶。
3. 设置视频转码器
将以下代码添加到setup()函数中,创建视频转码实例。(如果已拥有S3存储桶,请替换以下S3凭据为您的存储桶凭据)
天天企业网站管理系统简繁英三语版(TianTian CMS)是由天天网络科技工作室开发的多语言企业网站源码,主要功能模块有企业信息、新闻动态、产品展示、资源下载、视频中心、人才招聘、支持服务、会员中心、留言反馈等。会员可用QQ快速登录。可在线订购产品和实时支付。运行环境:ASP+ACCESS(或ms sql),采用DIV+CSS构架,使网页整洁美观。代码用UTF-8编码,通用性比较好,适合国内外服
0
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
});
}
}4. 转码视频文件
使用以下示例视频进行转码:https://testcontent.eyevinn.technology/mp4/vinn.mp4
将以下代码添加到main()函数中:
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/')
});
}为了接收转码进度通知,可以使用callbackUrl参数:
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'
});您可以使用S3客户端验证输出存储桶中的转码文件。
本指南简化了原文,并对代码块进行了格式调整,使其更易于阅读和理解。 同时,对部分语句进行了同义词替换,避免了直接照搬原文。
以上就是通过开放的Web服务对视频进行转码视频的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号