AWS MediaConvert能否用单个作业处理输入存储桶中所有MP4文件?
单个AWS MediaConvert作业处理多文件方案
可以用单个MediaConvert作业处理存储桶中的所有MP4文件,无需为每个文件单独创建作业。MediaConvert支持在单个作业中配置多个输入源,你只需要遍历目标存储桶中的MP4文件,将它们逐一添加到作业的输入列表即可。
实现步骤(基于你的Node.js API)
获取存储桶中的MP4文件列表
使用AWS SDK的S3客户端列出目标桶内所有.mp4后缀的文件,提取它们的S3路径。构建多输入的MediaConvert作业配置
在createJob的参数中,将Settings.Inputs设为包含所有目标文件的数组,每个输入项指定对应的S3文件路径;同时配置输出设置,确保每个输入生成对应的WAV文件(可通过变量自动命名)。提交单个作业完成批量转换
调用MediaConvert.createJob提交包含多输入的作业,MediaConvert会自动依次处理所有输入文件。
Node.js代码示例
const AWS = require('aws-sdk'); // 初始化MediaConvert和S3客户端 const mediaConvert = new AWS.MediaConvert({ endpoint: '你的MediaConvert端点' }); const s3 = new AWS.S3(); // 批量转换函数 async function batchConvertMp4ToWav(inputBucket, outputBucket, jobTemplateArn) { // 1. 获取桶内所有MP4文件 const listParams = { Bucket: inputBucket, Prefix: '可选:指定文件前缀过滤', Filter: { S3Key: { FilterRules: [{ Name: 'suffix', Value: '.mp4' }] } } }; const { Contents } = await s3.listObjectsV2(listParams).promise(); const mp4Files = Contents.map(item => `s3://${inputBucket}/${item.Key}`); if (mp4Files.length === 0) { console.log('未找到MP4文件'); return; } // 2. 构建多输入作业配置 const jobParams = { JobTemplate: jobTemplateArn, // 复用你已创建的作业模板 Role: '你的MediaConvert IAM角色ARN', Settings: { Inputs: mp4Files.map(file => ({ FileInput: file })), OutputGroups: [ { Name: 'WAV Outputs', OutputGroupSettings: { Type: 'FILE_GROUP_SETTINGS', FileGroupSettings: { Destination: `s3://${outputBucket}/` } }, Outputs: [ { AudioDescriptions: [ { CodecSettings: { Codec: 'WAV', WavSettings: { BitDepth: 16, Channels: 2, SampleRate: 48000 } } } ], ContainerSettings: { Container: 'WAV' }, // 使用输入文件名(不含扩展名)作为输出文件名 NameModifier: '_converted' // 可选:给输出文件名加后缀,或用内置变量%s } ] } ] } }; // 3. 提交作业 const job = await mediaConvert.createJob(jobParams).promise(); console.log('批量转换作业已提交,作业ID:', job.Job.Id); } // 调用示例 batchConvertMp4ToWav('your-input-bucket', 'your-output-bucket', 'your-job-template-arn');
注意事项
- 输入数量限制:MediaConvert单个作业最多支持100个输入(具体以当前AWS配额为准),如果文件数量超过限制,需将文件分批创建多个作业处理。
- 输出文件命名:确保输出文件名唯一避免覆盖,可使用MediaConvert内置变量(如
%s代表输入文件名不含扩展名),或在代码中自定义命名规则。 - IAM权限:确保MediaConvert角色拥有读取输入桶、写入输出桶的权限。
内容的提问来源于stack exchange,提问作者WizRd AM
相关产品推荐
相关产品推荐

