Доброго времени суток, уважаемые форумчане!
Поставил Ubuntu на виртуальную машину, потихоньку осваиваюсь. Возникла проблема с веб-камерой DEFENDER C-090. Камера есть в списке устройств, но картинку с нее получить не удается. Запускал программу Cheese - вижу просто черный экран. При запуске через:
[console]mplayer ( $ mplayer tv:// -tv device=/dev/video0 ) [/console]
получаю ярко-зеленый экран с моргающими посередине пикселями, который никак не реагирует на приключения веб-камеры (закрываю пальцем / открываю объектив).
Помогите победить проблему, пожалуйста)
VBOX Ubuntu и веб-камера DEFENDER C-090
Большое спасибо модератору, перенесшему тему и добавившему тэг "консоль" :D
Впредь буду внимательнее.
Раз никто не отвечает.
Попробуйте так:
[console]$ guvcview -d /dev/video0[/console]
P.S. камеру никогда в виртуальной ubuntu не настраивал.
Marley,
[console]$ guvcview -d /dev/video0 > log[/console]
Содержимое log:
Показать
video device: /dev/video0
Init. USB2.0 Camera (location: usb-0000:00:06.0-2)
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30,
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30,
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30,
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30,
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30,
vid:1871
pid:0101
driver:uvcvideo
checking format: 1448695129
fps is set to 1/30
drawing controls
fps is set to 1/30
no codec detected for H264
no codec detected for MP3 - (lavc)
Checking video mode 640x480@32bpp : OK
write /home/sasha/.guvcviewrc OK
free controls
cleaned allocations - 100%
Closing portaudio ...OK
Closing GTK... OK
После выполнения, в терминале пишет следующее:
Показать
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.surround71
ALSA lib setup.c:565:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:565:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib setup.c:565:(add_elem) Cannot obtain info for CTL elem (MIXER,'IEC958 Playback Default',0,0,0): No such file or directory
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
libv4l2: error turning on stream: Input/output error
VIDIOC_STREAMON - Unable to start capture: Input/output error
libv4l2: error turning on stream: Input/output error
VIDIOC_STREAMON - Unable to start capture: Input/output error
libv4l2: error turning on stream: Input/output error
VIDIOC_STREAMON - Unable to start capture: Input/output error
[/console]
Сама программа видит камеру, дает возможность изменять настройки, но картинку с камеры нигде не показывает :(
justahf
А на хосте камера работает? И какая операционная система на хосте?
Вот у меня вывод, который запускает камеру и нормально показывает на Ubuntu:
Показать
marley@notebook:~$ guvcview -d /dev/video0
guvcview 1.5.3
Could not open /home/marley/.guvcviewrc for read,
will try to create it
write /home/marley/.guvcviewrc OK
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib audio/pcm_bluetooth.c:1614:(audioservice_expect) BT_GET_CAPABILITIES failed : Input/output error(5)
ALSA lib pcm_dmix.c:957:(snd_pcm_dmix_open) The dmix plugin supports only playback stream
ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
Cannot connect to server socket err = No such file or directory
Cannot connect to server socket
jack server is not running or cannot be started
video device: /dev/video0
Init. 1.3M HD WebCam (location: usb-0000:00:1a.0-1.3)
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 2/15, 1/5,
{ discrete: width = 1280, height = 960 }
Time interval between frame: 2/15, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 2/15, 1/5,
{ pixelformat = 'MJPG', description = 'MJPEG' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 960 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ pixelformat = 'RGB3', description = 'RGB3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 960 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ pixelformat = 'BGR3', description = 'BGR3' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 960 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ pixelformat = 'YU12', description = 'YU12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 960 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ pixelformat = 'YV12', description = 'YV12' }
{ discrete: width = 640, height = 480 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 160, height = 120 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 176, height = 144 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 320, height = 240 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 352, height = 288 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 720 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 800 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 960 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
{ discrete: width = 1280, height = 1024 }
Time interval between frame: 1/30, 1/25, 1/20, 1/15, 1/10, 2/15, 1/5,
vid:064e
pid:c21c
driver:uvcvideo
checking format: 1196444237
VIDIOC_G_COMP:: Invalid argument
compression control not supported
fps is set to 1/25
drawing controls
Checking video mode 640x480@32bpp : OK
Marley,
На хосте винда. Понятное дело, камера работает, иначе не создавал бы эту тему :)
Возможно, у меня с драйверами проблемы какие-то? Я совсем недавно с линуксами начал работать, и еще слабо ориентируюсь, что к чему и как ОС устроена. Как у Вас камера встала, сама собой, или что-то дополнительно устанавливали?
Помогите драйвера поставить :[
У меня работает из коробки на ноутбуке со встроенной камерой и на десктопе, где камера подключена по usb.
Никаких драйверов не ставил.
Попробуйте загрузиться с livecd ubuntu и выполнить эту команду.
Попробуйте загрузиться с livecd ubuntu и выполнить эту команду.
Пардон, какую?)
Пардон. Много мыслей в голове.
[console]$ guvcview -d /dev/video0[/console]
Пардон. Много мыслей в голове.
[console]$ guvcview -d /dev/video0[/console]
Я подумывал о таком варианте, но мне это показалось не очень логичным действием, поэтому и переспросил :D
Попробую, отпишусь о результате.
Marley, я ведь Вас правильно понял, что Вы предлагаете проделать это на хосте, не на виртуалке?
Сейчас под рукой ни болванки, ни флешки нет. Завтра сделаю.
Попробовал, столкнулся с нежеланием Live Убунты устанавливать пакеты, в итоге проверил через встроенный gstreamer-properties - камера работает, никаких драйверов ставить не пришось. То есть дело именно в виртуализации. Marley, большое спасибо за идею, теперь точно знаю, где копать.
Большая просьба к модераторам перенести тему обратно в "виртуализацию". Хотя уже не уверен, что кто-то поможет, за столько времени только один человек откликнулся. Придется, похоже, убунту как вторую ОС ставить :D Вот так линукс и входит в жизнь. Нечаянно нагрянет, когда его совсем не ждешь.
А следующий пакет расширений для работы, в том числе с USB в VirtualBox вы устанавливали?
http://download.virtualbox.org/virtualbox/4.3.8/Oracle_VM_VirtualBox_Extension_Pack-4.3.8.vbox-extpack
Если выполнить команду
[console]$ lsusb[/console]
Камера присутствует в списке?
Поставил Extension Pack для VBox, включил поддержку USB 2.0 для машины с убунтой. Раньше при нажатии кнопки "test" в разделе "video input" gstreamer-properties вываливал ошибки всякие, сейчас же без всяких ошибок запускает тестирование, всплывает окошко с надписью "testing", все как должно быть, только вот окна с изображением с камеры в принципе не открывается. В Cheese - тоже черный экран. А вот в guvcview камера, внезапно, демонстрирует признаки жизни. Запустив утилиту, я наблюдаю вот это:

Несмотря на дичайшие тормоза и на то, что все окно, за исключением тоненькой полоски сверху, черное и мертвое, эта полоска удивительно живая. При движении камеры картинка там меняется, и, в принципе, соответствует действительности (направлял на стену, за окно - цвета похожи).
Я пробовал ставить драйвера для камеры, отсюда, в частности: http://git.linuxtv.org/media_build.git . Может быть, они виноваты, и откатить надо все это добро? Или проще плюнуть на VirtualBox и поставить другую систему для виртуализации? :D
Камера присутствует в списке?
Да, есть)
Дурацкий вопрос.
А зачем камера на виртуальной машине, если она работает на хосте?
Дурацкий вопрос.
А зачем камера на виртуальной машине, если она работает на хосте?
Нужно написать интерфейсный софт под линукс, который получает картинку с вебкамеры. Это в первом приближении, дальше еще всякие приблуды будут :)
А попробуйте какое-нибудь кино запустить на виртуальной ubuntu.
А попробуйте какое-нибудь кино запустить на виртуальной ubuntu.
Видеофайлы открываются, если Вы об этом. Пробовал на небольшом файлике разрешением около 300х200.
Во многих дистрибутивах по умолчанию USB в виртуалбокс не работает.
Для этого нужно настраивать дистрибутив и установить пакет расширения.
Производились ли настройки и устанавливался ли Экстеншион-пак?
Проблема как правило кроется в правах пользователя, либо в корректности настроек.