Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Camera IP

6 réponses
Avatar
Pascal Pizeine
Bonjour,

Je dois faire le prototype d'un logiciel d'acquisition et d'affichage du
flux vidéo d'une caméra IP (MPeg4 avec RTSP/RTP). Ce programme doit
fonctionner sous linux sur une carte PC industrielle (AMD LX800 à 500 Mhz).
J'ai en principe le choix du langage. Après quelques recherches j'ai trouvé
un ensemble de lib en C mais ça m'a l'air d'être d'assez bas niveau et pas
facile à mettre en oeuvre. J'ai également fait des recherches du coté Java
et j'ai trouvé des références à JMF (Java Media Framework). Mes questions
sont les suivantes :
1-) Y a-t-il une alternative à JMF (payante ou non) ?
2-) Puis-je réellement traiter un flux vidéo en java avec un processeur
aussi peut puissant (le programme ne fait pas d'autres traitements lourds en
dehors de l'affichage et le PC industriel lui est réservé)

Merci d'avance,
Pascal PIZEINE

6 réponses

Avatar
TestMan
Bonjour,
Bonjour,

Je dois faire le prototype d'un logiciel d'acquisition et d'affichage du
flux vidéo d'une caméra IP (MPeg4 avec RTSP/RTP). Ce programme doit
fonctionner sous linux sur une carte PC industrielle (AMD LX800 à 500 Mhz).
J'ai en principe le choix du langage. Après quelques recherches j'ai trouvé
un ensemble de lib en C mais ça m'a l'air d'être d'assez bas niveau et pas
facile à mettre en oeuvre. J'ai également fait des recherches du coté Java
et j'ai trouvé des références à JMF (Java Media Framework). Mes questions
sont les suivantes :
1-) Y a-t-il une alternative à JMF (payante ou non) ?


Bonjour,
Pas vraiment de contrindications, mais niveau perf il vaudra mieux faire
une maquette !

Avez-vous une accélération matérielle MPEG4 (carte) ?

Sinon, en utilisant le codec d'IBM ça devrait être possible :
http://www.tek-tips.com/viewthread.cfm?qid—8659&page=1

2-) Puis-je réellement traiter un flux vidéo en java avec un processeur
aussi peut puissant (le programme ne fait pas d'autres traitements lourds en
dehors de l'affichage et le PC industriel lui est réservé)


C'est clair que si tu veux faire du h264 ça risque d'être limité ... ou
alors oublit les résolutions de haute voltige ...

Tenez-nous au courante de tes tests.

A+
TM

Avatar
Pif
Bonjour, sans rentrer dans les détails Java, j'avais un PC assez vieux
que ne voulais dédier à ma TV... j'ai essayé avec des P2 350, P2 500 et
Celeron 600 ou 700 Mhz. Ca n'était pas fluide pour regarder des Divx...
et uniquement pour décoder ! Avec pourtant de bons lecteurs : Media
Player Classic, VLC, WMP, RP, QT..

Du coup, l'avantage de ta caméra IP est peut etre une résolution
inférieure ? Si c'est le cas, tu vas y gagner beaucoup ! Diviser par
deux la taille c'est diviser par quatre le nombre de pixels et
multiplier de preste autant les performances.
Par contre, le problème c'est qu'encoder est beaucoup plus lourd que
décoder..

Du coup, je pense qu'indépendamment de Java, tu risque d'avoir des
soucis meme en C... après il existe des cartes d'aquisitions qui
permettent de décharger le code, chez Pinnacle... mais je ne sais pas
dans quelle mesure les librairies existants permettent d'en exploiter
les performances, et comment Pinnacle met à disposition ses drivers ou
outils... Il y a bien sur d'autres solutions que Pinnacle...

Quel est le contexte de ton enregistrement ?
Par exemple depuis l'époque des video surveillance sur cassette, il
existe des système qui capturent une image toutes les 6 secondes, du
coup on enregistre 10 caméras sur une K7 VHS sur 24h...

En surveillance IP, c'est pareil, il est possible d'enregistrer 1 image
sur 6 (frame rate de 4 ips) et pour le coup tu n'a plus de soucis de
performances...

Enfin, dernière remarque : il existe des codec adaptés à la capture de
logiciels sur écran : on a des grosse résolutions (supérieurs à la DV,
besoin de fluidité, etc... Et comme le logiciel doit tourner en
parallèle, on a besoin de conserver des ressources disponibles. Pour le
coup, si tu choisi un framework indépendamment du langage, vérifie qu'il
permette d'utiliser un codec adapté...

Voici une discussion ou on m'avait recommandé quelques codecs :
http://groups.google.fr/group/fr.comp.sys.pc/browse_thread/thread/7f1892c504b994fc/8da25aabefbd1896?lnk=gst&q=pif&rnum=2&hl=fr#8da25aabefbd1896


Bonjour,

Je dois faire le prototype d'un logiciel d'acquisition et d'affichage du
flux vidéo d'une caméra IP (MPeg4 avec RTSP/RTP). Ce programme doit
fonctionner sous linux sur une carte PC industrielle (AMD LX800 à 500 Mhz).
J'ai en principe le choix du langage. Après quelques recherches j'ai trouvé
un ensemble de lib en C mais ça m'a l'air d'être d'assez bas niveau et pas
facile à mettre en oeuvre. J'ai également fait des recherches du coté Java
et j'ai trouvé des références à JMF (Java Media Framework). Mes questions
sont les suivantes :
1-) Y a-t-il une alternative à JMF (payante ou non) ?
2-) Puis-je réellement traiter un flux vidéo en java avec un processeur
aussi peut puissant (le programme ne fait pas d'autres traitements lourds en
dehors de l'affichage et le PC industriel lui est réservé)

Merci d'avance,
Pascal PIZEINE




Avatar
Pascal Pizeine
Bonjour,

"Pif" a écrit dans le message de news:
em86na$rb3$
Bonjour, sans rentrer dans les détails Java, j'avais un PC assez vieux que
ne voulais dédier à ma TV... j'ai essayé avec des P2 350, P2 500 et
Celeron 600 ou 700 Mhz. Ca n'était pas fluide pour regarder des Divx... et
uniquement pour décoder ! Avec pourtant de bons lecteurs : Media Player
Classic, VLC, WMP, RP, QT..

Du coup, l'avantage de ta caméra IP est peut etre une résolution
inférieure ? Si c'est le cas, tu vas y gagner beaucoup ! Diviser par deux
la taille c'est diviser par quatre le nombre de pixels et multiplier de
preste autant les performances.
Par contre, le problème c'est qu'encoder est beaucoup plus lourd que
décoder..

J'utilise une caméra Axis 207, c'est elle qui s'occupe de l'encodage. Même

si j'utilise
un autre modèle plus tard elle devra avoir des caractéristique équivalentes
(elle doit s'occuper de l'encodage).

Du coup, je pense qu'indépendamment de Java, tu risque d'avoir des soucis
meme en C... après il existe des cartes d'aquisitions qui permettent de
décharger le code, chez Pinnacle... mais je ne sais pas dans quelle mesure
les librairies existants permettent d'en exploiter les performances, et
comment Pinnacle met à disposition ses drivers ou outils... Il y a bien
sur d'autres solutions que Pinnacle...

Quel est le contexte de ton enregistrement ?
Par exemple depuis l'époque des video surveillance sur cassette, il existe
des système qui capturent une image toutes les 6 secondes, du coup on
enregistre 10 caméras sur une K7 VHS sur 24h...

En surveillance IP, c'est pareil, il est possible d'enregistrer 1 image
sur 6 (frame rate de 4 ips) et pour le coup tu n'a plus de soucis de
performances...

Je me contente de lire le flux fourni par la caméra et de l'envoyer sur un

écran.
C'est en fait une sorte de visio-conférence. La vidéo doit être de
suffisamment
bonne qualité pour permettre à un sourd de lire sur les lèvres de la
personne filmée.

Autrement, pour répondre également au post précédent je compte effectivement
faire
une maquette pour vérifier les perfs. Je compte également installer VLC sur
la carte pour
tester la solution avec une API C (même si je pense avoir beaucoup plus de
mal à développer
mon appli de cette manière).

Enfin, dernière remarque : il existe des codec adaptés à la capture de
logiciels sur écran : on a des grosse résolutions (supérieurs à la DV,
besoin de fluidité, etc... Et comme le logiciel doit tourner en parallèle,
on a besoin de conserver des ressources disponibles. Pour le coup, si tu
choisi un framework indépendamment du langage, vérifie qu'il permette
d'utiliser un codec adapté...

Voici une discussion ou on m'avait recommandé quelques codecs :
http://groups.google.fr/group/fr.comp.sys.pc/browse_thread/thread/7f1892c504b994fc/8da25aabefbd1896?lnk=gst&q=pif&rnum=2&hl=fr#8da25aabefbd1896


Bonjour,

Je dois faire le prototype d'un logiciel d'acquisition et d'affichage du
flux vidéo d'une caméra IP (MPeg4 avec RTSP/RTP). Ce programme doit
fonctionner sous linux sur une carte PC industrielle (AMD LX800 à 500
Mhz). J'ai en principe le choix du langage. Après quelques recherches
j'ai trouvé un ensemble de lib en C mais ça m'a l'air d'être d'assez bas
niveau et pas facile à mettre en oeuvre. J'ai également fait des
recherches du coté Java et j'ai trouvé des références à JMF (Java Media
Framework). Mes questions sont les suivantes :
1-) Y a-t-il une alternative à JMF (payante ou non) ?
2-) Puis-je réellement traiter un flux vidéo en java avec un processeur
aussi peut puissant (le programme ne fait pas d'autres traitements lourds
en dehors de l'affichage et le PC industriel lui est réservé)

Merci d'avance,
Pascal PIZEINE




Avatar
Pif

Je me contente de lire le flux fourni par la caméra et de l'envoyer sur un
écran.
C'est en fait une sorte de visio-conférence. La vidéo doit être de
suffisamment
bonne qualité pour permettre à un sourd de lire sur les lèvres de la
personne filmée.


pour le coup pourquoi passer par du MPEG4 ... c'est le flux IP qui est
en MPEG4 ?
Pour lire sur les levres il faut en effet avec une excellente fiabilité
et un excellent framerate sans saccade je suppose ... pour le coup, le
WIFI va-t-il répondre à cette éxigence ?

Puis-je poser la derniere question : il n'existe pas de solution toute
faite ? QUand tu achete les camera IP le vendeur ne vend pas un logiciel
? Ca coute moins cher que de développer ? Sinon il n'y a aucune solution
Open Source ? Tu n'aurais alors qu'a rediger le flux d'entrée
éventuellement ?


tester la solution avec une API C (même si je pense avoir beaucoup plus de
mal à développer
mon appli de cette manière).


l'avantage est que tu peux pas exemple reprendre le code de MPClassic ou
VLC et simplement à modifier l'entrée...

Tu peux regarder du coté des outils fournis par les freebox et autre
produits équivlent... Free a un petit utilitaire dont il existe des
variantes qui permet de lancer la lecture d'une video sur le PC et de la
sortir en Péritel sur la TV, via le WIFI ... Pour le coup, ces
utilitaires sont généralement dérivés de VLC et libres... ca peut etre
une bonne brique de base...

BOn courage.

Avatar
Pascal Pizeine
"Pif" a écrit dans le message de news:
em8d1c$1sk$

Je me contente de lire le flux fourni par la caméra et de l'envoyer sur
un écran.
C'est en fait une sorte de visio-conférence. La vidéo doit être de
suffisamment
bonne qualité pour permettre à un sourd de lire sur les lèvres de la
personne filmée.


pour le coup pourquoi passer par du MPEG4 ... c'est le flux IP qui est en
MPEG4 ?
C'est bien le flux IP qui est en MPEG4


Pour lire sur les levres il faut en effet avec une excellente fiabilité et
un excellent framerate sans saccade je suppose ... pour le coup, le WIFI
va-t-il répondre à cette éxigence ?

La camera que j'utilise n'est pas en WIFI (c'est la Axis 207W qui l'est)


Puis-je poser la derniere question : il n'existe pas de solution toute
faite ? QUand tu achete les camera IP le vendeur ne vend pas un logiciel ?
Ca coute moins cher que de développer ? Sinon il n'y a aucune solution
Open Source ? Tu n'aurais alors qu'a rediger le flux d'entrée
éventuellement ?

Axis fourni un activeX. Ce qui permet de faire ce que l'on veux sous

Windows. Par contre
sous linux je n'ai rien trouvé.
Il n'y a pas vraiment une solution toute faite qui me convienne car en plus
du flux vidéo, je veux pouvoir afficher
un plan par exemple. En fait, le flux vidéo doit être une fenêtre de mon
application.


tester la solution avec une API C (même si je pense avoir beaucoup plus
de mal à développer
mon appli de cette manière).


l'avantage est que tu peux pas exemple reprendre le code de MPClassic ou
VLC et simplement à modifier l'entrée...

VLC je l'ai installé sur un poste Windows et j'ai simplement à le configurer

pour afficher
le flux. Il ne me resterait plus qu'à intéger le code dans un application
linux pour que ça fonctionne.
J'ai un peu regardé le code de VLC et ça ne m'a pas paru trivial.

Tu peux regarder du coté des outils fournis par les freebox et autre
produits équivlent... Free a un petit utilitaire dont il existe des
variantes qui permet de lancer la lecture d'une video sur le PC et de la
sortir en Péritel sur la TV, via le WIFI ... Pour le coup, ces utilitaires
sont généralement dérivés de VLC et libres... ca peut etre une bonne
brique de base...

BOn courage.



Avatar
Pif
je viens de demander à un collegue, il utilise des cartes 40 mhz, des
cameras wifi MPEG4 et visiblement ils disait que le JMF passait très
bien pour ce que tu veux faire... par contre, je ne sais pas exactement
l'état et le contexte de son projet : a-t-il besoin d'un excellent
framerate ? ou en sont exactement ses expérimentations ?

Ce qu'il faut vérifier, c'est que la résolution de ses caméras n'est pas
nettement inférieure ...

tiens nous au courant de tes résultats !
Peux etre que tu peux en profiter pour créer un ptit tuto et mettre le
code dispo meme ? :)

Perso, je serais curieux de découvrir JMF au travers d'un tel exemple !