2013-05-10 1 views
0

아래 코드를 사용하여 사운드 파일을 ogg vorbis로 변환했지만 libsndfile의 설명서에서 출력 파일의 비트 전송률을 설정하는 방법을 찾지 못했습니다. 항상 설정되어 있습니다 ~ 128 kb/s입니다. libsndfile에서 생성 된 출력 파일의 비트 전송률을 변경할 수 있습니까?libsndfile 라이브러리에서 생성 된 ogg 파일의 비트 전송률을 설정합니다.

#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); 
} 

답변

1

libsndfile을 사용하면 특정 비트 전송률을 설정할 방법이 없습니다. 특정 상수 비트율을 설정하면 상수 비트 전송률이 너무 낮아서 다른 부분에 비해 너무 낮을 수 있습니다.

그러나 libsndfile을 사용하면 항상 가변 비트 전송률을 사용하는 다양한 압축 수준을 설정할 수 있습니다. 참조 : http://www.mega-nerd.com/libsndfile/command.html#SFC_SET_VBR_ENCODING_QUALITY