但是從界面看起來,我無法設置 尋找視頻或音頻文件並將其轉換的自動作業。
Node.js的SDK不支持它,但你可以做如下:如果你存儲在S3的視頻(如果因爲彈性變碼器採用S3不是將它們移動到S3),你可以在運行lambda函數由AWS觸發的S3 putObject。
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'}
]
}
}
};
非常感謝你對你的迴應。你可以給一些洞察什麼:config.AWS.transcode.video.outputKeyPrefix AND config.AWS.transcode.video設置爲? –
@MarcRasmussen我更新了我的答案。我跳它幫助。 :) – Festo