我需要将 flac 文件转换为 wav 文件,但不更改采样率和位深度。据我所知,更改这些属性可能会扭曲音频,那么我该如何指定它们不被更改?
另外,有什么方法可以防止元数据被写入输出文件?
编辑:显然这是一个 XY 问题,抱歉,我是新来的。我的问题是我不想在我的 OS X 上安装 flac,因为我试图对我使用的所有内容进行沙盒处理,所以我需要一个可执行文件,例如 ffmpeg。我会尝试 @slhck 的建议并检查采样率和位深度是否发生变化。
编辑:ffmpeg 仅保留采样率。位深度需要手动设置。
答案1
ffmpeg 不会改变采样率,除非你告诉它(或者输出编解码器不支持,但很可能失败)。所以这应该足够了:
ffmpeg -i input.flac output.wav
但是 ffmepg 不会保留位深度并默认为 16 位编码,因此如果您的输入是 24 位,则必须使用:
ffmpeg -i input.flac -c:a pcm_s24le output.wav
至于删除元数据,请参阅使用 FFmpeg 去除所有格式的元数据——你基本上只添加了-map_metadata -1
选项。
答案2
虽然它不像您在标题中指出的那样使用 ffmpeg,但是要将 FLAC 文件转换为 .wav,您只需flac
使用--decode
( -d
) 开关将其传递即可。
flac --decode input.flac
将产生input.wav
输出,包含相同的音频数据。
您可以添加--no-keep-foreign-metadata
以使 flac 丢弃输入中的任何非音频数据。(这与--keep-foreign-metadata 保存/恢复 WAVE 或 AIFF 非音频块。