如果有多个通道,合并然后从音频文件中获取样本长度并将其保存到 s3

If multiple channels, merge then take sample length from audio file and save it to s3

我正在使用 transloadit 从视频文件中提取音频,然后将其保存到 S3。 这很好用,但我想知道如何:

  1. 检查文件是否有多个通道,然后按照 https://transloadit.com/demos/audio-encoding/merging-multiple-audio-streams/ 将其压缩为一个 - 我需要检查这个还是默认使用这个机器人?

  2. 从音频文件中提取一个小样本 - 并将其另存为一个单独的文件。

例如,我有一个 2h 的音频文件,我想从中提取 5% 的长度并将其保存为 sample.mp3

在ffmpeg中,我可以剪切:

ffmpeg -ss 0 -t 30 -i original.mp3 sample.mp3

但我不确定如何链接此工作流程,这是我目前所掌握的:

const opts = {
  params: {
    notify_url: `${ process.env.SELF }/services/trans/${ jwToken }`,
    steps:      {
      import: {
        robot:  '/s3/import',
        use:    ':original',
        bucket: process.env.S3_INGEST,
        path:   ingest.key,
        key:    process.env.AWS_ID,
        secret: process.env.AWS_SECRET,
      },
      encode: {
        robot:        '/audio/encode',
        use:          'import',
        ffmpeg_stack: 'v2.2.3',
        preset:       'aac',
        ffmpeg:       {
          ab:  '128k',
        },
      },
      export: {
        robot:   '/s3/store',
        use:     'encode',
        bucket:  s3Export,
        path:    `${ prefix }/${ token }.m4a`,
        headers: {
          'Content-Type': 'audio/mp4',
          'x-amz-server-side-encryption': 'AES256',
        },
        key:    process.env.AWS_ID,
        secret: process.env.AWS_SECRET,
      },
    },
  },
};

在文档中,https://transloadit.com/docs/conversion-robots/我看不到该怎么做?

非常感谢任何建议。

Transloadit 支持注入 ffmpeg 参数。因此,您可以轻松地将参数添加到 ffmpeg 对象中,如下所示。

ffmpeg:{
ab:  '128k',
"ss": "0",
"t": "30"
}

如果您对支持有其他问题,请告诉我们@transloadit.com