Stk1160 based USB 2.0 video and audio capture devices
This article covers all the tunerless USB 2.0 video and audio capture devices which are based on the STK1160 chip. This device is convenient for capturing from cameras, VHS-tapes, receivers ... and even for small surveillance installation (4 inputs model).
Many but not all of these devices are branded as Easycap. Althought this device is sold with different names and labels, in many forums and blogs this device is called "EasyCAP DC60".
Overview/Features
- USB ID 05e1:0408
- USB 2.0 interface (USB 1.1 will not work, it's too slow).
- Inputs: (Model 001) CVBS, S-VIDEO, AUDIO(L), AUDIO(R)
- Inputs: (Model 002) 4 yellow input cables (CVBS) labelled 1, 2, 3, 4 and one white unlabelled audio cable
- Audioquality: Model 001 has AC'97 audio (48000 Hz samplerate), model 002 (and some models 001 where the AC'97 chip is missing) has mono microphone audio (8000 Hz samplerate).
Components Used
- Syntek STK1160 (USB video bridge)
- Silan SC8113 (Philips SAA7113 compatible video decoder)
- AC'97 audio processor (from different manufacturers. In models where this chip is missing audio capturing is done by the STK1160 chips built-in ADC for mono microphone audio recording.)
Other Images
Identification
The following lsusb output is from the STK1160 based model 001 with builtin AC'97 audio processor:
# lsusb -v Bus 001 Device 002: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x05e1 Syntek Semiconductor Co., Ltd idProduct 0x0408 STK1160 Video Capture Device bcdDevice 0.05 iManufacturer 1 iProduct 2 iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 251 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0000 1x 0 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0000 1x 0 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 1 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0300 1x 768 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 2 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x03fc 1x 1020 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 3 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0400 1x 1024 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 4 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x0c00 2x 1024 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 5 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0002 1x 2 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 1 Transfer Type Isochronous Synch Type None Usage Type Data wMaxPacketSize 0x1400 3x 1024 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 0 bInterfaceClass 1 Audio bInterfaceSubClass 1 Control Device bInterfaceProtocol 0 iInterface 11 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 1 (HEADER) bcdADC 1.00 wTotalLength 38 bInCollection 1 baInterfaceNr( 0) 2 AudioControl Interface Descriptor: bLength 12 bDescriptorType 36 bDescriptorSubtype 2 (INPUT_TERMINAL) bTerminalID 1 wTerminalType 0x0602 Digital Audio Interface bAssocTerminal 0 bNrChannels 2 wChannelConfig 0x0003 Left Front (L) Right Front (R) iChannelNames 0 iTerminal 0 AudioControl Interface Descriptor: bLength 9 bDescriptorType 36 bDescriptorSubtype 3 (OUTPUT_TERMINAL) bTerminalID 2 wTerminalType 0x0101 USB Streaming bAssocTerminal 0 bSourceID 3 iTerminal 0 AudioControl Interface Descriptor: bLength 8 bDescriptorType 36 bDescriptorSubtype 6 (FEATURE_UNIT) bUnitID 3 bSourceID 1 bControlSize 1 bmaControls( 0) 0x01 Mute Control iFeature 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 11 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0000 1x 0 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 1 bNumEndpoints 1 bInterfaceClass 1 Audio bInterfaceSubClass 2 Streaming bInterfaceProtocol 0 iInterface 11 AudioStreaming Interface Descriptor: bLength 7 bDescriptorType 36 bDescriptorSubtype 1 (AS_GENERAL) bTerminalLink 2 bDelay 1 frames wFormatTag 1 PCM AudioStreaming Interface Descriptor: bLength 11 bDescriptorType 36 bDescriptorSubtype 2 (FORMAT_TYPE) bFormatType 1 (FORMAT_TYPE_I) bNrChannels 2 bSubframeSize 2 bBitResolution 16 bSamFreqType 1 Discrete tSamFreq[ 0] 48000 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 5 Transfer Type Isochronous Synch Type Asynchronous Usage Type Data wMaxPacketSize 0x0100 1x 256 bytes bInterval 4 AudioControl Endpoint Descriptor: bLength 7 bDescriptorType 37 bDescriptorSubtype 1 (EP_GENERAL) bmAttributes 0x00 bLockDelayUnits 0 Undefined wLockDelay 0 Undefined
Making it Work
STK1160 based devices ar supported under Linux since kernel 2.6.38
Firmware
For this device no firmware is needed.
Drivers
eaysycap driver
The easycap driver is part of the current kernel (since 2.6.38) and supports all the features of the STK1160 based devices but has some limitations (framedropping, stability, sound issues).
stk1160 driver
The stk1160 driver is the successor of the easycap driver. It supports video capturing and audio capturing via ALSA. This driver doesn't suffer from the limitations of the easycap driver but is still under development. It is intended that the stk1160 module will replace the easycap module in one of the next kernel releases.
stk1160 sourcecode-zipball for kernel 3.2
Additional installation instructions
Sample Kernel Output
# dmesg when the easycap driver is loaded [ 250.728092] usb 1-2: new high speed USB device number 4 using ehci_hcd [ 254.681355] easycap::0adjust_standard: selected standard: PAL_BGHIN [ 254.992254] easycap::0adjust_format: sought: 640x480,UYVY(0x59565955),1=field,0x00=std mask [ 254.992263] easycap::0adjust_format: sought: V4L2_FIELD_NONE [ 254.992273] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n [ 255.016137] easycap::0adjust_brightness: adjusting brightness to 0x7F [ 255.040149] easycap::0adjust_contrast: adjusting contrast to 0x3F [ 255.064162] easycap::0adjust_saturation: adjusting saturation to 0x2F [ 255.088173] easycap::0adjust_hue: adjusting hue to 0x00 [ 255.089557] easycap::0easycap_usb_probe: registered with videodev: 0=minor [ 255.089565] easycap::0easycap_usb_probe: ends successfully for interface 0 [ 255.089713] easycap::0easycap_usb_probe: ends successfully for interface 1 [ 255.090017] easycap::0easycap_usb_probe: audio hardware is AC'97 [ 255.090485] easycap::0easycap_alsa_probe: registered EasyALSA0 [ 255.090492] easycap::0easycap_usb_probe: ends successfully for interface 2 [ 255.091910] easycap:: easycap_open: ==========OPEN========= [ 255.161078] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id [ 255.181331] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id [ 255.263624] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id [ 255.345927] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id [ 255.432975] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id [ 255.525395] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id [ 255.631195] snd_pcm_update_hw_ptr0: 24 callbacks suppressed [ 256.341308] easycap::0adjust_standard: selected standard: PAL_BGHIN [ 256.652338] easycap::0adjust_format: sought: 640x480,UYVY(0x59565955),1=field,0x00=std mask [ 256.652346] easycap::0adjust_format: sought: V4L2_FIELD_NONE [ 256.652355] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n [ 256.676218] easycap::0adjust_brightness: adjusting brightness to 0x7F [ 256.700233] easycap::0adjust_contrast: adjusting contrast to 0x3F [ 256.724242] easycap::0adjust_saturation: adjusting saturation to 0x2F [ 256.748129] easycap::0adjust_hue: adjusting hue to 0x00
# dmesg when the stk1160 driver is loaded [16873.944081] usb 1-2: new high-speed USB device number 2 using ehci_hcd [16874.892446] Linux video capture interface: v2.00 [16875.012940] usb 1-2: New device Syntek Semiconductor USB 2.0 Video Capture Controller @ 480 Mbps (05e1:0408, interface 0, class 0) [16875.012949] usb 1-2: video interface 0 found [16875.836259] saa7115 14-0025: saa7113 found (1f7113d0e100000) @ 0x4a (stk1160) [16877.372155] stk1160: driver ver 0.9.3 successfully loaded [16877.469999] stk1160: registers to NTSC like standard [16877.792436] stk1160 1-2:1.0: V4L2 device registered as video0 [16877.793733] usbcore: registered new interface driver snd-usb-audio [16877.795409] usbcore: registered new interface driver stk1160
Remote Control Support
This device doesn't support a remote control
External Links
Provide a link to the vendor's product page here along with any other external link to information that is generally helpful in relation to the device. For example:
Finally, the very last thing is to add a category. (Remove the nowiki tags). For example
[[Category:DVB-T PCI Devices]]
How to identify your device
When lsusb reports the following output you have an STK1160 based video capture card:
Bus 001 Device 002: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device
Hardware
On the board of this USB 2.0 video capture device there is on the front side a green LED, the STK1160 USB Bridge and a SAA7113 compatible video processing chip (silan sc8113) and on the back side a AC97 audio chip (this chip is missing on the 8000 Hz audio models of this device).
Drivers
eaysycap driver
The easycap driver is part of the current kernel (since 2.6.38) and supports all the features of the STK1160 based devices but has some limitations (framedropping, stability, sound issues).
stk1160 driver
The stk1160 driver is the successor of the easycap driver. It supports video capturing and audio capturing via ALSA. This driver doesn't suffer from the limitations of the easycap driver but is still under development. It is intended that the stk1160 module will replace the easycap module in one of the next kernel releases.
stk1160 sourcecode-zipball for kernel 3.2
Additional installation instructions
Models
These known STK1160 based models of the video capture device are supported by the above mentioned drivers. All models do have the same USB device ID: 05e1:0408.
- Model 001 with input cables labelled CVBS, S-VIDEO, AUDIO(L), AUDIO(R) and 48000 Hz audio (AC'97 audio)
- Model 002 with 4 yellow input cables (CVBS) labelled 1, 2, 3, 4 and one white unlabelled audio cable and 8000 Hz audio (microphone audio)
- Model 001m with input cables labelled CVBS, S-VIDEO, AUDIO(L), AUDIO(R) and 8000 Hz audio (microphone audio)
(Obviously this device has the board of Model 002 but the cables of Model 001)
Identify the audiotype of your device
The following shell command reports the audiorate (sampling frequency) of your STK1160 based device: (48000 = Model 001; 8000 = Model 001m or Model 002).
lsusb -v -d 05e1:0408 | grep tSamFreq | sed -e "s,^.* ,,"
If you encounter audio problems while capturing you need to specify the correct audiorate of your model in the capturing program.
Video inputs (channels)
From the two or four video cables on the device only one (!) can be used at the same time. If you want to switch through the different inputs of your card you need to start the capturing program again with the next input number.
Usage
The STK1160 device needs a USB 2.0 capable USB port. USB 1.1 will not work (it's too slow).
The driver for the STK1160 device creates a /dev/videoN node and an ALSA soundcard, The different video-inputs of the device can be accessed by their inputnumber (starting at 0).
In the viewing/ capturing program (e.g. mplayer) you must specify
- the videodevicenode of the STK1160 card (/dev/videoN),
- the input number of the cable where the source is plugged in,
- the TV norm of the videosource and (e.g. PAL, NTSC)
- the ALSA sounddevice if you want to capture audio (get a list with this command: cat /proc/asound/cards).
Example for mplayer
Assumed that your STK1160 device is the second videodevice (the first is your webcam) and the second soundcard on your system, and that on the first CVBS input a PAL camera is plugged in and sound also comes from the STK1160 device, the mplayer command for viewing would look like this:
mplayer tv:// -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video1:input=0:\ alsa:adevice=hw.1:forceaudio:immediatemode=0 -ao sdl
More programs
These programs are known to be useful for analogue audio- and videocapturing with STK1160 based (and similar) devices.
- qv4l2 - useful for testing
- mplayer and mencoder
- mtvcgui - Python GUI for mplayer and mencoder
- VLC
- TVtime
- avconv (libav; formerly ffmpeg)
- Zoneminder - Linux surveillance suite
- Any other program which is capable of analogue video- and audiocapturing will probably work with STK1160 devices.
Short linux driver history
In early 2010 Mike Thomas started developing a driver for the stk1160 based video capture device which is sold as EasyCAP DC60. Since the driver (version 0.9) has been added to the staging directory of the Linux kernel in November 2011 Mike Thomas stopped his development and support for the easycapdriver.
Some people added changes in order to clean up the sourcecode. These changes didn't hardly affect the limitations (framedropping, stability) of the driver.
At the middle of 2012 Ezequiel Garcia decided to rework the easycapdriver. He changed the drivers name to "stk1160".
In one of the next kernel releases (3.6/7) the stk1160 driver will come into mainlaine and replace the old easycapdriver.