Чем заменить vloopback на новом ядре?

Софт под Linux, разные программы, но только связанные с Linux

Модератор: /dev/random

ghost
Сообщения: 158

Чем заменить vloopback на новом ядре?

Сообщение ghost »

Чем заменить vloopback на ядре 3.0? Начиная с 2.6.38 он больше не собирается из-за удаления из ядра v4l1 и сама прога не обновляется:(. Или как можно с клонировать /dev/video0.
Спасибо сказали:
needDrivers
Сообщения: 4

Re: Чем заменить vloopback на новом ядре?

Сообщение needDrivers »

Мне тоже интересно!


up
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5498
ОС: Gentoo

Re: Чем заменить vloopback на новом ядре?

Сообщение /dev/random »

Уже отвечено здесь: Виртуальная вебкамера
Спасибо сказали:
needDrivers
Сообщения: 4

Re: Чем заменить vloopback на новом ядре?

Сообщение needDrivers »

Спасибо! v4l2loopback собрался и запустился.

Только не понимаю, вроде оригинальный vloopback должен был создавать клоны существующей камеры (/dev/video0), а этот создает пустое устройство. Как создать клон существующей камеры?

Мне это нужно для использования камеры двух приложениях одновременно.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5498
ОС: Gentoo

Re: Чем заменить vloopback на новом ядре?

Сообщение /dev/random »

Это устойство выдаёт то, видео, которое ему в данный момент скармливают.
Попробуйте так:
gst-launch v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1
(здесь /dev/video0 - настоящая камера, а /dev/video1 - v4l2loopback, у вас имена могут отличаться)
Надеюсь, в будущем разработчики добавят возможность клонировать устройство напрямую.
Спасибо сказали:
needDrivers
Сообщения: 4

Re: Чем заменить vloopback на новом ядре?

Сообщение needDrivers »

Всё работает! Спасибо!

Теперь куда эту строчку правильно вставить, чтобы при старте системы грузилось?
Спасибо сказали:
koroleves
Сообщения: 3

Re: Чем заменить vloopback на новом ядре?

Сообщение koroleves »

А у меня не работает Карта видеозахвата Hawell HW-108Q9
gst-launch v4l2src device=/dev/video0 ! v4l2sink device=/dev/video1 отвечает

$ gst-launch v4l2src device=/dev/video0 ! v4l2sink device=/dev/video4
Установка конвейера в состояние PAUSED...
libv4l2: error getting pixformat: Недопустимый аргумент
ОШИБКА: Конвейер не хочет становиться на паузу.
ОШИБКА: из элемента /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
Дополнительная отладочная информация:
gstbasesrc.c(2830): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Check your filtered caps, if any
Установка конвейера в состояние NULL...
Освобождение конвейера..

что делать?
Спасибо сказали:
koroleves
Сообщения: 3

Re: Чем заменить vloopback на новом ядре?

Сообщение koroleves »

пытаюсь далье и без успеха....
gst-launch-0.10 v4l2src device=/dev/video0 ! queue ! ffmpegcolorspace ! deinterlace ! videoscale ! videorate ! video/x-raw-yuv,width=640,height=360,framerate=30/1 ! v4l2sink device=/dev/video4
Установка конвейера в состояние PAUSED...
libv4l2: error getting pixformat: Недопустимый аргумент
Конвейер работает и не требует состояния PREROLL...
Установка конвейера в состояние PLAYING...
New clock: GstSystemClock
ПРЕДУПРЕЖДЕНИЕ: от элемента /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0: Многое из буфера было отброшено.
Дополнительная отладочная информация:
gstbasesink.c(2875): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstV4l2Sink:v4l2sink0:
Спасибо сказали:
koroleves
Сообщения: 3

Re: Чем заменить vloopback на новом ядре?

Сообщение koroleves »

Нашел похожий пост, но так и не понял, что делать

$ sudo insmod v4l2loopback devices=2

Check to see, sure enough /dev/video0 and /dev/video1 are created.

$ gst-launch-0.10 [ourvideoSrouce] ! queue ! videoscale ! videorate ! video/x-raw-yuv,width=640,height=360,framerate=30/1,format=(fourcc)UYVY ! v4l2sink device=/dev/video0

(we get the pixformat error)

(in another terminal window)
$ cheese

Cheese shows video fine.
Stop cheese

cntl-c to kill the gst-launch, then change the output device to /dev/video1, eg,

$ gst-launch-0.10 [ourvideoSrouce] ! queue ! videoscale ! videorate ! video/x-raw-yuv,width=640,height=360,framerate=30/1,format=(fourcc)UYVY ! v4l2sink device=/dev/video1

Repeat cheese tests, all ok. So far we have demonstrated that the driver lets you write to the /dev/video device of your choice.

However, after a variable number of executions of

$ gst--launch-0.10 [ourvideoSrouce] ! queue ! videoscale ! videorate ! video/x-raw-yuv,width=640,height=360,framerate=30/1,format=(fourcc)UYVY ! v4l2sink device=/dev/video0

and killing it with cntl-c, the /dev/video0 device gets 'stuck' - eventually you see a message which indicates that it is not available (I will try to get that for you but for now, let's move on)

At that point you can STILL

$ gst--launch-0.10 [ourvideoSrouce] ! queue ! videoscale ! videorate ! video/x-raw-yuv,width=640,height=360,framerate=30/1,format=(fourcc)UYVY ! v4l2sink device=/dev/video1 (the other device is ok)

Kill that and try to

$ sudo rmmod v4l2loopback

You cant! It is still in use by vdeodev (and v4l2_compat_ioctl32)
You can't even

$ sudo rmmmod -f (any or all of those devices)

Uh oh.


 umlaeute referenced this issue

8 months ago
Closed
Issue #8: yuv4mpeg_to_v4l2 V4L2_PIX_FMT_YUV420 does not work with flash actionscript getCamera

Особенно смущает последний коментарий
Спасибо сказали: