Node.js使用亚马逊代码转换器来格式化video/audio文件

我的目标是确保所有正在上传到我的应用程序的video都是正确的格式,并且格式化为最小尺寸。

我之前使用ffmpeg做了这个,但是我最近把我的应用程序移到了一个amazon服务器上。

这使我可以select在这里使用input链接描述

然而,从界面看,我无法设置自动作业,寻找video或audio文件,并将其转换。

对于这个我一直在看他们的SDK / api引用,但我不太清楚如何在我的应用程序中使用它。

我的问题是任何人都成功地在node.js开始转码作业,并知道如何将video从一种格式转换为另一种格式和/或向下设置比特率? 我真的很感激,如果有人能指出我在正确的方向与一些例子如何这可能工作。

然而,从界面看,我无法设置自动作业,寻找video或audio文件,并将其转换。

Node.js SDK不支持它,但是你可以做以下事情:如果你在S3中存储video(如果不是将它们移动到S3,因为弹性代码转换器使用S3),那么可以在由AWS触发的S3 putObject上运行Lambda函数。

http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

我的问题是任何人都成功地在node.js中开始转码作业,并知道如何将video从一种格式转换为另一种格式和/或向下设置比特率? 我真的很感激,如果有人能指出我在正确的方向与一些例子如何这可能工作。

我们使用AWS进行节点video转码,没有任何问题。 找出每一个参数是耗时的,但是我希望这几行可以帮助你:

 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); }); }; 

示例configuration文件:

 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'} ] } } };