为啥 ffmpeg 使用 flac 编码器对 ogg 文件进行编码?
Posted
技术标签:
【中文标题】为啥 ffmpeg 使用 flac 编码器对 ogg 文件进行编码?【英文标题】:why ffmpeg encodes a ogg file with flac encoder?为什么 ffmpeg 使用 flac 编码器对 ogg 文件进行编码? 【发布时间】:2016-09-08 12:18:49 【问题描述】:我想把音频转成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))
有人告诉我为什么吗?谢谢!
【问题讨论】:
【参考方案1】:您需要一个带有 libvorbis 的 ffmpeg 构建来编码到 Vorbis。根据您构建的横幅,它不存在,因此它使用 Ogg 支持的原生编码器 Flac。
从here 获取适用于您的操作系统的全功能二进制文件。
【讨论】:
由 Flac 编解码器编码的 *.ogg 音频文件实际上是 ogg 音频还是实际上只是一个 flac 音频但以扩展名 ogg 命名? 它是 Ogg 容器中的 FLAC 音频流。音频的本机编解码器是 Vorbis。 知道了,谢谢!以上是关于为啥 ffmpeg 使用 flac 编码器对 ogg 文件进行编码?的主要内容,如果未能解决你的问题,请参考以下文章
FFmpeg命令行将mp3/wav/flac/ape转pcm
使用 ffmpeg 将 .flac 转换为 .mp3,保留所有元数据