Wednesday, November 9, 2011

EasyCap DC60 and Ubuntu 11.10

I got an EasyCap DC60 from Amazon to see if it would work with my Ubuntu box to capture video. It looked promising at first... The output from dmesg looks like this:

[ 3391.497363] easycap::0adjust_standard: selected standard: PAL_BGHIN
[ 3391.808248] easycap::0adjust_format: sought:    640x480,UYVY(0x59565955),1=field,0x00=std mask
[ 3391.808256] easycap::0adjust_format: sought:    V4L2_FIELD_NONE
[ 3391.808264] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n
[ 3391.832121] easycap::0adjust_brightness: adjusting brightness to  0x7F
[ 3391.856121] easycap::0adjust_contrast: adjusting contrast to  0x3F
[ 3391.880121] easycap::0adjust_saturation: adjusting saturation to  0x2F
[ 3391.904122] easycap::0adjust_hue: adjusting hue to  0x00

and it shows up as a video device just fine:

$ ls -altr /dev/video0 
crw-rw----+ 1 root video 81, 0 2011-11-05 22:58 /dev/video0

But when actually using it, it shows an image at first, and then shows grey bars. Note that the above message shows PAL, but I've tried NTSC, and other encodings with the same result. I found a thread about this on SourceForge.net, but the SourceForge project appears to be empty now. Google Cache currently contains the thread. The interesting pieces of text are:


The vertical grey bars usually mean that the front-end video chip cannot lock onto the analogue input signal.  This can happen if, for example, the video signal is really NTSC while the mplayer command line specifies PAL.  But in these circumstances, I would not expect to see any video output at all (apart from the grey bars).  The puzzling thing is that you do get some valid video, which then disappears.

One possibility is that the SAA7113H chip is raising a hardware "lost signal" flag when in reality the signal remains entirely viable (some aspects of this chip are known to be flaky).  To investigate this, it would be useful if you could reinstall the driver after changing line 31 of the script ./install.sh to
BARS=0
and run ./test4PAL.sh again.  This is a straight go/no-go test:  either it solves the problem or it is doesn't.  We don't need a verbose kern.log this time, so you can set DEBUG=0 in the installation script.
Since the SourceForge project seems to have disappeared, I'm not sure where install.sh is, or how to find it. Maybe the whole thing's moved to kernel.org. I suppose I could start digging around in the kernel source and see if I can figure out what that does...

Update: OK, this was a lot easier than I thought:

  • Google for "easycap site:kernel.org"
  • Find the README.
  • Remove all users of easycap kernel mod (shut down apps/services)
  • sudo rmmod easycap
  • sudo modprobe easycap 'bars=0'
  • Restart and try again...
Update 2: The next thing you should probably do is:
  • sudo vi /etc/modprobe.d/easycap.conf
  • options easycap bars=0
  • :wq
  • sudo reboot

10 comments:

  1. Hi, thanks for the tips.
    You have a typo error in the last command:
    > sudo modprobe easycap 'bars=0'
    'd' instead 'b' in modprobe.
    --
    Ben

    ReplyDelete
  2. Hah found the missing piece of the puzzle - the driver does not automatically get set to composite so if you do the following on the command line it just works (11.10)

    first start your chosen program to view the stream then do

    v4l2-ctl -d /dev/video0 -i 1

    and voila! lovely picture - now for the sound!

    ReplyDelete
  3. Thanks jonty, I'll try that later today. Maybe that solves my other issue, which is that it seems that my Red and Blue are backwards (or maybe read and green?) It doesn't seem to matter what encoding I choose, the color is off.

    ReplyDelete
  4. I found I needed to use norm=NTSC_M_JP to get proper colour picture with my Easycap

    ReplyDelete
  5. Thanks, now my easycap works. I was about to toss it out.

    ReplyDelete
  6. You can describe in more detail how to fix this bug.

    ReplyDelete
  7. Thanks guys! This helped me get my easycap D60 working in Ubuntu 12.04. Doing Jared's suggestions, I am launching VLC with the following command.

    vlc v4l2:///dev/video0:width=720,height=480:norm=ntsc:standard=ntsc:pixelformat=2:aspect-ratio=4\:3:channel=1

    Thanks for taking time to document your fix!

    ReplyDelete
  8. I bought from Amazon as well, and it does not work.
    I have since found the following

    Chinese websites sell Easycap USB capture card clones with at least 4 different hardware solutions:
    Syntek STK1160 used in the “original” device, and works in Linux
    Empia EM2860 – Works in Linux
    Somagic SMI-2021CBE – Should work in Linux, but does not work with ARM Linux yet.
    Fushicai UTV007 – Does not work in Linux.

    Sadly my easycap was the UTV007.

    ReplyDelete
  9. I tried using this code but it just does webcam. i want to watch tv via my tv/dvd player. i have it all setup but that code only plays webcam, is there a way to change it?

    ReplyDelete