Эквивалент Splitcam

Я хочу поделиться изображением с веб-камеры (Logitech Quickcam Pro 9000) одновременно с несколькими приложениями.

Я посмотрел вокруг сети. Вот что я нашел: - webcamstudio: новейшая версия java tar-gz даже не показывает картинку с веб-камеры - v4l2loopback: AFAIK - наиболее интересный подход. Тем не менее, мне, кажется, нужно mjpegtools_yuv_to_v4l. Поскольку я не могу скомпилировать его в LUbuntu 12.10, я установил Intrepid на виртуальной машине и скомпилировал его там.

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

приводит к

   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.

Иногда эти сообщения об ошибках не появляются, но приглашение немедленно возвращается, хотя я могу подтвердить, что ffmpeg отправляет некоторые данные через трубу.

Короче говоря: я не могу заставить его работать. Я использую драйвер loopback неправильно? Я не мог найти ничего полезного о том, как использовать драйвер, особенно. как кормить его с помощью ввода.

Большое спасибо:)

4
задан 12 March 2013 в 03:20

1 ответ

Blue cast problem

Ну, я заставил его частично работать. Однако у меня есть синий бросок. Это может быть из-за неправильных форматов пикселя - действительно ли я прав? Если у кого-то есть предложение о том, как зафиксировать это, я был бы благодарен :).

Вот то, что я сделал:

скомпилированный от https://github.com/umlaeute/v4l2loopback/tree/master/examples

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

Тест через

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

Skype действительно работает через

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype
0
ответ дан 12 March 2013 в 03:20

Другие вопросы по тегам:

Похожие вопросы: