Fwd: Re: vlc, webcam streaming

Jimmie James jimmiejaz at gmail.com
Tue Mar 22 23:03:50 UTC 2011


(sorry, dropped the list off this)


On 03/22/11 10:55, Hans Petter Selasky wrote:
> On Tuesday 22 March 2011 15:16:56 Jimmie James wrote:
>> Camera works fine with skype, emesene work wonderfully, mplayer gives me
>> an image, but it flashes between green screen and the actual images.
>>
>> Full vlc -vv output is here,  http://pastebin.com/MaEP6f6R (highlights
>> below) Anyone have a suggestion/hint/tip?
>>
>> VLC is unable to open the MRL 'v4l://'. Check the log for details.
>
> Hi,
>
> I think VLC removed support for Webcams. Only video streaming devices and DVB-
> X devices are supported.
>
> Flickering pictures might be due to lack of buffering in webcamd.
>
> Could you dump the config descriptor with usbconfig for your device?
>
> Which version of webcamd are you using?
>
> --HPS
>


That's interesting with VLC, googling around seems to suggest it works
with V4L2

usbconfig -u 2 -a 2 dump_curr_config_desc is at the end of this message.

webcamd-0.1.20_1
gstreamer-plugins-v4l2-0.10.27,3 Gstreamer Video 4 Linux 2 source plugin
libv4l-0.8.1        Video4Linux library
v4l_compat-1.0.20101027_1 Video4Linux IOCTL header files


As for mplayer, I'm going to "assuME" it's more user error/command line
options after playing a bit more with it.

Mplayer called like mplayer tv:// -tv driver=v4l:device=/dev/video0 is
clear.
Playing tv://.
TV file format detected.
Selected driver: v4l
  name: Video 4 Linux input
  author: Alex Beregszaszi
  comment: under development
=================================================================
  WARNING: YOU ARE USING V4L DEMUXER WITH V4L2 DRIVERS!!!
  As the V4L1 compatibility layer is broken, this may not work.
  If you encounter any problems, use driver=v4l2 instead.
  Bugreports on driver=v4l with v4l2 drivers will be ignored.
=================================================================
Selected device: Logitech QuickCam Pro 4000
  Capabilities: capture teletext overlay clipping frameram mjpeg-encoder
  Device type: 1917853805
  Supported sizes: 160x120 => 640x480
  Inputs: 1
   0: usb:  (tuner:0, norm:pal)

Called like tv:// -tv driver=v4l2:device=/dev/video0 is all flickery.
MPlayer SVN-r32577-snapshot-4.2.1 (C) 2000-2010 MPlayer Team

Playing tv://.
TV file format detected.
Selected driver: v4l2
  name: Video 4 Linux 2 input
  author: Martin Olschewski <olschewski at zpr.uni-koeln.de>
  comment: first try, more to come ;-)
Selected device: Logitech QuickCam Pro 4000
  Capabilities:  video capture  read/write  streaming
  supported norms: 0 = webcam;
  inputs: 0 = usb;
  Current input: 0
  Current format: YUV420
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
Selected input hasn't got a tuner!
v4l2: Cannot get fps
v4l2: ioctl set mute failed: Invalid argument
v4l2: ioctl query control failed: Invalid argument
==========================================================================
Opening video decoder: [raw] RAW Uncompressed Video
Movie-Aspect is undefined - no prescaling applied.
VO: [x11] 640x480 => 640x480 Planar YV12
[swscaler @ 0x2aa3f010] using unscaled yuv420p -> bgra special converter
Selected video codec: [rawyv12] vfm: raw (RAW YV12)




ugen2.2: <product 0x08b2 vendor 0x046d> at usbus2, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON


  Configuration index 0

     bLength = 0x0009
     bDescriptorType = 0x0002
     wTotalLength = 0x01fd
     bNumInterfaces = 0x0003
     bConfigurationValue = 0x0001
     iConfiguration = 0x0000  <no string>
     bmAttributes = 0x00a0
     bMaxPower = 0x00fa

     Interface 0
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0000
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0001
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x00c4
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 2
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0002
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0124
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 3
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0003
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x01c0
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 4
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0004
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0250
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 5
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0005
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x02c0
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 6
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0006
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0308
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 7
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0007
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0348
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 8
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0008
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0380
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 9
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x0009
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x03c0
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 0 Alt 10
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0000
       bAlternateSetting = 0x000a
       bNumEndpoints = 0x0002
       bInterfaceClass = 0x000a
       bInterfaceSubClass = 0x00ff
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0082  <IN>
         bmAttributes = 0x0003  <INTERRUPT>
         wMaxPacketSize = 0x0001
         bInterval = 0x0064
         bRefresh = 0x0000
         bSynchAddress = 0x0000

      Endpoint 1
         bLength = 0x0007
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0085  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x03c0
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 1
       bLength = 0x0009
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0001
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0000
       bInterfaceClass = 0x0001
       bInterfaceSubClass = 0x0001
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

       Additional Descriptor

       bLength = 0x09
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x09, 0x24, 0x01, 0x00, 0x01, 0x26, 0x00, 0x01,
        0x08 | 0x02

       Additional Descriptor

       bLength = 0x0c
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x0c, 0x24, 0x02, 0x01, 0x01, 0x02, 0x00, 0x01,
        0x08 | 0x00, 0x00, 0x00, 0x00


       Additional Descriptor

       bLength = 0x08
       bDescriptorType = 0x24
       bDescriptorSubType = 0x06
        RAW dump:
        0x00 | 0x08, 0x24, 0x06, 0x02, 0x01, 0x01, 0x03, 0x00


       Additional Descriptor

       bLength = 0x09
       bDescriptorType = 0x24
       bDescriptorSubType = 0x03
        RAW dump:
        0x00 | 0x09, 0x24, 0x03, 0x03, 0x01, 0x01, 0x00, 0x02,
        0x08 | 0x00


     Interface 2
       bLength = 0x000b
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0000
       bNumEndpoints = 0x0001
       bInterfaceClass = 0x0001
       bInterfaceSubClass = 0x0002
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

      Endpoint 0
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0084  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0000
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000


     Interface 2 Alt 1
       bLength = 0x000b
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0001
       bNumEndpoints = 0x0001
       bInterfaceClass = 0x0001
       bInterfaceSubClass = 0x0002
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


       Additional Descriptor

       bLength = 0x0b
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01,
        0x08 | 0x44, 0xac, 0x00


      Endpoint 0
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0084  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x005a
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x25
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00



     Interface 2 Alt 2
       bLength = 0x000b
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0002
       bNumEndpoints = 0x0001
       bInterfaceClass = 0x0001
       bInterfaceSubClass = 0x0002
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


       Additional Descriptor

       bLength = 0x0b
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01,
        0x08 | 0x22, 0x56, 0x00


      Endpoint 0
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0084  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x002e
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x25
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00



     Interface 2 Alt 3
       bLength = 0x000b
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0003
       bNumEndpoints = 0x0001
       bInterfaceClass = 0x0001
       bInterfaceSubClass = 0x0002
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


       Additional Descriptor

       bLength = 0x0b
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01,
        0x08 | 0x11, 0x2b, 0x00


      Endpoint 0
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0084  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0019
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x25
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00



     Interface 2 Alt 4
       bLength = 0x000b
       bDescriptorType = 0x0004
       bInterfaceNumber = 0x0002
       bAlternateSetting = 0x0004
       bNumEndpoints = 0x0001
       bInterfaceClass = 0x0001
       bInterfaceSubClass = 0x0002
       bInterfaceProtocol = 0x0000
       iInterface = 0x0000  <no string>

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x24
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x24, 0x01, 0x03, 0x01, 0x01, 0x00


       Additional Descriptor

       bLength = 0x0b
       bDescriptorType = 0x24
       bDescriptorSubType = 0x02
        RAW dump:
        0x00 | 0x0b, 0x24, 0x02, 0x01, 0x01, 0x02, 0x10, 0x01,
        0x08 | 0x40, 0x1f, 0x00


      Endpoint 0
         bLength = 0x0009
         bDescriptorType = 0x0005
         bEndpointAddress = 0x0084  <IN>
         bmAttributes = 0x0001  <ISOCHRONOUS>
         wMaxPacketSize = 0x0010
         bInterval = 0x0001
         bRefresh = 0x0000
         bSynchAddress = 0x0000

       Additional Descriptor

       bLength = 0x07
       bDescriptorType = 0x25
       bDescriptorSubType = 0x01
        RAW dump:
        0x00 | 0x07, 0x25, 0x01, 0x00, 0x00, 0x00, 0x00







-- 
I am currently away on leave, traveling through time and will be
returning last week.
Life is tough, but it's tougher when you're stupid.


More information about the freebsd-questions mailing list