dimanche 23 mars 2008

Installer MSYS/MINGW

J'ai passé quelques heures à trouver la bonne configuration msys/mingw pour compiler ffmpeg... Cet article a pour but d'éviter à nouveau cette perte de temps.

  1. Installer MSYS
    1. Télécharger la dernière version de MSYS
    2. Télécharger ces trois packets:
      1. MSYS-1.0.11-20071204.tar.bz2
      2. bash-3.1-MSYS-1.0.11-snapshot.tar.bz2
      3. coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2
    3. Installer MSYS sur c:\msys, dans le post install ( la boite de commande dos ) ne pas intégrer MINGW ( choisir l'option n)
    4. Décompresser ces trois packets dans le dossier c:\msys
  2. Installer MINGW
    1. Télécharger la dernière version de MINGW
    2. Télécharger ces 3 packets
      1. binutils-2.18.50-20080109.tar.gz
      2. mingw-runtime-3.14.tar.gz
      3. w32api-3.11.tar.gz
    3. Installer MINGW dans le repertoire c:\msys\mingw avec le compilateur c ( deuxième options cochées)
    4. Décompresser ces trois packets dans c:\msys\mingw
  3. Intégrer MINGW à MSYS
    1. Copier le fichier c:\msys\etc\fstab.sample dans c:\msys\etc\fstab
    2. Editer le fichier et remplacer la ligne
      1. "c:/mingw        /mingw"
      2. par "c:/msys/mingw        /mingw"
  4. Have fun :-)
  5. Des informations plus récentes peuvent être trouvées ici.

jeudi 20 mars 2008

Webcam HTTP Serveur

[Télécharger]
Serveur HTTP pour window capturant à interval régulier les frames provenant d'une webcam via la librairie webcamlib.

Pour accéder à la page web votre webcam il vous suffit de double cliquer sur le jar et de taper dans votre navigateur "http://localhost/".

La page index.html permet de recharger à interval régulier la source de l'image(/webcam) en javascript ( testé sous IE/Firefox/Opéra).

Si l'url de la ressource demandée est "/webcam" le serveur retourne une image au format jpeg, sinon recherche des fichiers dans le répertoire "public_html".

NB: Pour accéder à la webcam depuis internet il vous suffit de remplacer localhost par l'adresse IP du serveur à condition que vous ayez bien redirigé le port 80 vers votre serveur sur votre box adsl.

Have fun,
Pierrick

Webcam librairie

[Télécharger]
"Certaines webcams (Philips SPC520NC...) ne fonctionnent pas avec JMF", dont la mienne, d'après ce constat j'ai réalisé une librairie utilisant du code natif via JNA basée sur avicap.dll et vfw.h.

Cette librairie fonctionnant exclusivement sous win32 permet d'accéder et de communiquer avec le driver d'une ou plusieurs webcam.
Aussi pas moyen à l'heure actuelle de l'intégrer avec AWT ou Swing, seulement avec la SWT.
Le développement continue...

Je me suis basé sur la description de Video For Window dont la doc est disponible ici : http://msdn2.microsoft.com/en-us/library/ms712699%28VS.85%29.aspx

La classe org.hypik.webcamlib.DeviceManager permet de lister tous les drivers installés en renvoyant des instances de org.hypik.webcamlib.device.Device.
Cette dernière propose une API permettant de:
- Créer la fenêtre de la webcam avec les différents styles possibles,
- Se connecter à la webcam,
- Demander à la webcam de copier la frame courante dans le presse-papier,
- Se déconnecter,
- De s'aboner aux erreurs renvoyées par la webcam,
- De s'abonner aux messages de status,
- De s'abonner à chaque frame affichées,
- De récupérer une frame,
- Détruire la fenêtre,
- D'ouvrir les boites de dialogues de configuration proposées par le driver,
- De dispatcher les messages du système vers la fenêtre de la webcam si on utilise pas la SWT ( marche pas avec AWT/Swing)

Le package org.hypik.webcam.compressor permet de décompresser une frame dans un certain format vers un autre. L'api permet de:
-Lister tous les décompresseurs disponible,
-Recherche un décompresseur pour un format d'entrée vers un format de sortie,
-Bien sur de décompresser une frame,

Je vous propose trois classes de tests (Simple, SWT et AWT) pour bien prendre en main la librairie.
Elles peuvent être lancées directement en renommant les fichiers contenu dans bin en .bat.
Pour le test utilisant la swt il vous faut la librairie disponible sur http://www.eclipse.org/swt/

J'espère pouvoir faire évoluer cette librairie rapidement.
Vos retours/suggestions sont les bienvenus.
NB: Toutes mes excuses au pingouin mais j'ai pas le courage de me pencher sur video4linux.
Pierrick Hymbert