2012-04-11 2 views
2

Я пытаюсь использовать библиотеку ffmpeg для окон в C++/Qt. Это моя основная функция:Ошибка библиотеки 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 * функции. В чем проблема? Это о моем коде, или это проблема с моими библиотеками?
Заранее спасибо

ответ

0

Может быть проблема с AVI. Убедитесь, что ваш avi поддерживается FFMPEG. use this tool Чтобы узнать, что именно представляет собой формат, и найдите библиотеку FFMPEG, чтобы узнать, поддерживается ли формат или нет.

1

Наконец-то я нашел его. Ответ прост. ctx должен быть инициализирован NULL.

AVFormatContext *ctx = NULL; 
Смежные вопросы