但是从界面上看我无法设置
查找视频或音频文件并进行转换的自动作业。
Node.js SDK 不支持它,但您可以执行以下操作:如果您将视频存储在 S3 中(如果不将它们移动到 S3,因为弹性转码器使用 S3)您可以在 S3 上运行 Lambda 函数 putObject 触发由 AWS 提供。
http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html
我的问题是,有没有人成功开始在
node.js 并且知道如何将视频从一种格式转换为另一种格式
/或向下设置比特率?如果有人,我将不胜感激
可以通过一些例子来指出我正确的方向
可能会起作用。
我们使用 AWS 进行带节点的视频转码没有任何问题。找出每个参数很费时间,但我希望这几行可以帮助你:
const aws = require('aws-sdk');
aws.config.update({
accessKeyId: config.AWS.accessKeyId,
secretAccessKey: config.AWS.secretAccessKey,
region: config.AWS.region
});
var transcoder = new aws.ElasticTranscoder();
let transcodeVideo = function (key, callback) {
// presets: http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/system-presets.html
let params = {
PipelineId: config.AWS.transcode.video.pipelineId, // specifies output/input buckets in S3
Input: {
Key: key,
},
OutputKeyPrefix: config.AWS.transcode.video.outputKeyPrefix,
Outputs: config.AWS.transcode.video.presets.map(p => {
return {Key: `${key}${p.suffix}`, PresetId: p.presetId};
})
};
params.Outputs[0].ThumbnailPattern = `${key}-{count}`;
transcoder.createJob(params, function (err, data) {
if (!!err) {
logger.err(err);
return;
}
let jobId = data.Job.Id;
logger.info('AWS transcoder job created (' + jobId + ')');
transcoder.waitFor('jobComplete', {Id: jobId}, callback);
});
};
一个示例配置文件:
let config = {
accessKeyId: '',
secretAccessKey: '',
region: '',
videoBucket: 'blabla-media',
transcode: {
video: {
pipelineId: '1450364128039-xcv57g',
outputKeyPrefix: 'transcoded/', // put the video into the transcoded folder
presets: [ // Comes from AWS console
{presetId: '1351620000001-000040', suffix: '_360'},
{presetId: '1351620000001-000020', suffix: '_480'}
]
}
}
};