GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Falsare una webcam utilizzando un dispositivo di loopback video?

Desidero utilizzare un clip video in loop come sorgente della webcam in un Hangout di Google+. Ho installato v4l2loopback e ho creato un dispositivo di loopback video. Ma non ho capito come scrivere i fotogrammi video sul dispositivo. L'esempio fornito è:

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

Quindi, dopo aver letto la pagina di manuale di gst-launch e aver cercato di capire cosa stesse succedendo, ho fatto il mio debole tentativo:

sudo gst-launch-0.10 filesrc location=//eadn-wc01-5196795.nxedge.io/home/briankb/Videos/darthvaderdancing.mp4 ! v4l2sink device=/dev/video0

Il risultato è:

Setting pipeline to PAUSED ...
libv4l2: error getting pixformat: Invalid argument
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...

(gst-launch-0.10:12622): GStreamer-CRITICAL **: gst_caps_get_structure: assertion `GST_IS_CAPS (caps)' failed
New clock: GstSystemClock

(gst-launch-0.10:12622): GStreamer-CRITICAL **: gst_structure_get_name: assertion `structure != NULL' failed
Caught SIGSEGV accessing address (nil)
#0  0x00007fc1890f0b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fc18962bff6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc18962c45a in g_main_loop_run ()
#3  0x00007fc189b5c4cb in gst_bus_poll ()
#4  0x0000000000404587 in ?? ()
#5  0x0000000000403c34 in ?? ()
#6  0x00007fc18902b76d in __libc_start_main ()
#7  0x00000000004043bd in ?? ()
#8  0x00007fff88253ed8 in ?? ()
#9  0x000000000000001c in ?? ()
#10 0x0000000000000006 in ?? ()
#11 0x00007fff882548c4 in ?? ()
#12 0x00007fff882548d4 in ?? ()
#13 0x00007fff882548dc in ?? ()
#14 0x00007fff88254904 in ?? ()
#15 0x00007fff88254906 in ?? ()
#16 0x00007fff8825490f in ?? ()
#17 0x0000000000000000 in ?? ()
Spinning.  Please run 'gdb gst-launch 12622' to continue debugging, Ctrl-C to quit, or Ctrl- to dump core.

La clip che sto cercando di utilizzare è un video h264 a 29,97 fps, 320×240 e in un contenitore mp4 (proviene da Youtube).

Migliore risposta

Il gst-launch pagine man ci dice che dobbiamo prima decodificare il video e il modo più semplice per farlo è questo:

gst-launch-0.10 filesrc location=[location] ! decodebin ! v4l2sink device=/dev/video0

gst-launch non ha bisogno di essere eseguito come root e [location] può essere anche relativo!


Ubuntu
  1. Aggiungi testo sovrapposto al video usando PHP-FFMpeg

  2. Come creare partizioni all'interno del dispositivo di loopback

  3. Mettere in loop un video con gstreamer e gst-launch?

  4. Come installo più di 10 dispositivi di loopback?

  5. Comprensione dei driver di dispositivo Linux della webcam

Come creare il tuo server per videoconferenze usando Jitsi Meet su Ubuntu 18.04 LTS

Come configurare le interfacce di rete utilizzando NMCLI su Centos 7.6

Logitech C310 Problemi con il video della webcam?

Utilizzo dei video tutorial di cPanel

Come scrivere su una webcam virtuale in Linux?

Pipe/Mix Line In all'uscita in PulseAudio