Установить битрейт ogg-файла, сгенерированного библиотеками libsndfile

Я использовал приведенный ниже код для преобразования звуковых файлов в ogg vorbis, но я не нашел в документации libsndfile, как установить битрейт выходного файла, который всегда равен 128 кбит / с. Можно ли изменить битрейт выходного файла, сгенерированного 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);
}

2

Решение

В libsndfile нет возможности установить конкретный битрейт. Задавать конкретную постоянную скорость передачи битов это обычно плохая идея, так как постоянная скорость передачи битов, вероятно, будет слишком низкой для некоторых частей звукового сигнала и слишком высокой для других частей.

Однако с помощью libsndfile вы можете установить различные уровни сжатия, которые всегда используют переменный битрейт. Увидеть : http://www.mega-nerd.com/libsndfile/command.html#SFC_SET_VBR_ENCODING_QUALITY

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]