Como a libavformat pode ser usada sem usar outras bibliotecas libav?
Eu gostaria de um exemplo simples de trabalho usando apenas libavformat para mux video. Existem bons exemplos (doc / examples / muxing.c) que mostram codificação com libavcodec, muxing com libavformat e salvando os dados com libavio. No entanto, não há nenhum exemplo que eu saiba que use libavformat por si só, alimentando dados codificados em um buffer e obtendo dados muxed em um buffer.
A dificuldade é dupla: uma, adicionando um fluxo comavformat_new_stream(AVFormatContext *s, const AVCodec *c)
requer uma referência ao codec; e dois, a saída do muxing é passada paraAVFormatContext->pb
que é umAVIOContext*
. Assim, parece não haver nenhuma maneira (óbvia) de liberar o libavformat das outras bibliotecas libav.
Veja também: Esta questão menciona uma maneira de não usar o libavio:Obter pacotes TS no buffer do libavformat