You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

AWS Lambda配置未更新,如何让Elemental MediaConvert仅生成3个HLS码率?

解决仅生成3种HLS码率的问题

看起来你已经找对了调整方向,但可能在代码部署或配置逻辑上有遗漏,我来帮你一步步排查和解决:

1. 先确认Lambda的修改是否真的生效了

这是最容易忽略的细节:

  • 打开AWS Lambda控制台,找到你的视频处理函数
  • 进入「代码」标签页,确认你修改后的预设数组(比如存储码率预设的变量)确实只保留了3个值,而非6个
  • 务必点击页面右上角的「部署」按钮——Lambda代码编辑后只有部署才会生效,单纯保存不会触发更新
  • 如果你是用CloudFormation/SAM模板部署的这套工作流,直接在控制台修改Lambda代码会被后续的模板部署覆盖,这时候你需要修改模板里的Lambda代码部分,再重新部署整个堆栈

2. 修正Lambda中的MediaConvert任务配置逻辑

原博客的Lambda代码应该是通过预设数组来生成MediaConvert的输出配置,你需要确保修改覆盖了所有相关逻辑:

  • 找到代码中定义预设的部分,比如类似这样的数组:
    // 修改前(6个预设)
    const hlsPresets = [
      'System-Avc_1080p',
      'System-Avc_720p',
      'System-Avc_540p',
      'System-Avc_480p',
      'System-Avc_360p',
      'System-Avc_240p'
    ];
    
    // 修改后(保留3个你需要的)
    const hlsPresets = [
      'System-Avc_1080p',
      'System-Avc_720p',
      'System-Avc_480p'
    ];
    
  • 确认代码中是循环这个数组来生成MediaConvert的Outputs——如果是硬编码了6个Output对象,那只改数组没用,得直接删除多余的3个Output定义

3. 检查是否依赖了MediaConvert的Job模板

有些情况下,Lambda可能不是动态生成输出配置,而是引用了MediaConvert的自定义Job模板:

  • 查看Lambda代码中是否有JobTemplate参数,比如:
    const mediaConvertParams = {
      JobTemplate: 'MyVODWorkflowTemplate',
      Role: process.env.MEDIACONVERT_ROLE,
      // 其他参数...
    };
    
  • 如果有这个参数,登录MediaConvert控制台,找到对应的Job模板,进入编辑模式:
    • 找到「输出组」下的HLS输出配置
    • 删除多余的3个码率输出,只保留你需要的3个
    • 保存模板后再测试上传

4. 验证修改效果

  • 上传一个小体积的测试视频到源S3存储桶
  • 等待Lambda触发MediaConvert任务后,去MediaConvert控制台查看该任务的「输出」标签,确认只有3种码率的文件生成
  • 如果还是有问题,打开Lambda的CloudWatch日志,搜索jobSettingsoutputGroups关键词,查看传递给MediaConvert的参数是否正确——如果日志里显示的还是6个输出,说明Lambda代码没生效;如果日志里是3个但实际输出6个,那大概率是MediaConvert模板的问题

内容的提问来源于stack exchange,提问作者user185955

火山引擎 最新活动