Я хочу декодировать интернет-аудиопоток, но не хочу записывать данные на диск, поэтому данные находятся только в памяти.
Но когда я хочу декодировать данные в raw-данные, я должен инициализировать формат-контекст и поэтому мне нужно использовать avformat_open_input. Но эти функции требуют подробного расположения файла.
У кого-нибудь есть решение, как я могу поместить данные, расположенные в моей памяти, в формат-контекст, чтобы декодировать эти данные в необработанные данные?
Вы должны создать пользовательские AVIOContext
,
Подробнее см. Мой ответ на Воспроизвести видео из MemoryStream, используя FFMpeg
Вам не нужен файл, просто откройте URL-адрес вашего аудиострима. как это:
AVFormatContext *ic = avformat_alloc_context();
err = avformat_open_input(&ic, "rtmp://www.something.com/a.mp4", NULL, NULL);