Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js使用amazon转码器格式化视频/音频文件_Javascript_Node.js_Amazon Web Services - Fatal编程技术网

Javascript Node.js使用amazon转码器格式化视频/音频文件

Javascript Node.js使用amazon转码器格式化视频/音频文件,javascript,node.js,amazon-web-services,Javascript,Node.js,Amazon Web Services,我的目标是确保上传到我的应用程序的所有视频都是正确的格式,并且它们的格式符合最小大小 我在使用ffmpeg之前就这样做了,但是最近我将我的应用程序移动到了amazon服务器上 这给了我使用的选择 然而,从界面上看,我无法设置自动作业来查找视频或音频文件并转换它们 为此,我一直在查看他们的SDK/api引用,但我不太确定如何在我的应用程序中使用它们 我的问题是,是否有人成功地在node.js中开始转码工作,并知道如何将视频从一种格式转换为另一种格式和/或降低比特率?如果有人能给我指出正确的方向,并

我的目标是确保上传到我的应用程序的所有视频都是正确的格式,并且它们的格式符合最小大小

我在使用
ffmpeg
之前就这样做了,但是最近我将我的应用程序移动到了amazon服务器上

这给了我使用的选择

然而,从界面上看,我无法设置自动作业来查找视频或音频文件并转换它们

为此,我一直在查看他们的SDK/api引用,但我不太确定如何在我的应用程序中使用它们

我的问题是,是否有人成功地在
node.js
中开始转码工作,并知道如何将视频从一种格式转换为另一种格式和/或降低比特率?如果有人能给我指出正确的方向,并举例说明这是如何实现的,我将不胜感激

然而,从界面上看,我无法设置它 查找并转换视频或音频文件的自动作业

Node.js SDK不支持此功能,但您可以执行以下操作:如果您将视频存储在S3中(如果因为弹性转码器使用S3而不将其移动到S3),则可以在AWS触发的S3对象上运行Lambda函数

我的问题是,是否有人成功地开始在 了解如何将视频从一种格式转换为另一种格式,以及 /还是降低比特率?如果有人 你能给我指出正确的方向,举例说明 可能有用

我们使用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'}
      ]
    }
  }
};
然而,从界面上看,我无法设置它 查找并转换视频或音频文件的自动作业

Node.js SDK不支持此功能,但您可以执行以下操作:如果您将视频存储在S3中(如果因为弹性转码器使用S3而不将其移动到S3),则可以在AWS触发的S3对象上运行Lambda函数

我的问题是,是否有人成功地开始在 了解如何将视频从一种格式转换为另一种格式,以及 /还是降低比特率?如果有人 你能给我指出正确的方向,举例说明 可能有用

我们使用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'}
      ]
    }
  }
};

如果你想生成主播放列表,你可以这样做。 “.ts”文件不能通过hls播放器播放。生成“.m3u8”文件


}

如果要生成主播放列表,可以这样做。 “.ts”文件不能通过hls播放器播放。生成“.m3u8”文件


}

非常感谢您的回复。你能深入了解一下:config.AWS.transcode.video.outputKeyPrefix和config.AWS.transcode.video设置为什么吗?@MarcRasmussen我更新了我的答案。我希望它能有所帮助Life saver这100%有效我喜欢你对预设阵列所做的。在AWS中,我在哪里可以获得“secretAccessKey”,我进入右上角的帐户菜单(上面有我的名字),然后进入子菜单:安全凭据,其中包含“访问密钥(访问密钥ID和秘密访问密钥)”选项可用,但在那里我只得到创建的|访问密钥ID |上次使用的|上次使用的地区|上次使用的服务|状态|操作**没有可用的秘密访问密钥,只有可用的访问密钥ID。你能告诉我在哪里可以找到它吗?你可以在这里找到更多信息:非常感谢你的回复。你能深入了解一下:config.AWS.transcode.video.outputKeyPrefix和config.AWS.transcode.video设置为什么吗?@MarcRasmussen我更新了我的答案。我希望它能有所帮助Life saver这100%有效我喜欢你对预设阵列所做的。在AWS中,我在哪里可以获得“secretAccessKey”,我进入右上角的帐户菜单(上面有我的名字),然后进入子菜单:安全凭据,其中包含“访问密钥(访问密钥ID和秘密访问密钥)”选项可用,但在那里我只得到创建的|访问密钥ID |上次使用的|上次使用的地区|上次使用的服务|状态|操作**没有可用的秘密访问密钥,只有可用的访问密钥ID。你能告诉我在哪里可以找到它吗?你可以在这里找到更多信息: