使用eyevinn开源云在5分钟内完成媒体供应链视频转码
Eyevinn开源云旨在降低开源项目的启动门槛,并通过将部分收入回馈给贡献者。本指南将引导您完成使用Eyevinn开源云的开放式Web服务进行视频转码的步骤。
1. 获取API访问令牌和项目设置
访问Eyevinn开源云网络控制台的“设置/API”页面。复制API访问令牌,并将其存储在名为OSC_ACCESS_TOKEN的环境变量中。 如下图所示:

export OSC_ACCESS_TOKEN=
创建一个Node.js项目:
mkdir transcodecd transcodenpm init
安装JavaScript客户端SDK:
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. 设置用于存储转码视频文件的存储空间
(如果您已拥有S3兼容存储,可跳过此步骤)安装Minio客户端库:
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凭据为您的存储桶凭据)
通义视频
通义万相AI视频生成工具
70 查看详情
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服务对视频进行转码视频的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/371051.html
微信扫一扫
支付宝扫一扫