¿Cómo se puede utilizar libavformat sin usar otras bibliotecas libav?
Me gustaría un ejemplo simple de uso de solo libavformat para mux video. Hay buenos ejemplos (doc / examples / muxing.c) que muestran la codificación con libavcodec, muxing con libavformat y guardando los datos con libavio. Sin embargo, no hay ningún ejemplo que conozca que use libavformat por sí mismo, alimentando datos codificados en un búfer y obteniendo datos en un búfer.
La dificultad es doble: una, agregando un flujo conavformat_new_stream(AVFormatContext *s, const AVCodec *c)
requiere una referencia al codec; y dos, la salida de muxing se pasa aAVFormatContext->pb
que es unAVIOContext*
. Por lo tanto, parece que no hay una forma (obvia) de extraer el formato libav de las otras bibliotecas libav.
Vea también: Esta pregunta menciona una manera de no usar libavio:Obtener paquetes de TS en el búfer de libavformat