Le traitement vidéo est un domaine qui a connu une croissance rapide ces dernières années. La librairie GSVidéo est une bibliothèque open source qui permet aux développeurs de créer des applications de traitement vidéo. Dans cet article, nous allons examiner les informations techniques utiles pour utiliser la librairie GSVidéo sous Ubuntu 10.04. Nous allons voir comment installer et configurer la librairie, ainsi que les fonctionnalités qu’elle offre et comment capturer des vidéos avec elle.
Processing : Capture vidéo avec la librairie GSVidéo : infos techniques utiles pour utiliser la librairie GSVidéo sous Ubuntu 10.04
Pourquoi utiliser la librairie GSVideo
- J’ai utilisé dans un premier temps la librairie openCV pour la capture vidéo sous Processing, mais autant les fonctions de reconnaissance visuelle sont vraiment bien, autant la capture vidéo présente quelques limites : lenteur en fait, utilisation un seul thread, et ne supporte que 1 seul flux webcam…
- Dans mes développements, j’ai eu besoin de pouvoir capturer plusieurs flux vidéos webcam (vision binoculaire, triangulation suivi d’objet) et aussi d’optimiser la rapidité du suivi d’objet par webcam… C’est ce qui m’a conduit à utiliser la librairie GSVideo pour la capture vidéo à partir de flux webcam avec Processing. GSVideo s’appuie sur GStreamer qui est disponible sous Ubuntu .
- GSVideo est une librairie disponible pour la capture vidéo sous Ubuntu avec Processing sans utiliser QuickTime… Cette librairie présente l’avantage de permettre une capture d’image vidéo beaucoup plus rapide que la librairie openCV. Il est tout à fait possible ensuite d’utiliser l’image obtenue pour traitement dans openCV qui peut être utilisé de façon concommittante. En pratique, pour le suivi d’objet, la librairie GSVidéo améliore significativement la fluidité de la poursuite d’objet.
- GSVideo permet également la capture multi-webcam, openCV pouvant s’appliquer secondairement sur chaque flux webcam.
- La librairie GSVideo utilise d’emblée le multi-thread, ce que ne fait pas openCV apparemment pour la capture vidéo. La rapidité obtenue est significativement supérieure !
Intro installation
- Le bon fonctionnement de la librairie GSVideo nécessite plusieurs éléments sur le système Ubuntu :
- GStreamer installé et librairies utiles GStreamer installées
- uvc installé avec librairies utiles
- v4l2 installé
- Et bien sûr le librairie GSVideo installée (dernière version de préférence) :
La dernière librairie GSVideo :
- A télécharger ici : http://gsvideo.sourceforge.net/
- A installer dans Processing/modes/java/libraries (Processing 1-5)
GStreamer et librairies utiles GStreamer
- Sous Ubuntu 10.04, Gstreamer est installé par défaut.
- vérifier que les librairies/paquets suivant(e)s ou équivalents sont présentes, notamment, à priori :
- >> gstreamerxx
- >> gstreamerxx-ffmpeg-0.10.3.
- >> gstreamerxx-plugins-0.8.12.
- >> gstreamerxx-plugins-bad-0.10.5.
- >> gstreamerxx-plugins-base-0.10.17
- >> gstreamerxx-plugins-good-0.10.6
- >> gstreamerxx-plugins-ugly-0.10.6
- et aussi : libgstreamer0.10-dev (voir : http://codeanticode.wordpress.com/2008/03/27/new-version-of-gsvideo-with-capture-object/#more-15 )
voir ici : http://codeanticode.wordpress.com/2011/03/15/gsvideo-0-8/
Pour tester les fonctions installées dans un Terminal :
$ gst-inspect-0.10
Pour tester l’installation gstreamer :
$ gstreamer-properties
Il semble également utile d’installer gstreamer-tools
Pour lancer une capture en ligne de commande : faire :
- $ gst-launch v4l2src ! jpegdec ! xvimagesink
- ou $ gst-launch v4l2src ! xvimagesink
Liste de tous les plugins : http://gstreamer.freedesktop.org/documentation/plugins.html
- Sous (X)Ubuntu 11.10, il existe un bug au lancement de GSVideo dans Processing si on n’a pas installé au préalable sudo apt-get install libgtk2.0-dev
Voir :
uvc
- notamment uvc-capture ?
V4L2
- en cas de message d’erreurs dans Processing avec GSVideo, essayer avec le dépôt PPA for libv4l v4l-utils
- Voir notamment : https://launchpad.net/~libv4l/+archive/ppa
La dernière librairie GLGraphics :
- A télécharger ici : http://glgraphics.sourceforge.net/
- A installer dans Processing/modes/java/libraries (Processing 1-5)
Trucs utiles
- Pour gérer les périphériques V4L2 sous Ubuntu, il peut être intéressant le logiciel Video4Linux Control Panel (depuis la logithèque) qui se trouve ensuite dans Système>Préférences> (Ubuntu 10.04 LTS)
- Egalement, Video4Linux Device Preference depuis la logithèque qui se trouve ensuite dans Sons et Vidéos
- Le logiciel Guvcview également disponible depuis la logithèque permet également de tester ses webcams.
- Se reporter également à la doc de la librairie vidéo native de Processing, GSVideo reprenant la plupart de ces fonctions. Voir ici : http://processing.org/reference/libraries/video/index.html
Remarques diverses
- 12/08/2011 : De temps en temps, avec une webcam DualPix Exchange, j’ai le message d’erreur suivant (qui ne stoppe pas cependant le programme Processing) :
libv4l2: error converting / decoding frame data: v4l-convert: error parsing JPEG header: We do not support more than 4 AC Huffman table
Ce message d’erreur semble provoqué :
-
- lorsque la luminosité baisse par exemple.
- Au démarrage lorsque le framerate webcam est inférieur à 20. Il apparaît quasiment pas lorsque le framerate du programme et des webcam est entre 20 et 30 ou framerate programme multiple du framerate webcam.
- 12/08/2011 : La librairie GLGraphics entraîne plantage plus facilement que GSvideo seul
- 12/08/2011 : L’utilisation de captureEvent() est moins stable que lorsque le code est mis dans draw()
Articles similaires:
- http://web.archive.org/web/20210804223007/http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.OutilsProcessingVideo
- Processing GSVidéo + JavacvPro :
- Processing : OpenCV : librairie javacvPro : Affichage simple d’un flux vidéo issu d’une webcam
- GLAP-Box : Programme de test : Capture d’un flux vidéo dans un programme Processing à l’aide de la librairie GSVideo et traitement d’image en direct à l’aide de la librairie openCV.
- Processing : OpenCV : librairie javacvPro : Programme minimum.
Articles Liés
- Processing Capture Vidéo : Capture d'un flux vidéo (1 webcam) avec la librairie GSVideo seule
Le traitement de la vidéo est un domaine qui a connu une croissance rapide ces…
- Processing Capture Vidéo avec GSVideo et GLGraphics : Capture d'un flux vidéo avec la librairie GSVideo couplée aux librairies openGL (native) et GLGraphics.
La capture vidéo est un outil puissant pour les artistes et les développeurs qui souhaitent…
- Processing GSVidéo + JavacvPro :
Processing est un langage de programmation open source qui permet aux développeurs de créer des…