Как можно использовать libavformat без использования других библиотек libav?
Я хотел бы простой рабочий пример использования просто libavformat для мультиплексирования видео. Есть хорошие примеры (DOC / примеры / muxing.c), которые показывают кодирование с помощью libavcodec, мультиплексирование с помощью libavformat и сохранение данных с помощью libavio. Однако я не знаю ни одного примера, который бы использовал libavformat сам по себе, подавая закодированные данные в буфер и получая мультиплексированные данные в буфер.
Сложность двоякая: во-первых, добавление потока сavformat_new_stream(AVFormatContext *s, const AVCodec *c)
требуется ссылка на кодек; и два, выход из мультиплексирования передаетсяAVFormatContext->pb
который являетсяAVIOContext*
, Таким образом, кажется, нет никакого (очевидного) способа вывести libavformat из других библиотек libav.
Смотрите также: В этом вопросе упоминается способ не использовать libavio:Получить пакеты TS в буфер из libavformat