我正在尝试使用Google Cloud语音文本来获取m3u8实时视频流的转录。现在,我需要将m3u8视频流转换为音频流,然后才能将此流传递给Google语音到文本。 我正在使用fluent-FFmpeg进行转换。我创建了一个转换流,其中的FFmpeg写入了音频块。 现在我想要每个块的持续时间和比特率。 如何找到每个块的持续时间和比特率?
我曾尝试使用音乐元数据库,但这不能给出正确的结果。
以下是完整过程的代码示例:
const ffmpeg = require('fluent-ffmpeg');
const { Transform } = require('stream');
let dest = new Transform({
transform: (chunk, enc, next) => {
//chunk duration
next(null, chunk);
}
}).on('data', () => {});
let m3u8_url = 'https://fuel-streaming-prod01.fuelmedia.io/v1/sem/40f15d3b-689f-48a5-9c61-a4f9583ed619.m3u8';
let command = ffmpeg(m3u8_url)
.format('flac') // required for working with streams
.on('start', function() {
console.log('ffmpeg : processing Started');
})
.on('progress', (progress) => {
console.log('ffmpeg : Processing');
})
.on('end', () => {
console.log('ffmpeg : Processing finished');
})
.on('error', (err) => {
console.log('ffmpeg : ffmpeg error :' + err.message);
})
.output(dest) //transform stream
.audioBitrate('480k') //480 kbps
.audioCodec('flac') // needed for getting proper metadata
command.run();