【问题标题】:ffmpeg limit the size of transcoded output as <104857600 bytesffmpeg 将转码输出的大小限制为 <104857600 字节
【发布时间】:2017-06-22 16:44:47
【问题描述】:

我正在使用以下选项将 video.webm 转换为 .wav 文件。 但是输出文件非常大!

我需要减小它的大小,实际上将输出大小限制为 104857600 字节并让 ffmpeg 库处理其余部分真的很酷​​(比如自动调整质量) 知道该怎么做吗?

如果这不可能,我怎样才能将质量降低 50%?

return new Promise(function (resolve, reject) { 
    var proc = new ffmpeg({
        source: file,
        nolog: false
    });



   proc.addOptions([
        '-f ' + format,
        '-ar 16000',
        '-vn'
    ]);

    proc.on('error', function (err, stdout, stderr) {
        reject(err)          
    });
    proc.save(file.split(".")[0] + "." + format).on('end', function () {            
        resolve(file.split(".")[0] + "." + format);
    })
});

【问题讨论】:

  • 你是怎么把webm转成wav的,完整的转换码是什么? WAV 通常是未压缩的,不能通过任何质量调整来“处理”。尝试一些压缩的音频格式。
  • @osgx 请查看完整的转换代码。您建议使用什么压缩音频格式?我可以使用 ffmpeg 作为参考的任何示例?

标签: ffmpeg fluent-ffmpeg


【解决方案1】:

WAV 文件通常是未压缩的(但有一些选项) - 在选择 PCM 采样率 + 单声道/立体声 + 每个样本的位数后,没有任何质量可以改变(它们对于 WAV 来说是全局静态的,可能对于完整文件) - https://en.wikipedia.org/wiki/WAV#WAV_file_audio_coding_formats_compared

检查您的 ffmpeg -encoders 选项和文档的输出:https://www.ffmpeg.org/ffmpeg-codecs.html#Encoders 以找到一些带压缩的音频编码器。

【讨论】:

  • 以下命令通过命令行工作,但我不确定如何通过 npm 正确运行它,知道吗? ffmpeg -acodec libopus -i 1.webm 1.wav 我尝试了以下,但没有工作; var proc = new ffmpeg({ source: file, nolog: false }); proc.audioCodec('libopus');
猜你喜欢
  • 2016-08-03
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-04
相关资源
最近更新 更多