Bonjour,
Je (re)viens vers vous car je patauge un peu dans tout ce qui est "partage" video entre les applications...
A présent que j'arrive à capturer (non sans mal) de la video issue de FireWire :
dvgrab -f dv2 - | avconv -i - -r 1 -f image2 foo.jpeg
Je voudrais savoir si je peux créer un peripherique virtuel en modifiant le code ci dessus (pour réussir à utiliser v4l de façon concrete et comprendre un peu notament, mais aussi pour pouvoir mieux exploiter mon périphérique FireWire)
Si j'ai bien compris, ili suffit de faire :
sudo modprobe v4l2loopback ffmpeg -i source.avi -f v4l2 /dev/video1
et en principe on recupére source.avi
ffplay -f video4linux2 /dev/video1
Si c'est bien cela, j'ai un problème puisque avec dvgrab (le seul qui actuellement me capture une entree FireWire) cela ne fonctionne pas :
dvgrab -f dv2 - | ffmpeg -i - -f v4l2 /dev/video1
De plus, je n'ai pas réussi à utiliser avec succes vloopback (qui n'est pas v4l2loopback) qui m'aurait été utile avec dv4l (mais bon j'ai fais autrement, comme expliqué ci dessus)...
Je cherche aussi à transmettre ma fenêtre GEM à FFMPEG mais je patauge tout autant.
Enfin, lorsque j'ai essayé d'utiliser mon patch cree sous Mac sous Linux, avec toutes les librairies installé, pas grand chose pour ne pas dire rien ne fonctionnait... Même un pauvre [metro] ne se cree pas... Pourtant, j'ai renseigné les paths dans les preferences... Y a t il quelques choses à savoir, a faire en plus ? L'OS (Lubuntu) était buggé, je le ré-installe en ce moment même, mais tout de même, cela m'a étonné, et embêté...
Voila... Ca fait beaucoup je sais...
Merci par avance.
Dernière modification par Tepaze (2014-06-18 22:20:47)
Hors ligne
doit y avoir des chevaux qui piaffent d'impatience pour la photo .
vloopback n'est plus compilable sur les kernels > 2.6.39
seul v4l2loopback est compatible
quand à sudo modprobe v4l2loopback devices=x et ffmpeg ...... -f v4l2 /dev/video "n°" celà dépend du nombre de virtuels créés et si il y a ou non des caméras uvc et du n° du virtuel que l'on veut utiliser .
pour Gem il y a un fil sur le sujet ici : http://codelab.fr/1197
Possible aussi utiliser GSreamer avec le module v4l2sink .
Dernière modification par sakramh (2014-06-18 22:56:35)
Hors ligne
citation :
doit y avoir des chevaux qui piaffent d'impatience pour la photo
Arf... C'est moi surtout qui piaffe d'impatience... Je ne suis pas loin, mais je suis a coté à chaque fois...
Pour les N° c'est entendu que cela dépend de la présence ou non d'une webcam intégré. Ayant une webcam intégré, j'utilise le N°1
Par contre je dois spécifier le N° de device dans le modprobe ?? Je peux par exemple, et pour être sur de ne rien écraser faire :
modprobe v4l2loopback devices=21
Et as tu un lien vers un exemple pour gstreamer stp ?
Merci pour ces pistes Sakramh :-)
Hors ligne
Hello...
Pour créer les périphériques virtuels la commande qu'on utilise est :
sudo modprobe v4l2loopback video_nr=1,2
... pour créer un /dev/video1 et un /dev/video2
Pour ne pas avoir à te taper le modprobe a chaque fois, il te suffit d'aller écrire dans /etc/modules :
v4l2loopback video_nr=1,2
Et, oui, tu peux faire :
v4l2loopback video_nr=69
citation :
Je cherche aussi à transmettre ma fenêtre GEM à FFMPEG mais je patauge tout autant.
Il faut que tu utilises [pix_snap] et [pix_record] avec le codec v4l2.
Je t'ai fait un patch vite fait qu'il te faudra peaufiner pour ton besoin, mais tout y est :
Ensuite, la ligne de commande ffmpeg pour récupérer le flux commencera par quelque chose comme ça :
ffmpeg -y -f video4linux2 -s 1280x720 -i /dev/video69
Bon courage...
Hors ligne
citation :
Il faut que tu utilises [pix_snap] et [pix_record] avec le codec v4l2.
bonne alternative à un grab de X11 en effet .
Pour GStreamer il est probablement possible de réaliser toute la chaîne avec , mais il y a un souci de documentation . Je trouve que c'est bien plus ésotérique au début que Pd-extended .
Un début de tutoriel ici : http://blog.nicolargo.com/2009/01/intro … media.html
Dernière modification par sakramh (2014-06-19 09:06:56)
Hors ligne
Merci à tout deux. Je me plonge la dedans.
Entre nous, je trouve cet apprentissage passionnant :-)
Hors ligne
Olivier a écrit:
citation :
Je cherche aussi à transmettre ma fenêtre GEM à FFMPEG mais je patauge tout autant.
Il faut que tu utilises [pix_snap] et [pix_record] avec le codec v4l2.
Je t'ai fait un patch vite fait qu'il te faudra peaufiner pour ton besoin, mais tout y est :
http://codelab.fr/up/puredata-pix-record-v4l2.png
Très chouette ce patch !
Hors ligne
Bonjour à tous et toutes,
Je reviens vers vous après avoir géré les priorités et afin d'avancer un peu plus sur un éventuel portage sur Linux de mon truc...
J'ai installé Ubuntu (j'ai essayé Debian aussi, mais je l'ai planté en faisant n'importe quoi, mea culpa, et du coup c'est un Ubuntu, voila)
J'ai installé pd-extended, v4l2loopback-dkms et vlc
Et lorsque je regarde mon flux GEM -> v4l2loopback avec VLC, mon image est à l'envers. Une rotation à 180°
J'ai resolu le soucis (je suis en test hein, c'est tout) en mettant un [rotate 180 1 0 0] et j'obtiens l'image dans le bon sens...
Original n'est ce pas...
De plus j'affiche juste la webcam intégré de l'ordi dans GEM, et pd-extended rame.... Un [metro 1000]-[print] m'affiche quelque chose toutes les 2 à 3 secondes... Alors ok, c'est unportable sans carte graphique dédié, mais c'est un core i5 tout de même... Avec une GMA 950 ok, mais.... A votre avis?
Bien a vous
Tepaze
Hors ligne
Pour la rotation, je pense que c'est inhérent à [pix_record].
Donc, pour ma part, soit je retourne l'image dans GEM, [rotate] ou [pix_flip], soit je retourne la webcam, soit je retourne l'image à l'acquisition (dans le cas de caméra IP par exemple).
Mais bon, je retourne bien quelque chose... :-p
Concernant ton débit, c'est étrange, une chose que tu peux faire, c'est te passer du [pix_snap] et de faire entrer ton flux vidéo directement dans le [pix_record]...
Le coup du [pix_snap], c'est pour chopper tout le contenu de la fenêtre GEM (logo éventuel, animation, je ne sais quoi encore...).
Si tu veux juste transmettre du flux en cut de plusieurs sources, tu peux t'en passer et utiliser un [gate] pour gérer le choix du flux envoyé au [pix_record]...
En espérant ne pas avoir été confus...
Bon courage...
01ivier
Hors ligne
si c'était un souci de driver carte graphique (voire de drivers openGL) je ne peux que te renvoyer à cette page :
http://doc.ubuntu-fr.org/intel_graphics .
il y a qlq commandes utiles (attention les bêtises !) .
p.s. : si cette carte graphique fonctionnait bien sous debian il n'y a aucune raison que pas sous ubuntu .
Dernière modification par sakramh (2014-10-18 16:27:06)
Hors ligne
maintenant le mieux est de repartir de la source : la webcam . Certaines ont la mauvaise idée de prioriser certains paramètres plutôt que d'autres ( ouverture vs luminosité vs vitesse ) . Pour fixer çà : le plus simple est video4linux control panel . Mais il y a plein d'autres outils (recherche v4l2 dans synaptic) . Choix selon ses goûts . Pour les loopbacks il y a aussi un outil . Verifier aussi le fps de gem .
EDIT : le plus simple (et le plus complet) est GUVCVIEW . surcouche gtk à uvcdyncontrol . (man guvcview)
Dernière modification par sakramh (2014-10-20 14:15:56)
Hors ligne
Merci à vous 2.
Je repond un peu en retard, car le temps m'a rattrapper, mais je vais regarder cela de près dès que possible :-)
Encore merci pour vos pistes.
:-)
Hors ligne
Je me demande aussi comment faire pour transmettre le son de pure data à ffmpeg (ou libav) ?
Pour le reste je tatonne encore... Le retournement ne fonctionne pas si je n'utilise pas [pix_snap] et pix_snap me ralenti tout le patch...
Il faut que je recommence dans de bonne condition de test, avec les bonnes sources etc...
Hors ligne
ben c 'est la même que pour la vidéo .
ffmpeg -formats te renseigne sur ses capacités Décode/Encode
j'ai pas de tuto ffmpeg m'étant tjs débrouillé avec un man ffmpeg
donc qlq chose comme :
ffmpeg -f (alsa/jack/oss) -i (maSource) -f (x11/v4l2/etc..) -i (maSource) -acodec (encodageChoisi(pcm, mp3 ..)) -vcodec (encodageChoisi(flv,h264...)) maVideoAvecSon.containerChoisi
avec qlq indications de bits/sample et size/fps et affinage de débit si besoin
des exemples sont fournis par les pages de manuel ffmpeg et ffserver
mais c'est clair que beaucoup de tâtonnements avant de soigneusement copier la bonne dans un pense bête .
Dernière modification par sakramh (2014-10-26 12:49:06)
Hors ligne
citation :
Le retournement ne fonctionne pas si je n'utilise pas [pix_snap]
??!!
Je ne comprends pas...
Quel est ton patch... ?
Tu dois "retourner" autre chose que la vidéo ?
Sinon, tu dois vraiment pouvoir te passer de [pix_snap]
Dans tous les cas, j'imagine que tu vas passer par un serveur pour streamer ta vidéo...
Sur la partie serveur, il doit t'être possible de retourner la vidéo qui est transmise avant diffusion.
Pour le son, il faut que tu passes par jack et que tu routes le flux vers ffmpeg :
http://wiki.labomedia.org/index.php/Flu … 9o_.2B_son
Attention, toutes les versions de ffmpeg ne sont pas compilées avec le backend jack...
Par exemple, les versions statiques disponibles ici et qui prennent en charge v4l2loopback ne prennent pas en charge jack...
Bon courage...
Hors ligne