FFMPEG não pode exibir a duração de um vídeo

Estou tentando usar o ffmpeg para capturar quadros de um arquivo de vídeo, mas não consigo nem obter a duração de um vídeo. toda vez que tento acessá-lo compFormatCtx->duration Eu estou recebendo 0. Eu sei que o ponteiro inicializado e contém a duração correta, porque se eu usarav_dump_format(pFormatCtx, 0, videoName, 0); então eu realmente obtenho os dados de duração juntamente com outras informações sobre o vídeo. Isso é o que eu recebo quando usoav_dump_format(pFormatCtx, 0, videoName, 0);:

Input # 0, avi, de 'futurama.avi':

Duração: 00: 21: 36.28, Início: 0.000000, Taxa de bits: 1135 kb / s

Stream # 0.0: Vídeo: mpeg4 (perfil simples avançado), yuv420p, 512x384

[PAR 1: 1 DAR 4: 3], 25 a 25, 25 tbc

Stream # 0.1: Áudio: ac3, 48000 Hz, estéreo, s16, 192 kb / s

Eu não entendo porqueav_dum_format pode exibir a duração e não posso. Eu verifiquei a definição da função, para exibir a duração, a função também usa pFormatCtx-> duration. Não é apenas a duração que outras variáveis ​​de membro também não exibem os dados apropriados quando eu os chamo em main.cpp

Aqui está meu 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;
}

Eu não sei se isso ajuda, mas eu uso o QtCreator no Ubuntu e vinculei as bibliotecas estaticamente.

Obrigado pela ajuda.

questionAnswers(3)

yourAnswerToTheQuestion