2

以下のコードを使用してサウンド ファイルを ogg vorbis に変換しましたが、常に 128 kb/s に設定されている出力ファイルのビットレートを設定する方法が libsndfile のドキュメントにありません。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);
}
4

1 に答える 1

2

libsndfile では、特定のビットレートを設定する方法はありません。特定の固定ビット レートを設定することは、通常は悪い考えです。固定ビット レートは、サウンドの一部の部分では低すぎ、他の部分では高すぎる可能性があるためです。

ただし、libsndfile を使用すると、常に可変ビットレートを使用するさまざまな圧縮レベルを設定できます。参照: http://www.mega-nerd.com/libsndfile/command.html#SFC_SET_VBR_ENCODING_QUALITY

于 2013-05-10T03:32:23.653 に答える