У меня есть проблема, декодирующая файл wav с использованием ffmpeg. Я новичок в этом, и я не совсем привык к этому. Файл harp.wav все работает нормально, и я могу построить образцы, как на изображении harp.png
Файл, кодируемый wav, как: PCM_U8, 11025 Гц, 1-й каналы, файл 88 KB/S
demo-unprocased.wav < /strong>.
выводит серию образцов, которые не имеют смысла. Он выводит серию образцов, нанесенную как изображение graph1-demo.jpg показывает. Декодирование с помощью FFMPEG, и это работает абсолютно хорошо./* Start by including the necessary */
#include "dataReader.h"
#include
#include
#include
#ifdef __cplusplus
extern "C" {
#endif
#include
#include
#include
#ifdef __cplusplus
}
#endif
using namespace std;
/* initialization function for audioChunk */
audioChunk::audioChunk(){
data=NULL;
size=0;
bitrate=0;
}
/* function to get back chunk lenght in seconds */
int audioChunk::getTimeLenght(){
return size/bitrate;
}
/* initialization function for audioChunk_dNorm */
audioChunk_dNorm::audioChunk_dNorm(){
data=NULL;
size=0;
bitrate=0;
}
/* function to get back chunk lenght in seconds */
int audioChunk_dNorm::getTimeLenght(){
return size/bitrate;
}
/* function to normalize audioChunk into audioChunk_dNorm */
void audioChunk_dNorm::fillAudioChunk(audioChunk* cnk){
size=cnk->size;
bitrate=cnk->bitrate;
double min=cnk->data[0];
double max=cnk->data[0];
for(int i=0;isize;i++){
if(*(cnk->data+i)>max) max=*(cnk->data+i);
else if(*(cnk->data+i)data+i);
}
data=new double[size];
for(int i=0;idata+256*data[i+1];
if(data!=255) data=2*((cnk->data)-(max-min)/2)/(max-min);
else data=0;
}
cout
Подробнее здесь: https://stackoverflow.com/questions/317 ... ith-ffmpeg