Декодирование PCM_S16LE с FFMPEG?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Декодирование PCM_S16LE с FFMPEG?

Сообщение Anonymous »

У меня есть проблема, декодирующая файл 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»