为什么 ffmpeg 使用 flac 编码器对 ogg 文件进行编码?

why ffmpeg encodes a ogg file with flac encoder?

我想把音频转为ogg文件,我的命令是:

ffmpeg -i in.wav out.ogg

我发现输出流编码器是 flac 而不是 ogg 或 vorbis!

ffmpeg 输出消息如下所示:

ffmpeg version 3.1.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (GCC)
Guessed Channel Layout for Input Stream #0.0 : mono
Input #0, wav, from 'in.wav':
  Metadata:
    encoder         : Lavf55.48.100
  Duration: 00:00:11.97, bitrate: 256 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 16000 Hz, 1 channels, s16, 256 kb/s
[ogg @ 0x8003e020] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Output #0, ogg, to 'out.ogg':
  Metadata:
    encoder         : Lavf57.41.100
    Stream #0:0: Audio: flac, 16000 Hz, mono, s16, 128 kb/s
    Metadata:
      encoder         : Lavc57.48.101 flac
Stream mapping:
  Stream #0:0 -> #0:0 (pcm_s16le (native) -> flac (native))

有人告诉我为什么吗?谢谢!

您需要使用 libvorbis 构建 ffmpeg 以编码为 Vorbis。根据您构建的横幅,它不存在,因此它使用 Flac,一种在 Ogg 中支持的本机编码器。

here 获取 OS 的全功能二进制文件。