Windymelt
Windymelt

Reputation: 189

Transcoding video to mp3: config.muxStreams[0].container is not supported, supported value from [ts fmp4 mp4 vtt]

I want to convert my mp4 file on Cloud Storage into mp3 file using Transcoder API.

Official page says it supports mp3 file and its codec. https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats

Configuration follows:

  const transcodeConfig = {
    elementaryStreams: [
      {
        key: 'audio-stream0',
        audioStream: {
          codec: 'mp3',
          bitrateBps: 64000,
        },
      },
    ],
    muxStreams: [
      {
        key: 'audio',
        container: 'mp3',
        elementaryStreams: ['audio-stream0'],
      },
    ],
  };

However Transcoder API returns error:

INVALID_ARGUMENT: config.muxStreams[0].container is not supported, supported value from [ts fmp4 mp4 vtt]

How can I use mp3 transcoding? Doesn't it support mp3 file?

Entire code follows:

import * as ff from '@google-cloud/functions-framework';
import { TranscoderServiceClient } from '@google-cloud/video-transcoder';

type Body = {
  id: string;
}

ff.http('TranscodeFunction', async (req: ff.Request, res: ff.Response) => {
  const body = req.body as Body;
  const transcoderServiceClient = new TranscoderServiceClient();

  const transcodeConfig = {
    elementaryStreams: [
      {
        key: 'audio-stream0',
        audioStream: {
          codec: 'mp3',
          bitrateBps: 64000,
        },
      },
    ],
    muxStreams: [
      {
        key: 'audio',
        container: 'mp3',
        elementaryStreams: ['audio-stream0'],
      },
    ],
  };

  const request = {
    parent: transcoderServiceClient.locationPath('***', 'asia-east1'), // Transcoder API is not provided in asia-northeast
    job: {
      inputUri: `gs://foobarbucket/${body.id}/video.mp4`,
      outputUri: `gs://foobarbucket/${body.id}/`,
      config: transcodeConfig,
    },
  };
  const [operation] = await transcoderServiceClient.createJob(request);
  res.send(`Transcoding ${body.id} as [${operation.name}]...`);
});

Upvotes: 0

Views: 125

Answers (1)

Windymelt
Windymelt

Reputation: 189

https://cloud.google.com/transcoder/docs/concepts/supported-input-and-output-formats

This page says input mp3 is supported but output mp3 as container is not supported. Only video container is supported...

Upvotes: 0

Related Questions