Мне нужно декодировать mp3 аудио данные в pcm. У меня есть данные, которые начинаются с mp3-заголовка. Апи-example.c не работает, выход странно:Как декодировать mp3 в pcm от ffmpeg
команда ffmpeg -i input.mp3 output.wav
велика, это то, что мне нужно. Но я не могу найти способ сделать это в коде. Кто-нибудь знает, где какой-то учебник с библиотекой ffmpeg? Благодаря
Edit 2.7.13:
Привет снова, я перестроил пример декодирования метод аудио из FFmpeg и моя проблема, вероятно, здесь:
len = avcodec_decode_audio4(avCodecContext,avFrame, &got_frame,&avPacket);
int data_size = av_samples_get_buffer_size(NULL,avFrame->channels,avFrame->nb_samples,AV_SAMPLE_FMT_S16P,1);
DATA_SIZE является размер кадра данных от декодера, это зависит от количества каналов, количества выборок данных и типа данных (мои данные - 16 бит PCM-стерео, закодированные в mp3 до 1152 образцов mp3-кадра)
Если я открываю выходной файл в духе, исправьте параметры, которые дают соответствие ct, стерео (справа), 8 бит/см (неверно) и половина частоты дискретизации (также неправильно), что случилось?
данные перед кодированием: 16bit PCM 44100Hz, стерео
данные после декодирования: 8bit PCM 22050 Гц, стерео ---> ??? !!!
Я устал от этого ....
да , но мне нужно перестроить этот метод для обработки буфера и добавить некоторые конкретные данные ... –
И API, который я пробовал. Результатом этого примера api является изображение выше. –
@ Meph- В коде есть обработка буфера (я не уверен на 100%, если это то, что вам нужно, но). Если вы собираетесь использовать код, вам, вероятно, придется изменить параметр из 'avcodec_find_decoder (AV_CODEC_ID_MP2)' на 'AV_CODEC_ID_MP3'. – user2448027