首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用2个输入通过Lambda创建ElasticTranscoder作业

使用2个输入通过Lambda创建ElasticTranscoder作业
EN

Stack Overflow用户
提问于 2018-06-08 20:25:55
回答 1查看 465关注 0票数 0

我想通过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 }

亲切地问候斯特凡

EN

回答 1

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50760638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档