2

C++/Qt の Windows で 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* 関数で発生します。どうしたの?それは私のコードに関するものですか、それとも私のライブラリの問題ですか?
前もって感謝します

4

2 に答える 2

1

最後に私はそれを見つけました。答えはとても簡単です。ctxNULL で初期化する必要があります。

AVFormatContext *ctx = NULL;
于 2012-04-11T14:10:49.450 に答える
0

AVIに問題がある可能性があります。avi が FFMPEG でサポートされていることを確認してください。このツールを使用して、形式が正確に何であるかを確認し、FFMPEG ライブラリのヘルプ/サポートを調べて、形式がサポートされているかどうかを確認します。

于 2012-04-11T13:15:21.383 に答える