ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

uvc_camera: pixel format unavailable with USBTV007 EasyCAP

asked 2014-10-03 04:47:32 -0500

Veerachart gravatar image

Hi guys,

I'm using a USBTV007 EasyCap (ID 1b71:3002 by lsusb) to capture wireless video. The system can already see it in /dev/ as video0 and I can use VLC media player to display the video on the screen and even record the video to a file. However, when I tried using uvc_camera to access the camera, this appeared:

pixfmt 0 = 'YUYV' desc = '16 bpp YUY2, 4:2:2, packed'
terminate called after throwing an instance of 'std::runtime_error'
what():  pixel format unavailable

It cannot start, and I cannot get the video to ROS.

I also tried with uvc_cam and usb_cam, and they don't work too.

I'm running Ubuntu 12.04 with Groovy. Also the kernel is updated to 3.11 (I found here that from 3.11, this model is supported; before the update the device was not seen as a video device.)

Any solutions or suggestions are appreciated.

Thank you, Veerachart

edit retag flag offensive close merge delete


Eric Perko gravatar image Eric Perko  ( 2014-10-12 22:17:34 -0500 )edit

Thanks for the suggestion. I'll try this as soon as I have the chance and update the result.

Veerachart gravatar image Veerachart  ( 2014-10-13 02:30:25 -0500 )edit

That does not work, with the same error of pixel format unavailable.

v4l2-ctl --list-formats-ext


Index       : 0
Type        : Video Capture
Pixel Format: 'YUYV'
Name        : 16 bpp YUY2, 4:2:2, packed not supported?

Veerachart gravatar image Veerachart  ( 2014-10-15 03:07:11 -0500 )edit

You can try to use something like guvcview to test UVC-compatibility. If it doesn't work there, it's not going to work with the UVC driver.

Eric Perko gravatar image Eric Perko  ( 2014-10-17 22:26:01 -0500 )edit

If it's not compatible to UVC, is there any other driver that I can try?

Veerachart gravatar image Veerachart  ( 2014-10-18 08:50:20 -0500 )edit

@Eric Perko I tried and guvcview cannot start with the capture device attached, so it is not compatible with UVC.

Veerachart gravatar image Veerachart  ( 2014-10-20 00:30:14 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2014-10-21 04:52:38 -0500

Veerachart gravatar image

Now I already got it working by using gscam package, with this launch file from the v4l example in the package, removing the framerate option:

    <!-- This launchfile should bring up a node that broadcasts a ros image
    transport on /webcam/image_raw -->
    <arg name="DEVICE" default="/dev/video0"/>
    <!-- The GStreamer framerate needs to be an integral fraction -->
    <arg name="FPS" default="30/1"/>
    <arg name="PUBLISH_FRAME" default="false"/>
    <node ns="v4l" name="gscam_driver_v4l" pkg="gscam" type="gscam" output="screen">
        <param name="camera_name" value="default"/>
        <param name="camera_info_url" value="package://gscam/examples/uncalibrated_parameters.ini"/>
        <param name="gscam_config" value="v4l2src device=$(arg DEVICE) ! video/x-raw-rgb! ffmpegcolorspace"/>
        <param name="frame_id" value="/v4l_frame"/>
        <param name="sync_sink" value="true"/>
    <node if="$(arg PUBLISH_FRAME)" name="v4l_transform" pkg="tf" type="static_transform_publisher" args="1 2 3 0 -3.141 0 /world /v4l_frame 10"/>

With this, topic /v4l/camera/image_raw is available for further use.

Thanks for suggestions @Eric Perko.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2014-10-03 04:47:32 -0500

Seen: 2,917 times

Last updated: Oct 21 '14