我如何为m3u8视频流到音频流的Fluent-Ffmpeg转换获得恒定的输出比特率

时间:2019-10-24 15:27:11

标签: node.js ffmpeg m3u8 fluent-ffmpeg

我正在使用fluent-FFmpeg将m3u8视频流转换为音频流。输出的音频流具有可变的比特率。 如何获得恒定的比特率而不是可变的比特率?

我尝试提供

.addOption('-b:a 48k')

.addOption('-bufsize 48k')

保持48kbps的恒定比特率。但这没用。

这是代码示例:

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()
    .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);
    })
    //.addOption('-b:a 48k')
    //.addOption('-bufsize 48k')
    .output(dest) //transform stream
    .audioBitrate('48k')
    .audioCodec('flac') // needed for getting proper metadata

command.run();

0 个答案:

没有答案