2009-07-16 9 views
4

J'ai essayé de créer une application en utilisant OpenCV et Visual Studio 2008, pour capturer des images à partir d'une webcam, leur appliquer un filtre, puis les écrire dans un fichier AVI. Tout fonctionne, sauf la création du fichier AVI.Création de fichiers AVI dans OpenCV

Le problème est que cela fonctionne sur mon ordinateur, mais cela ne fonctionne pas sur l'ordinateur de mon collègue. La raison de cela (je pense) est qu'il n'a pas les encodeurs vidéo nécessaires pour OpenCV à utiliser.

La fonction cvCreateVideoWriter ne renvoie pas NULL, mais je me retrouve avec un fichier de 0 ko sur le disque.

Répondre

1

Le problème était que mon collègue avait installé une ancienne version d'OpenCV. Si j'ai utilisé le nouveau OpenCV, il avait un encodeur et tout le travail.

+0

Pouvez-vous poster la version que vous avez mise à jour? Was est la dernière version ou beta 1.1c? – QueueHammer

+0

J'ai fini par utiliser OpenCV 1.0 parce que cela fonctionnerait. Maintenant, ils ont publié 2.0. Je n'ai pas encore testé. – Ove

18

Pourquoi ne pas tester tous les codecs, pour jouer sauver:

CV_FOURCC('P','I','M','1') = MPEG-1 codec 

CV_FOURCC('M','J','P','G') = motion-jpeg codec (does not work well) 

CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec 

CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec 

CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec 

CV_FOURCC('U', '2', '6', '3') = H263 codec 

CV_FOURCC('I', '2', '6', '3') = H263I codec 

CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec 

Un code de codec de -1 ouvrir une fenêtre de sélection codec (sous Windows).

+0

J'ai essayé, et aucun d'entre eux ne fonctionne. Même chose: cvCreateVideoWriter ne renvoie pas NULL, et j'obtiens un fichier AVI 0kb – Ove

+4

Où avez-vous obtenu cette liste? Y a-t-il un moyen d'en générer un par programmation? –

+1

J'ai utilisé cv.CV_FOURCC ('i', 'Y', 'U', 'V') et cela a fonctionné pour moi ... Utilisation de Windows 7 avec Python 2.7 et OpenCV 2.2 (Aucun de ceux dans la liste ci-dessus travaillé pour moi) – casper

1

En OpenCV 3.0.0, le readme.txt pour ffmpeg dit

« Il y a aussi notre mouvement autonome codec jpeg, que vous pouvez utiliser sans aucun soucis. Il gère CV_FOURCC ('M', 'J', 'P', 'G') dans un conteneur AVI (".avi"). "

(sources \ 3rdparty \ ffmpeg \ readme.txt)

-1 et cv :: :: Videowriter fourcc ('M', 'J', 'P', 'G') sont les seules options cela fonctionne pour moi sur Windows 8.1.