gpt4 book ai didi

c++ - 设置 libsndfile 库生成的 ogg 文件的比特率

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:50:38 25 4
gpt4 key购买 nike

我使用下面的代码将声音文件转换为 ogg vorbis,但我没有在 libsndfile 的文档中找到如何设置输出文件的比特率,它始终设置为 128 kb/s。是否可以更改 libsndfile 生成的输出文件的比特率?

#include <sndfile.hh>

#define BUFFER_LEN 4096

void convert(char *infilename, char *outfilename)
{
static double data[BUFFER_LEN];
SNDFILE *infile, *outfile;
SF_INFO sfinfo;
int readcount;

infile = sf_open(infilename, SFM_READ, &sfinfo);
sfinfo.format = SF_FORMAT_OGG | SF_FORMAT_VORBIS;
outfile = sf_open(outfilename, SFM_WRITE, &sfinfo);

while ((readcount = sf_read_double(infile, data, BUFFER_LEN)))
{
sf_write_double(outfile, data, readcount);
}

sf_close(infile);
sf_close(outfile);
}

最佳答案

使用 libsndfile 无法设置特定的比特率。设置特定的恒定比特率通常不是一个好主意,因为恒定比特率对于 sonf 的某些部分可能太低,而对于其他部分可能太高。

然而,使用 libsndfile,您可以设置始终使用可变比特率的各种压缩级别。请参阅:http://www.mega-nerd.com/libsndfile/command.html#SFC_SET_VBR_ENCODING_QUALITY

关于c++ - 设置 libsndfile 库生成的 ogg 文件的比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16473203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com