Потоковая передача рабочего стола Linux как поддельной веб-камеры в гостевую систему Virtuabox Windows

Я хотел бы захватить (часть) моего рабочего стола Linux (ubuntu 20.04), передать его как веб-камеру на гостевую виртуальную машину Windows 10, работающую в Virtualbox.

Я нашел «Использование рабочего стола в качестве поддельной веб-камеры в Linux» , что продвинуло меня довольно далеко.

Итак, я установил v4l2loopback (apt install v4l2loopback-dkms), затем побежалmodprobe v4l2loopback.

Затем я выполнил команду ffmpeg:ffmpeg -f x11grab -framerate 25 -video_size 1280x720 -i :1.0+0,0 -f v4l2 /dev/video0

Это работает тем, что я могу открыть /dev/video0 в VLC (Медиа > Открыть устройство захвата > открыть /dev/video0) и просмотреть поток.

Это также работает в том смысле, что Virtualbox может видеть устройство /dev/video0. Это можно сделать, перейдя в «Устройства > Веб-камеры». Мне пришлось установить пакет расширений виртуальной коробки (sudo apt install virtualbox-ext-pack).

Виртуальное поле называет устройство веб-камеры «Фиктивное видеоустройство (0x0000), что соответствует выводуv4l2-ctl --all -d /dev/video0 | grep "Card type": «Тип карты: Фиктивное видеоустройство (0x0000)». Другие устройства, перечисленные в нем, также правильно соответствуют /dev/video<0-6>.

Поэтому я уверен, что виртуальный бокс улавливает правильный видеопоток.

Единственная проблема заключается в том, что Windows отображает только синий экран (конечно!) при передаче изображения с веб-камеры. Я не вижу правильного видеоканала, который получаю в VLC.

Я нашел эту страницу: https://forums.virtualbox.org/viewtopic.php?f=7&amp;amp;t=96552, но не смог дать точный ответ. Я мало что знаю о ffmpeg или gstreamer!

Я могу попробовать то же самое с гостевой ОС Ubuntu, чтобы сузить проблему до проблемы Windows или проблемы с форматированием видео.

Спасибо заранее за любые предложения!

0 ответов

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