我想通过Lambda (NodeJS)创建一个ElasticTranscoder作业。
如果我定义一个输入,它就能正常工作(见下文)。但我有几个源文件。如果我修改我的代码,使输入是一个数组,我会得到错误。
有人能帮我吗?
这可以很好地工作:
transcoder.createJob({
PipelineId: '12345678-vsyssc',
Input: {
Key: fileName,
FrameRate: 'auto',
Resolution: 'auto',
AspectRatio: 'auto',
Interlaced: 'auto',
Container: 'auto'
},
Output: {
Key: 'Output.mp4',
ThumbnailPattern: '',
PresetId: '1351620000001-000030',
Rotate: 'auto'
}
}, function (err, data) {
if (err) {
console.log('Something went wrong:', err)
} else {
console.log('Converting is done');
}
callback(err, data);
});
这不起作用:
transcoder.createJob({
PipelineId: '12345678-vsyssc',
Input: [{
Key: 'VID-20180217-WA0002.mp4',
FrameRate: 'auto',
Resolution: 'auto',
AspectRatio: 'auto',
Interlaced: 'auto',
Container: 'auto'
}, {
Key: 'VID-20180411-WA0012.mp4',
FrameRate: 'auto',
Resolution: 'auto',
AspectRatio: 'auto',
Interlaced: 'auto',
Container: 'auto'
},
],
Output: {
Key: 'test123445.mp4',
ThumbnailPattern: '',
PresetId: '1351620000001-000030',
Rotate: 'auto'
}
}, function (err, data) {
if (err) {
console.log('Something went wrong:', err)
} else {
console.log('Converting is done');
}
callback(err, data);
});
我得到了错误:
在位于params.Input的ParamValidator.validate (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:40:28)位于Request.VALIDATE_PARAMETERS ) (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\event_listeners.js:125:42)位于Request.callListeners (C:\Users\Volkm\Google谷歌的用户位置(C:\Users\ Volkm\ Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\sequential_executor.js:105:20) Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\sequential_executor.js:95:12)位置C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\event_listeners.js:85:9位置)(C:\Users\ callNextListener \Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\config.js:315:7),位于C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\config.js:333:9,位于SharedIniFileCredentials.get (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\credentials.js:126:7),位于getAsyncCredentials (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\config.js:327:24) at Config.getCredentials (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\config.js:347:9) message:‘有2个验证错误:\n* UnexpectedParameter:在params.Input\n* UnexpectedParameter中找到意外的键\'0\’:在params.Input中找到的意外的键\'1\‘,代码:'MultipleValidationErrors',错误:{ UnexpectedParameter:在params.Input中的ParamValidator.fail (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:50:37)位于ParamValidator.validateStructure (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:77:14)位于ParamValidator.validateMember )中找到意外的键‘0(C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:88:21)位于ParamValidator.validateMember (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk谷歌(C:\Users\Volkm\\lib\param_validator.js:88:21 Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:34:10) at Request.VALIDATE_PARAMETERS ) (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\event_listeners.js:125:42) at Request.callListeners (C:\Users\Volkm\Google Users\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\sequential_executor.js:105:20) (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\sequential_executor.js:95:12)位于C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\event_listeners.js:85:9消息:‘在params.Input中找到意外的键\'0\’‘,编码:'UnexpectedParameter',时间: 2018-06-10T11:39:59.749Z },{ UnexpectedParameter:在params.Input中的ParamValidator.fail (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:50:37),位于ParamValidator.validateStructure (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:77:14),位于ParamValidator.validateMember (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:88:21)位于ParamValidator.validateMember (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:88:21)在ParamValidator.validate (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\param_validator.js:34:10) at Request.VALIDATE_PARAMETERS (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\event_listeners.js:125:42) at Request.callListeners (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\sequential_executor.js:105:20)位于Google (C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\sequential_executor.js:95:12),位于C:\Users\Volkm\Google Drive\Quellcode\nodejs\ElasticTranscoderJob\test\node_modules\aws-sdk\lib\event_listeners.js:85:9消息:“在params.Input中找到意外的键\'1\‘”,代码:‘意外参数’,时间: 2018-06-10T11:39:59.749Z },时间: 2018-06-10T11:39:59.749Z }
亲切地问候斯特凡
发布于 2018-06-11 08:32:50
createJob操作对一个文件而不是多个文件使用不同的属性。
对于单个输入/输出文件:
transcoder.createJob({
PipelineId: '12345678-vsyssc',
Input: { <input info> },
Output: { <output info> },
});
对于多个输入/输出文件:
transcoder.createJob({
PipelineId: '12345678-vsyssc',
Inputs: [ {<input #1 info>}, {<input #2 info>} ],
Outputs: [ {<output #1 info}, {<output #2 info} ],
});
在前者中使用Input
& Output
(单数),在后者中使用Inputs
& Outputs
(复数)。
据猜测,最初的createJobs
方法只支持单个文件,后来得到增强,可以支持多个文件。为了避免破坏后向兼容性,亚马逊网络服务增加了Inputs
& Outputs
。
https://stackoverflow.com/questions/50760638
复制相似问题