ov51x driver on Foxboard and mJpegServ http streaming server.
Par Jean Charles MAMMANA, lundi 30 juillet 2007 à 20:52 :: Programmation :: #26 :: rss
Disposant d'une webcam Hercules Deluxe offrant une image tout a fait honorable, j'ai souhaité m'en servir sur une foxboard.
Il existe sur linux, deux drivers capable de la faire marcher...
Il existe sur linux, deux drivers capable de la faire marcher...
Le premier est le driver ovcam ov51x officiel. Il donne un flux jpeg donc tres pratique pour faire du streaming sans manipulation du flux.
La structure du flux renvoyé par le driver est tres simple : chaque frame (jpeg) est précédé de deux octets donnant la taille (en octets) de la frame qui va suivre.
Vous pouvez télécharger le driver pour la fox ici (Linux axis 2.6.15 - glibc).
Les sources et le Makefile pour la foxboard sont disponible sur le SVN (login/pass : arobot)
Le deuxième est en réalité une version modifié du premier qui donne accès a un flux RGB. En faite le driver se charge de faire la décompression jpeg (donc c'est tres lent et pas vraiment très propre). Cela dit, ca permet de faire du traitement d'images sans avoir a se soucier de faire la décompression jpeg.
On va laisser de coté ce driver mais je donne quand même le binaire pour ceux qui sont intéressé : ov51x-jpeg.ko (Linux axis 2.6.15 - glibc)
Vous trouverez la liste des webcams compatible sur cette page : http://alpha.dyndns.org/ov511/cameras.html.
Les webcams compatibles avec ce driver sont celles qui ont le bridge ov519 ou ov530
Pour charger le module sur la fox :
MjpegServ est un petit serveur de streaming capable de diffuser les images provenant d'une webcam utilisant le driver ov51x directement sur un navigateur web.
Je l'ai codé a la va vite, il ne supporte pas plusieurs clients simultané.
On peut le lancer en mode "jpeg", dans ce cas, au moyen d'un script javascript on redemande une nouvelle image à intervalle régulier.
Ce mode est supporté par tous les navigateurs (utilisant le javascript) mais n'offre pas excellentes performances.
L'autre mode de fonctionnement réalise un streaming mjpeg en offrant un meilleur framerate. Cependant ce mode ne marche qu'avec Firefox.
Vous pouvez trouver la dernière versions sur le repository SVN : http://svn.psykokwak.com/svn/arobot/mjpegServ/ (login & pass : arobot).
Edit: Update du serveur. Il est possible d'utiliser un composant activeX pour internet explorer (http://www.axis.com/techsup/cam_servers/tech_notes/205_live_video.htm)
La structure du flux renvoyé par le driver est tres simple : chaque frame (jpeg) est précédé de deux octets donnant la taille (en octets) de la frame qui va suivre.
Vous pouvez télécharger le driver pour la fox ici (Linux axis 2.6.15 - glibc).
Les sources et le Makefile pour la foxboard sont disponible sur le SVN (login/pass : arobot)
Le deuxième est en réalité une version modifié du premier qui donne accès a un flux RGB. En faite le driver se charge de faire la décompression jpeg (donc c'est tres lent et pas vraiment très propre). Cela dit, ca permet de faire du traitement d'images sans avoir a se soucier de faire la décompression jpeg.
On va laisser de coté ce driver mais je donne quand même le binaire pour ceux qui sont intéressé : ov51x-jpeg.ko (Linux axis 2.6.15 - glibc)
Vous trouverez la liste des webcams compatible sur cette page : http://alpha.dyndns.org/ov511/cameras.html.
Les webcams compatibles avec ce driver sont celles qui ont le bridge ov519 ou ov530
Pour charger le module sur la fox :
insmod videodev
insmod ./ov51x.ko
insmod ./ov51x.ko
MjpegServ est un petit serveur de streaming capable de diffuser les images provenant d'une webcam utilisant le driver ov51x directement sur un navigateur web.
Je l'ai codé a la va vite, il ne supporte pas plusieurs clients simultané.
On peut le lancer en mode "jpeg", dans ce cas, au moyen d'un script javascript on redemande une nouvelle image à intervalle régulier.
<script type="text/javascript">
function refresh() {
var unique = new Date();
document.images.monImage.src = "http://192.168.0.90:8888/streaming.jpeg&unique=" + unique.getTime();
}
window.onload = function (){
setInterval("refresh()", 250);
}
</script>
<img id="monImage" alt="streaming mjpeg"/>
function refresh() {
var unique = new Date();
document.images.monImage.src = "http://192.168.0.90:8888/streaming.jpeg&unique=" + unique.getTime();
}
window.onload = function (){
setInterval("refresh()", 250);
}
</script>
<img id="monImage" alt="streaming mjpeg"/>
Ce mode est supporté par tous les navigateurs (utilisant le javascript) mais n'offre pas excellentes performances.
L'autre mode de fonctionnement réalise un streaming mjpeg en offrant un meilleur framerate. Cependant ce mode ne marche qu'avec Firefox.
Vous pouvez trouver la dernière versions sur le repository SVN : http://svn.psykokwak.com/svn/arobot/mjpegServ/ (login & pass : arobot).
Edit: Update du serveur. Il est possible d'utiliser un composant activeX pour internet explorer (http://www.axis.com/techsup/cam_servers/tech_notes/205_live_video.htm)

Commentaires
1. Le vendredi 29 mai 2009 à 20:13, par SMar
Ajouter un commentaire