多尔比奥普蒂维尤 REST APIs 节点客户端。 JS 的包装 Dolby OptiView 实时流线 和多尔比.io媒体 REST APIS.
安装此工程
运行 npm 命令以安装软件包 @dolbyio/dolbyio-rest-apis-client 输入您的节点项目 :
npm install @dolbyio/dolbyio-rest-apis-client
Dolby Millicast 实例
创建发布符号
import { streaming } from '@dolbyio/dolbyio-rest-apis-client';
const API_KEY = process.env.DOLBYIO_API_SECRET;
const publishToken = await streaming.publishToken.create(API_KEY, {
label: 'My token',
streams: [
{
streamName: 'feedA',
},
],
});
console.log(publishToken);
创建订阅符
import { streaming } from '@dolbyio/dolbyio-rest-apis-client';
const API_KEY = process.env.DOLBYIO_API_SECRET;
const subscribeToken = await streaming.subscribeToken.create(API_KEY, {
label: 'My token',
streams: [
{
streamName: 'feedA',
},
],
});
console.log(subscribeToken);
媒体实例
以下是如何将文件上传到多尔比的例子. io临时云存储,增强文件并下载结果.
获取 API 令牌
从 Dolby.io 仪表板上取出 App Key and Secret,并在你的蟒蛇脚本中使用以下代码.
import { media } from '@dolbyio/dolbyio-rest-apis-client';
const APP_KEY = process.env.DOLBYIO_APP_KEY;
const APP_SECRET = process.env.DOLBYIO_APP_SECRET;
// Request an Access Token
const jwt = await media.authentication.getApiAccessToken(APP_KEY, APP_SECRET);
console.log('Access token', jwt);
上传文件进行处理
上传媒体文件到 Dolby.io 临时云存储器进行处理:
// Temporary storage URL that will be used as reference for the job processing
const inputUrl = 'dlb://in/file.mp4';
// Local path of the file to upload
const originalFilePath = '/path/to/original_file.mp4';
await media.io.uploadFile(jwt, inputUrl, originalFilePath);
开始强化工作
生成工作说明并发至Dolby.io.
// Temporary storage URL that will be used as reference for the job processing
const outputUrl = 'dlb://out/file.mp4';
const jobDescription = JSON.stringify({
content: { type: 'podcast' },
input: inputUrl,
output: outputUrl,
});
const jobId = await media.enhance.start(jwt, jobDescription);
console.log(`Job ID: ${jobId}`);
等工作完成再说
获得工作状态,等待工作完成.
const sleep = (delay) => new Promise((r) => setTimeout(r, delay));
let result = await media.enhance.getResults(jwt, jobId);
while (result.status === 'Pending' || result.status === 'Running') {
console.log(`Job status is ${result.status}, taking a 5 second break...`);
await sleep(5000);
result = await media.enhance.getResults(jwt, jobId);
}
if (result.status !== 'Success') {
console.error('There was a problem with processing the file', result);
return;
}
下载已处理的文件
在此阶段,文件已经处理完毕并写入了临时存储器,这样我们就可以下载.
// Local path where to download the file to
const enhancedFilePath = '/path/to/enhanced_file.mp4';
await media.io.downloadFile(jwt, outputUrl, enhancedFilePath);
日志
也可以使用以下代码打印控制台中的日志并选择日志级别.
import { Logger } from '@dolbyio/dolbyio-rest-apis-client';
Logger.useDefaults({
defaultLevel: Logger.TRACE,
});
怎么样
为了建造 dist 文件夹,运行命令 :
npm run build
文献以 类型文件,生成 Doc,运行以下命令。 您可以在 docs 文件夹.
npm run docs