IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

[VideoWriter] Erreur sur la vidéo


Sujet :

OpenCV

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 56
    Points : 51
    Points
    51
    Par défaut [VideoWriter] Erreur sur la vidéo
    Bonjour,

    Je travaille sur un projet nécessitant de faire de la capture vidéo. Le principe est simple, je dois enregistrer ce qui se passe dans ma fenêtre et générer une vidéo à partir de cela.

    Mon IHM est réalise avec Qt et lorsque le mode capture est activé, un QTimer fait un screenshot de la fenêtre et ajoute le pixmap (converti en cv::Mat) dans un cv::VideoWriter.

    Voici le code de lancement de l'enregistrement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    // Get video size
    	cv::Size videoSize = cv::Size(_mainWindow->width(),_mainWindow->height());
     
    	// Build filename
    	QString fullFileName = _folder;
    	fullFileName += _dateInFilename ? QDateTime::currentDateTime().toString("yyyyMMdd_hh'h'mm'mn'ss's'_") : "";
    	fullFileName += _filename + ".avi";
     
    	// Select codec
    	int codec = cv::VideoWriter::fourcc('M', 'S', 'V', 'C');	// This codex works only with short video.
     
    	// Open video file
    	_writer.open(fullFileName.toStdString(), 6, FPS-5, videoSize, true);
     
    	// Launch timer
    	_timer.start();
    Mon problème est le suivant : la taille de la vidéo montre très vite (un peu comme avec le logiciel FRAPS), ce qui est normal vu qu'il n'y a aucune compression. Ce qui m'ennuie, c'est que dès que la vidéo dépasse 2Go (soit environ 1 minute de capture) le lecteur n'arrive pas à la lancer (erreur C00D11B1 du Lecteur Windows Media). De plus la vidéo semble être bloqué à 4Go max. Si la vidéo fait 4Go, je peux la lancer à nouveau mais elle n'est pas bonne (problème de couleur, erreurs, ...).

    Mes recherches sur le net ne donnent rien pour le moment. Avez-vous une idée sur comment résoudre ce problème ? J'ai tenté plusieurs codec mais la plupart ne génère même pas de vidéo...

    Merci par avance pour votre aide.

    Okami

  2. #2
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Je ne connais pas grand chose a la vidéo et je débute avec OpenCV, mais a tu tenter un autre code FOUR comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    cv::VideoWriter::fourcc("I", "4", "2", "0")            ;   //  Uncompressed YUV 420 (File format: *.avi).   
    cv::VideoWriter::fourcc("M", "J", "P", "E", "G")   ;  //  Motion-JPEG  (File format: *.avi). 
    cv::VideoWriter::fourcc("P", "I", "M", "1")           ;  //  MPEG-1 (File format: *.avi). 
    cv::VideoWriter::fourcc("T", "'H", "E" "O")          ;  //  OGG-Vorbis (File format: *.ogv).
    cv::VideoWriter::fourcc("F" , "L" , "V", "1")         ;  //  Flash video (File format: *.flv).

    Sinon concernant la taille de tes fichiers je sais que si le fichiers est plus grand que la RAM a disposition tu aura des problèmes.
    D'ailleurs si un fichier est plus grand que 4 Go sur un système 32 bits il ne pourra le lire, même si c'est un fichier texte.

    Sinon regarde par http://opencv.org/documentation.html ou http://docs.opencv.org/ pour trouver le moyen de compresser tes vidéo, sinon un appel a system(...) pour faire un appel a un programme tiers est une solution si tu n'en trouve pas d'autres.

    Bon OpenCV a toi.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

Discussions similaires

  1. Erreur sur une fonction avec des paramètres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/05/2004, 21h00
  2. [VBS] Erreur sur "AddWindowsPrinterConnection"
    Par Admin dans le forum VBScript
    Réponses: 5
    Dernier message: 27/03/2004, 16h15
  3. Erreur sur serveur lié
    Par k-lendos dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/03/2004, 15h21
  4. []Erreur sur second emploi collection binding
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 08/03/2004, 18h02
  5. Erreur sur le TNSListener après installation de 9iAS
    Par Patmane dans le forum Installation
    Réponses: 4
    Dernier message: 04/02/2004, 11h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo