C ++ / Qt的FFmpeg的库错误:程序有意外结束(C++/Qt FFmpeg library

2019-09-16 11:18发布

我想在C ++ / Qt的窗口使用的ffmpeg库。 这是我的主要功能:

#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;

#define INT64_C(val) val##LL
#define UINT64_C(val) val##ULL
#include <QtCore>


#include <SDL/SDL.h>
#ifdef __MINGW32__
#undef main
#endif


//--------------- FFMPEG Headers and Libraries ---------------
extern "C"
{
#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
}

int main(int c, char *args[])
{
    av_register_all();
    AVFormatContext *ctx;

    if(avformat_open_input(&ctx,"salam.avi",NULL,NULL)!=0)
        return -1;
    return 0;
}

它被编译和链接的罚款。 但是,当我尝试运行它,我得到这个错误:
该方案已完成意外
这发生在* avformat_open_input *功能。 有什么问题? 它是我的代码,或者是与我的图书馆的问题吗?
提前致谢

Answer 1:

最后,我发现它。 答案就是这么简单。 ctx应该由NULL初始化。

AVFormatContext *ctx = NULL;


Answer 2:

可能是与AVI的问题。 确保您的AVI是由FFmpeg的支持。 使用这个工具要检查准确的格式是什么,抬头FFmpeg的图书馆帮助/支持,看看格式支持与否。



文章来源: C++/Qt FFmpeg library error: program has unexpectedly finished
标签: c++ qt ffmpeg