web-dev-qa-db-fra.com

Puis-je utiliser ma DSLR comme webcam via gphoto2 + v4l2loopback?

Alors, qu'est-ce que j'essaie de faire peut être un peu compliqué, je trouve mon chemin.

Laissez-moi vous expliquer les bases:

1 - J'ai une caméra DSLR et je souhaite l'utiliser comme webcam (mais V4L2 ne peut pas créer un périphérique/Dev/Videox avec elle, aucune application Internet ne peut l'utiliser, uniquement des applications spécifiques telles que sombretable)

2 - Je peux obtenir des cadres en direct de la caméra via GPhoto2 (mais je ne suis pas sûr de la façon de les faire pipi, et si je vais avoir besoin d'échelle et de les encoder/décoder)

3 - Je peux utiliser v4l2loopback pour créer un faux périphérique webcam (comme/dev/vidéo1) et je peux utiliser le lancement de la GST à des données sur les pipelines (mais je ne sais pas comment puis-je faire des cadres de pipeline pour cela)

Et ce que je sais à ce sujet:

1 - Je peux envoyer les cadres de la caméra à stdout comme ceci:

gphoto2 --capture-movie --stdout

2 - Je peux envoyer des données d'une source de test vidéo au faux périphérique webcam comme ceci:

gst-launch-0.10 videotestsrc ! v4l2sink device=/dev/video1

3 - Le format utilisé par gphoto2 est MJPG (format JPEG)

Alors, pouvez-vous m'aider avec ça?

Comment puis-je pipeler les cadres de GPhoto2 au lancement de la GST et l'utiliser avec V4L2Sink pour les envoyer à/dev/Video1 (donc je serai en mesure de l'utiliser comme une webcam)?

Merci!

7
user2934303

Cette commande a fonctionné mieux pour moi:

gphoto2 --stdout --capture-movie | ffmpeg -i - -vcodec rawvideo -pix_fmt yuv420p -threads 0 -f v4l2 /dev/video1
3
Vincent Maucorps