2013-06-07 5 views
0

J'utilise Qt 5.0.2 avec Mingw 4.7 sous Windows.Qt C++ ffmpeg impossible de trouver la bibliothèque

Je travaille sur un programme C++ et j'essaie d'obtenir la durée des fichiers vidéo. J'ai trouvé ffmpeg. Maintenant j'ai essayé de compiler un programme simple mais je pense qu'il échoue avec les bibliothèques. J'ai essayé d'inclure à la fois le partage et le développement mais ils échoueront tous les deux. (Zeranoe FFmpeg builds)

Ceci est mon fichier pro:

TEMPLATE = app 
CONFIG += console 
CONFIG -= app_bundle 
CONFIG -= qt 

SOURCES += main.cpp 

INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-shared\bin 

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-shared\bin -lavcodec-55.dll -  lavformat-55.dll -lavutil-52.dll 

je reçois des erreurs comme:

": -1: erreur: ne peut pas trouver -lavcodec-55.dll"

" : -1: erreur: ne peut pas trouver -lavformat-55.dll »

J'ai aussi essayé:

INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-dev\include 
INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-dev\lib 

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-dev\lib -lavcodec -lavformat -lavutil 

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-dev\lib -llibavcodec.dll.a -llibavformat.dll.a -llibavutil.dll.a 

Ici, il donne une erreur « Au cours de programme de démarrage est sorti avec le code 0x0000135'

J'ai même essayé d'inclure chaque bibliothèque individuellement. Mais aucun résultat ..

Ceci est mon fichier principal:

#include <iostream> 
using namespace std; 
extern "C" { 
    #include <libavcodec/avcodec.h> // required headers 
    #include <libavformat/avformat.h> 
} 
int main(int argc, char**argv) { 
    av_register_all();    // offending library call 
    return 0; 
} 

Un programme simple que cela aura 2 résultats:

  1. le programme se exécute mais se bloque si je l'appelle « av_register_all() '
  2. Il me dit juste qu'il ne peut pas trouver les bibliothèques.

Quelqu'un peut-il me dire ce que je fais mal? Ou même me donner un indice? Je ne peux pas vraiment trouver beaucoup de bonne documentation sur celui-ci.

Merci d'avance!

+0

Je ne sais pas, mais vous pouvez vouloir vérifier http://www.dependencywalker.com/ - vous pourrait ne pas avoir un DLL requis dans votre chemin. –

Répondre

1

Configurer PRO-fichier comme indiqué ci-dessous:

INCLUDEPATH += C:\programming\ffmpeg-20130606-git--win32-dev\include 

LIBS += -LC:\programming\ffmpeg-20130606-git--win32-dev\lib 
LIBS += -lavcodec -lavformat -lavutil 

Ensuite, construire le projet, copiez les toutes les bibliothèques dll de C:\programming\ffmpeg-20130606-git--win32-shared\bin exe ​​chemin de sortie et exécuter l'application.

UPD

Peut-être que vous avez besoin de copier quelques-unes des bibliothèques suivantes de Qt\5.0.2\mingw47_32\bin\:

libgcc_s_sjlj-1.dll 
libstdc++-6.dll 
libwinpthread-1.dll 
+0

Merci beaucoup! Ça marche! Maintenant, j'essaie d'obtenir la durée. Il fonctionne avec les fichiers MP4 mais pas avec AVI, FLV, WMV ... Savez-vous où je me suis trompé? J'utilise avformat_open_input (& pFormatCtx, filename, NULL, NULL); et pFormatCtx-> durée; – Carnifrex

Questions connexes