You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS MediaConvert能否用单个作业处理输入存储桶中所有MP4文件?

单个AWS MediaConvert作业处理多文件方案

可以用单个MediaConvert作业处理存储桶中的所有MP4文件,无需为每个文件单独创建作业。MediaConvert支持在单个作业中配置多个输入源,你只需要遍历目标存储桶中的MP4文件,将它们逐一添加到作业的输入列表即可。

实现步骤(基于你的Node.js API)

  1. 获取存储桶中的MP4文件列表
    使用AWS SDK的S3客户端列出目标桶内所有.mp4后缀的文件,提取它们的S3路径。

  2. 构建多输入的MediaConvert作业配置
    在createJob的参数中,将Settings.Inputs设为包含所有目标文件的数组,每个输入项指定对应的S3文件路径;同时配置输出设置,确保每个输入生成对应的WAV文件(可通过变量自动命名)。

  3. 提交单个作业完成批量转换
    调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:18:28