Reputation: 189
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
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