2017-03-08 34 views
1

我的目標是確保上傳到我的應用程序的所有視頻都是正確的格式,並且格式化爲最小。Node.js使用亞馬遜代碼轉換器來格式化視頻/音頻文件

我之前使用ffmpeg但是我最近將我的應用程序移動到了亞馬遜服務器上。

這讓我從我無法成立,它可以查找視頻或音頻文件,並將它們轉換自動作業的接口使用enter link description here

但是通過它的外觀的選項。

爲此,我一直在尋找他們的SDK/API參考,但我不太清楚如何在我的應用程序中使用它。

我的問題是誰有人成功地開始轉碼作業node.js,並知道如何將視頻從一種格式轉換爲另一種格式和/或向下設置比特率?如果有人能夠用正確的方向指出我可以如何運作的一些例子,我將不勝感激。

回答

4

但是從界面看起來,我無法設置 尋找視頻或音頻文件並將其轉換的自動作業。

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

非常感謝你對你的迴應。你可以給一些洞察什麼:config.AWS.transcode.video.outputKeyPrefix AND config.AWS.transcode.video設置爲? –

+0

@MarcRasmussen我更新了我的答案。我跳它幫助。 :) – Festo