Equivalente ao Splitcam

4

Quero compartilhar a imagem da webcam (Logitech Quickcam Pro 9000) com mais de um aplicativo ao mesmo tempo.

Eu olhei ao redor da rede. Aqui está o que eu encontrei:  - webcamstudio: A mais nova versão do java tar-gz nem mostra a imagem da webcam  - v4l2loopback: A abordagem mais interessante da AFAIK. No entanto, parece que eu preciso de mjpegtools_yuv_to_v4l. Como não consigo compilá-lo no LUbuntu 12.10, instalei o Intrepid em uma VM e o compilei lá.

ffmpeg -f video4linux2 -i /dev/video0 -s 1280x1024 -r 5 -pix_fmt yuv420p -sws_flags lanczos -s 160x120 -r 5 -f yuv4mpegpipe -an - | ./mjpegtools_yuv_to_v4l /dev/video1

leva a

   Input #0, video4linux2, from '/dev/video0':
   Duration: N/A, start: 303506.618990, bitrate: 147456 kb/s
   Stream #0.0: Video: rawvideo, yuyv422, 640x480, 147456 kb/s, 30 tbr, 1000k tbn, 30 tbc
   [buffer @ 0x1659200] w:640 h:480 pixfmt:yuyv422
   [scale @ 0x1658860] w:640 h:480 fmt:yuyv422 -> w:160 h:120 fmt:yuv420p flags:0x200
   Output #0, yuv4mpegpipe, to 'pipe:':
   Metadata:
   encoder         : Lavf53.21.1
   Stream #0.0: Video: rawvideo, yuv420p, 160x120, q=2-31, 200 kb/s, 90k tbn, 5 tbc
   Stream mapping:
   Stream #0.0 -> #0.0
   Press ctrl-c to stop encoding

   mjpegtools_yuv_to_v4l: ioctl (VIDIOCGCAP): Inappropriate ioctl for device
   mjpegtools_yuv_to_v4l: Starting video stream.
   mjpegtools_yuv_to_v4l: Error writing to pipe, aborting.

Às vezes, essas mensagens de erro não aparecem, mas o prompt está retornando imediatamente, embora eu possa confirmar que o ffmpeg está enviando alguns dados pelo canal.

Resumindo: não consigo fazer funcionar. Estou usando o driver de loopback errado? Eu não consegui encontrar nada útil sobre como usar o driver, esp. como alimentá-lo com entrada.

Muito obrigado:)

    
por user1120897 11.03.2013 / 23:24

1 resposta

0

Bem, eu entendi parcialmente para o trabalho. No entanto, eu tenho um elenco azul. Isso pode ser por causa de formatos de pixel errados - estou certo? Se alguém tiver uma sugestão sobre como consertar isso, eu ficaria agradecido:).

Aqui está o que eu fiz:

compilado de link

sudo modprobe v4l2loopback

mkfifo pipe

./yuv4mpeg_to_v4l2-v1 /dev/video1 < pipe
mplayer tv:// -tv driver=v4l2:input=1:width=640:height=480:device=/dev/video0 -vo yuv4mpeg:file=pipe

Teste via

mplayer tv:// -tv device=/dev/video1

O Skype funciona via

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype
    
por user1120897 12.03.2013 / 13:14

Tags