Откройте сырой звук с помощью avformat_open_input - PullRequest
0 голосов
/ 05 ноября 2019

Я хочу заполнить ffmpeg.formatCtx для raw(LINEAR16,48000khz) аудиофайла, используя avformat_open_input().

Я пытался передать собственный AVInputFormat, но в нем не получилось.

Так я использовал для открытия файла.

std::string fn = "file:" + this->file.path;
int r = avformat_open_input(&ffmpeg.formatCtx, fn.c_str(), nullptr, nullptr);

Пытался найтинужен формат с av_find_input_format(), но не удалось до 0.

Без формата ввода ffmpeg определяет файл как mp3.

Есть ли удобный способ сделать такой случай?

1 Ответ

0 голосов
/ 15 ноября 2019

Основные действия, которые выполняются в avformat_open_input:

  • Выделение памяти для AVFormatContext и заполнение AVFormatContext.
  • Пытается угадать формат входного файла, параметр кодека для входного файла.

Поскольку у вас есть только необработанные аудиоданные, вам необходимо выделить память для AVFormatContext и заполнить AVFormatContext самостоятельно.

В противном случае необработанные аудиоданные не нужно демультиплексировать идекодирование, я думаю, вы не должны использовать avformat_open_input.

...