V4L2

video for linux 2


v4L2是针对uvc免驱usb设备的编程框架 ,主要用于采集usb摄像头等




HIGHGUI ERROR: V4L2: Pixel format of incoming image is unsupported by OpenCV
Unable to stop the stream.: Bad file descriptor



遇到问题的解释链接:https://www.linuxquestions.org/questions/programming-9/opencv-pixel-format-of-incoming-image-is-unsupported-by-opencv-842801/

Make sure that you have video for linux control panel installed (v4l2ucp) and also ensure that you have the v4l2convert.so in /usr/lib/libv4l/ (it should all be part of the video for linux package I think?

root@localhost~# aptitude install v4l2ucp

then run v4l2ucp, go to preview->configure preview in the video for linux control panel (v4l2ucp) application it should have as the enviroment and application to launch for the view, eg. mplayer or whatever you set it to.

LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so as the environment variable
and tv:// as the argument

the key here is setting v4l2convert.so as a preloader to the viewer, which i think converts the device stream from the camera to a format suitable for v4l2 devices. If you do this before running your opencv application it should fix the problem.

just cd to the directory of your application and type

LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so ./youropencvapp

or you can add it as an environment variable in your launch configuration if you are working with an IDE such as eclipse

Hope this helps someone!

你可能感兴趣的:(Linux,Qt)