FFMPEG no puede mostrar la duración de un video

Estoy tratando de usar ffmpeg para capturar cuadros de un archivo de video, pero ni siquiera puedo obtener la duración de un video. Cada vez que intento acceder conpFormatCtx->duration Estoy obteniendo 0. Sé que el puntero se inicializó y contiene la duración correcta porque si usoav_dump_format(pFormatCtx, 0, videoName, 0); luego obtengo los datos de duración junto con otra información sobre el video. Esto es lo que obtengo cuando usoav_dump_format(pFormatCtx, 0, videoName, 0);:

Entrada # 0, avi, desde 'futurama.avi':

Duración: 00: 21: 36.28, inicio: 0.000000, tasa de bits: 1135 kb / s

Transmisión # 0.0: Video: mpeg4 (perfil simple avanzado), yuv420p, 512x384

[PAR 1: 1 DAR 4: 3], 25 tbr, 25 tbn, 25 tbc

Transmisión # 0.1: Audio: ac3, 48000 Hz, estéreo, s16, 192 kb / s

No entiendo porqueav_dum_format Puedo mostrar la duración y no puedo. Verifiqué la definición de la función, para mostrar la duración, la función también usa pFormatCtx-> duration. No es solo la duración, otras variables miembro tampoco muestran los datos adecuados cuando los llamo en main.cpp

Aquí está mi main.cpp:

extern "C" {
    #include<libavcodec/avcodec.h>
    #include<libavformat/avformat.h>
    #include<libswscale/swscale.h>
}


int main(int argc, char *argv[]) {
    AVFormatContext *pFormatCtx = NULL;

    const char videoName[] = "futurama.avi";

    // Register all formats and codecs.
    av_register_all();
    cout << "Opening the video file";
    // Open video file
    int ret = avformat_open_input(&pFormatCtx, videoName, NULL, NULL) != 0;
    if (ret != 0) {
        cout << "Couldn't open the video file." << ret ;
        return -1;
    }
    if(avformat_find_stream_info(pFormatCtx, 0) < 0) {
        cout << "problem with stream info";
        return -1;
    }

    av_dump_format(pFormatCtx, 0, videoName, 0);
    cout << pFormatCtx->bit_rate << endl; // different value each time, not initialized properly.
    cout << pFormatCtx->duration << endl; // 0
    return 0;
}

No sé si ayuda, pero uso QtCreator en Ubuntu y vinculo las bibliotecas de forma estática.

Gracias por tu ayuda.

Respuestas a la pregunta(3)

Su respuesta a la pregunta