Выдается ошибка (камера не работает) (v4l-convert: error parsing JPEG header:Not a JPG file ?)

Установка, настройка TV-тюнеров, видеокамер, веб-камер, плат видеозахвата, flash(MP3)-плееры

Модератор: Модераторы разделов

Ответить
Аватара пользователя
New_2_Linux
Сообщения: 28
ОС: Xubuntu 9.10 Karmic Koala

Выдается ошибка (камера не работает)

Сообщение New_2_Linux »

Если до этого камера с LD_PERLOAD показывала видео, то теперь и скайп, и xawtv показывают черную картинку. Гуглила, но причина неясна, и в том, что нашла, были другие модели камер. Встроенный в камеру микрофон по-прежнему отменно работает (тьфу, тьфу...) Пожалуйста, помогите разобраться!
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Выдается ошибка (камера не работает)

Сообщение AlexYeCu »

Сам с таким столкнулся. Уловил закономерность: сообщение выдаётся, когла камера сбрасывает разрешение и частоту кадров при плохом освещении. Т.е. если было настроено разрешение 320x240, камера его исправно выдавала. А потом стала выдавать 160x120 — и всё. Если выбрать меньшее разрешение, заработает, но это, конечно, не выход.
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Выдается ошибка (камера не работает)

Сообщение AlexYeCu »

А вот что ещё нашёл: у меня почему-то отказывается камера отдавать нормальную картинку в mjpg (хоть и умеет). Либо отдаёт, но linux выводит нечто зелёное вместо неё. С yuv нормально, но на yuv разрешения ниже и частота кадров…
В общем, если кто-то нам с вами подскажет, почему
mjpg(jpg) видятся в зелёном цвете, то вот оно решение…

UP: Ан нет, камера у меня все режимы в yuv только держит. Но после зависания и перезагрузки модуля uvcvideo, либо при подключении через usb-удлинитель, либо при втыкании в usb 1.1 (вместо usb 2.0) хаб это чудо китайской инженерной мысли начинает определяться неправильно: начинает утверждать, что в разрешении выше 320x240 оно таки держит mjpg. Сотв. софт под видом mjpeg получает yuv-поток и либо отказывается работать, показывая сообщение как в названии темы, либо показывает зелёный прямоугольник.
Отсюда вывод: внимательно подходить к вопросу подключения дешёвого китайского барахла к пк, без удлиннителей и только в 2.0 разъёмы.
Спасибо сказали:
Аватара пользователя
AlexYeCu
Сообщения: 1136
ОС: fedora

Re: Выдается ошибка (камера не работает)

Сообщение AlexYeCu »

Раз уж прописался в чужой теме…

Код: Выделить всё

luvcview -f yuv -d /dev/video0 -L
luvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video0
/dev/video0 does not support read i/o
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,

luvcview -f yuv -d /dev/video0 -Lluvcview version 0.2.1
Video driver: x11
A window manager is available
video /dev/video0
/dev/video0 does not support read i/o
{ pixelformat = 'MJPG', description = 'MJPEG' }
{ discrete: width = 640, height = 480 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 352, height = 288 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 176, height = 144 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/30, 1/20, 1/15, 1/10, 1/5,
{ pixelformat = 'YUYV', description = 'YUV 4:2:2 (YUYV)' }
{ discrete: width = 320, height = 240 }
        Time interval between frame: 1/5,
{ discrete: width = 160, height = 120 }
        Time interval between frame: 1/20, 1/15, 1/10, 1/5,

Обратите внимание на два вывода luvcview.
Первый вывод правильный. Такой вывод можно наблюдать после загрузки системы. Камера при этом послушно работает во всех разрешениях. Но иногда камера «отваливается» и устройство /dev/video0 пропадает. После перезагрузки uvcvideo (также пробовал перегружать videodev и v4l1_compat — никакого эффекта) камера определяется по выводу №2. Т.е. вместо yuv появляется mjpeg (который камера не поддерживает) на всех разрешениях, выше 320x240. В результате некоторый софт начинает работать в 320x240 (mplayer, lucview, ffmpeg, mencoder), некоторый только 160x120 (webcamstudio, skype), а некоторый вообще отказывается работать с камерой (ekiga). При это ekiga и lucview на высоких (у ekiga нет 160x120, так что она этот фокус показывает на всех) разрешениях показывают «зелёный прямоугольник». Ну и ругается софт вот как в названии топика. Потому как пытается yuv прочитать как mjpeg. И так до следующей перезагрузки.
Вопросы.
1. Кто виноват: камера или нечто в недрах линя?
2. Если в недрах линя, то как решить?

UP: способ вытащить-воткнуть хоть и действенный, но не очень удобный в силу того, что системник под столом, передние usb заняты, а удлинители камера не любит.
Спасибо сказали:
Ответить