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。你能告诉我在哪里可以找到它吗?你可以在这里找到更多信息: