hummm... çà fait un bout de temps que le bug est signalé . Il ne l'était pas chez Debian . Je viens de le faire .
En général dernière mouture de Ubuntu=Debian-Sid . Des fois c'est un peu ...chaud .
Dernière modification par sakramh (2013-05-14 14:27:53)
Hors ligne
en fait il y'a eu deux nouvelles versions , mais comme ce module est en "urgency=low" personne n'a bougé .
Lesquelles ont fixé le problème avec les kernels >= 3.6
ici : http://packages.qa.debian.org/v/v4l2loopback.html
citation :
A new upstream version is available: 0.6.3 , you should consider packaging it.
ou sur le github branche experimental .
Bien dé-installer tout ce qui pourrait trainer de v4l2loopback .
Juste faire $ make et # make install . A refaire à chaque nouvelle version de Kernel avec cette méthode .
Méthode pas très "debian way" mais vu que j'ai pas les sources dkms pour cette version ben çà attendra .
L'utilitaire v4l2loopback-ctl et la page de man seront pas installés non plus .
Mais le binaire de -ctl est contruit donc on peut tjs le lancer à partir du ./build tout comme les examples .
Dernière modification par sakramh (2013-05-15 09:49:55)
Hors ligne
J'ai essayé comme tu as expliqué mais il fait freezer LMPT sans aucun message d'erreur.
J'ai installer la version 3.6 de v4l2loopback et voici toutes mes commandes.
sudo modprobe v4l2loopback devices=nb mkfifo /home/mathieu/test.mpeg ./yuv4mpeg_to_v4l2 /dev/video2 < /home/mathieu/test.mpeg & # qui indique '[1] 6406' donc qui semble marcher ./myProcessingSketch >> /dev/video2
Je me rappelle quand j'ai compilé la version 3.6, j'ai eu ce message
A mon avis il n'est pas installé ou à moitié vu que je n'ai pas de répertoire /build.
Where is the bug ?
Hors ligne
non c'est juste un WARNING . sans doute relatif à une façon pas très orthodoxe d'installer un module kernel
J'ai écrit ./build pour dire répertoire de construction .
Pour vérifier après
quand au freeze de LMPT , sais pas .
Y'a quand même un ordre logique .
1. charger le module dans le kernel
2. lancer sa commande yuv4mpeg_to_v4l2 ...
3. lancer son soft "WRITER"
4. lancer son (ses) soft "READER"
ordre inverse pour l'extinction (le process en fond yuv4mpeg_to_v4l2 se termine d'ailleurs à l'exticntion du "WRITER"
heu ...aussi bien sûr lancer les soft à partir d'un même endroit avec le chemin complet . Ou alors à partir de terminaux différents
note : un petit "sudo ldconfig" après "sudo make install" pour relister les lib .
Dernière modification par sakramh (2013-05-15 12:37:07)
Hors ligne
Avec dmesg je ne trouve pas ces lignes :
[13695.563529] media: Linux media interface: v0.10 [13695.579894] Linux video capture interface: v2.00 [13695.589068] v4l2loopback driver version 0.6.3 loaded
tandis que "locate" affiche bien les 3 "v4l2loopback.ko"
J'ai essayé derécupérer le flux dans vlc, il ne plante pas mais affiche quand je le coupe l'erreure suivante :
[0x94ee448] main stream error: cannot pre fill buffer
Je me demande si processing écrit bien dans le flux /dev/video0
ou si v4l2loopback est bien installé.
Hors ligne
Je répète ici car je reconnais n'avoir pas toujours été très clair .
!!!! Bien avoir dé installé les paquets loopback, loopback-dkms, loopback-ctl (ensemble par synaptic)(celà enlève le module de l'arbre dkms) !!!!
Juste un doute là .
Tu as bien fait :
make (en simple utilisateur)
puis :
sudo make install
et pas tout d'un coup ?
remarque on peut faire make && sudo make install
mais c'est plus clair la première forme je trouve . (chaque chose en son temps)
ensuite :
sudo ldconfig -v
ensuite :
locate v4l2loopback.ko
qui doit renvoyer :
/lib/modules/3.2.0-4-rt-amd64/extra/v4l2loopback.ko /lib/modules/3.8-1-rt-amd64/extra/v4l2loopback.ko
selon les kernels pour lesquels la "lib" a été compilée .
ensuite :
sudo modprobe videodev
(optionnel , normalement c'est chargé au boot, si ta webcam intégrée est déjà là c'est pas la peine)
ensuite :
ensuite :
dmesg
qui doit renvoyer dans les dernières lignes :
[13695.563529] media: Linux media interface: v0.10 [13695.579894] Linux video capture interface: v2.00 [13695.589068] v4l2loopback driver version 0.6.3 loaded
les n° seront pas forcément les mêmes .
si tout est bon tu peux compiler le yuv4mpeg_to_v4l2 et JOUJOU !
Je vais tenter LMPT pour voir quand j'aurais un peu de temps .
WOuahou ! je viens de voir ...
citation :
./myProcessingSketch >> /dev/video2
meuh non !!!
./myProcessingSketch >> monFIFO
et là au moins vlc devrait lire .
c'est LMPT qui va prendre un truc du genre --device /dev/videoX
Dernière modification par sakramh (2013-05-15 15:19:43)
Hors ligne
J'ai bien avancé,
Tout comme toi v4l2loopback et yuv4mpeg_to_v4l2 sont compilés
Mais lorsque je donne à vlc de regarder dans dev/video1
j'ai cette erreure :
libv4l2: error getting pixformat: Argument invalide [0xb09c0ec0] v4l2 access error: cannot set input 0: Invalid argument libv4l2: error getting pixformat: Argument invalide [0xb5301a18] main input error: open of `v4l2:///dev/video1' failed
Alors qu'il arrive à lire ma webcam.
Hors ligne
essaie avec gstreamer
gst-launch v4l2src device=/dev/video1 ! xvimagesink
histoire de mettre hors cause vlc (ou non)
Dernière modification par sakramh (2013-05-15 22:11:10)
Hors ligne
Même problème :
Il manque peut-être des infos au fichier .mpeg
Hors ligne
Oui pas simple .
Dans gephex j'ai pas de soucis vu qu'il y a une boiboite qui code en YUV4MPEG2 .
Tout fonctionne .
Mais avec une autre source , par exemple un "videotestsrc" ou un "filesrc" dans un pipeline gstreamer , j'ai eu droit à un peu tout .
Un message de yuv4mpeg_to_v4l2 : headers malformed .
Des messages du pipe gstreamer "writer" pipeline éronné .
Des messages du pipe "reader" Could not negotiate format Check your filtered caps, if any
ai essayé d'inclure le plug y4menc idem ....
trouvé çà pour essayer de comprendre un peu mieux http://www.metal3d.org/ticket/2012/08/1 … -gstreamer
pfff... pas grand chose nulle part .
Ce qui est sûr c'est que le flux qui est écrit dans le FIFO doit être conforme à yuv4mpeg .
Dernière modification par sakramh (2013-05-16 11:01:30)
Hors ligne
Cela dit l'exemple dans le README de /v4l2loopback/examples/
fonctionne impec . Il faut donc trouver comment écrire un fichier.y4m sans monter une usine à gaz .
Si j'ai bien compris les headers doivent contenir la taille width et eight , le framerate et "jenesaisquoiencore"
(quelques indications dans le yuv4mpeg_to_v4l2.c) .
J'ai cherché avec google mais rien de clair .
Il n'y a pas une lib qui fait çà dans processing ?
Dernière modification par sakramh (2013-05-16 12:07:07)
Hors ligne
Trouvé çà qui fonctionne
/home/sakramh/Sources/v4l2loopback_3.8/v4l2loopback-0.6.3/examples/yuv4mpeg_to_v4l2 /dev/video0 < /home/sakramh/fifo0 & sleep 2 && gst-launch-0.10 videotestsrc ! 'video/x-raw-yuv,format=(fourcc)I420,width=640,height=480,framerate=(fraction)25/1' ! y4menc ! filesink location=fifo0 ## format=(fourcc)Y41B fonctionne aussi
pour le lecteur Mplayer ou Gstreamer car si VLC fonctionne il rame (pas copain avec le débit ou autre)
mplayer TV:// /dev/video0 ## ou gst-launch v4l2src device=/dev/video0 ! xvimagesink
mais c'est inexploitable : la conversion en .y4m avec Gstreamer prend genre 20% de ressources + 10 % pour la conversion vers V4l2
Je vais tenter de comprendre la différence avec le stream de Gephex qui lui ne donne aucun travail à yuv4mpeg_to_v4l2
A y réfléchir , je pense qu'il vaudrait mieux , dans ton cas , inclure la conversion en stream lisible par LMPT dans ton code Java .
Sait pas si y'a des librairies pour çà ....
Hors ligne
Assez incompréhensible : avec Gephex , sans l'intermédiaire de Gstreamer donc, VLC fonctionne impec (çà on savait ) mais donne exactement les mêmes infos : Codec Planar 4:2:0 YUV (I420)
idem dans Mplayer .
J'en déduit juste que le plug y4menc de Gstreamer fait pas bien son job ou que ma ligne ci-dessus c'est pas encore çà .
Dernière modification par sakramh (2013-05-17 09:12:31)
Hors ligne
Ok je vais reagarder du côté de Java mais je pense que mes chances sont maigres.
Ce n'est pas grave je peux adapter mon projet, j'ai de nouvelles idées maintenant.
Merci pour ton aide
Hors ligne
Je relaie ici ce post : http://codelab.fr/4276#p22891
Dans le lien il est question de bibliothèques pour créer des pipes GStreamer dans Processing
Paragraphe "Solutions logicielles pour réaliser du light painting en temps réel"
Dernière modification par sakramh (2013-05-23 10:53:47)
Hors ligne
Pages: 1 2