Solution de navigation croisée pour afficher le flux MJPEG
y a-t-il un moyen léger, gratuit et fiable d'afficher MJPEG dans un environnement cross-browser? J'essaie d'afficher un flux MJPEG à partir d'une caméra IP Axis 2120 sur un site que je développe, et j'ai trouvé que c'est assez fiable dans les versions actuelles de Firefox. Cependant, après quelques tests, J'ai constaté QU'IE, Opera et Chrome ont tous des degrés variables de difficulté à faire cela (pas D'accès Mac, donc je ne suis pas sûr de Safari). Internet Explorer n'a pas support pour MJPEG et ne fonctionne pas du tout. Opera prend littéralement 10-15 secondes pour afficher n'importe quoi après que le premier GET ait été envoyé. Chrome fonctionne parfaitement jusqu'à ce que le <div>
qui contient la balise <img>
soit caché puis affiché à nouveau.
pour référence, j'utilise une étiquette <img>
pour afficher le flux comme suit:
<img src="http://my.ip.addr/axis-cgi/mjpg/video.cgi/?resolution=352x240" alt="real-time video feed" />
j'ai envisagé d'utiliser un serveur de rediffusion pour collecter le flux MJPEG et de transcoder à la volée, mais cette solution semble trop laid. Y a-t-il de meilleures suggestions?
2 réponses
Voici une solution basée sur Java applet que vous pouvez utiliser pour n'importe quel navigateur (ou juste ceux qui ne supportent pas MJPEG): http://www.charliemouse.com/code/cambozola /
en ce qui concerne les autres bogues allant avec MJPEG, j'ai trouvé que vous devriez définir l'attribut 'src' de la balise 'img' à quelque chose d'autre que MJPEG avant d'essayer de supprimer la balise 'img'. Exemple:
<img src="#" />
si vous ne le faites pas, Firefox continuera à télécharger MJPEG stream même s'il ne devrait pas.
j'ai trouvé une solution il y a quelques mois. Il est multi-plateforme, et n'a pas besoin de plugins tiers tels que Flash ou Java.
en gros, c'est un nœud.js proxy qui analyse les limites M-jpeg et fournit des images dans un intervalle défini.
fourche à https://github.com/rodowi/Paparazzo.js