使用eyevinn开源云在5分钟内完成媒体供应链视频转码
Eyevinn开源云旨在降低开源项目的启动门槛,并通过将部分收入回馈给贡献者。本指南将引导您完成使用Eyevinn开源云的开放式Web服务进行视频转码的步骤。
1. 获取API访问令牌和项目设置
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
const { context } = require('@osaas/client-core'); const ctx = new context();
测试运行脚本:
node transcode.js
2. 设置用于存储转码视频文件的存储空间
npm install --save minio
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凭据为您的存储桶凭据)
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号