2013-05-10 2 views
0

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

ответ

1

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^