Skip to topic | Skip to bottom
Home
Main
Main.HardwareInfoKodakV1253r1.15 - 09 Feb 2008 - 22:16 - PeterKnaggstopic end

Start of topic | Skip to actions

Kodak V1253 and Ubuntu Linux

This is just a quick explanation of the Kodak V1253 camera, from the point of view of interoperability with Linux.

A full review written by OSNews contributor (and former editor) Eugenia Loli-Queru can be found here.

I'll just mention some of the quirks when using this camera with Linux.

This camera comes with an empty SD card slot. It also has 32MB of internal (builtin) flash memory. The internal memory doesn't appear to Linux as a USB device, so I initially thought that this camera might not be a good choice for Linux users seeking to avoid using the camera with an additional SD memory card. Without using an SD card, I thought that the internal memory would only be accessible using the "EasyShare" drivers for the Microsoft operating system (these are apparently only supported in Microsoft Windows XP or later, but I didn't try them, for obvious reasons). But it turns out that using gphoto2 and gtkam on Ubuntu Gutsy Gibbon, the camera's memory is accessible over USB (see below).

Getting Started

Charging the battery (a KLIC-7004 3.7V Li-Ion 1000mAh battery, about one and a half inches square and a quarter of an inch thick) is the first puzzle.

The camera comes with

  • a fairly unusual USB connector cable
  • a little "dock" gizmo connector block
  • a power adapter with a USB socket on one end and a 110V AC connector on the other end.

All of the above items must be used together, simply to charge the camera battery.

While the battery is charging in this way, the unit can't be used as a camera. The little blue "heart" light on the leftmost button on top of the camera will flash while the camera is charging. When charging is completed, the lights on all three of the leftmost buttons on top of the camera will be lit.

The camera also has an ordinary 5V power connector, but no power adapter is shipped for this. It's supposed to be used with a Kodak item number 1543669 power adapter. It's not clear from Kodak's description whether the unit can be used as a camera when this adapter is connected, although from the description here it seems that the adapter can be used "for extended work in a studio, or while viewing images while connected to your TV or VCR."

Units such as Kodak item number 1550755 available to recharge the battery outside of the camera, but none is shipped with the camera.

According to the manual, the battery life is around 220 pictures per charge (CPIA testing method).

Getting the captures out over USB using gphoto2 and gtkam

Initially, I didn't know about gphoto2 and gtkam for Linux.

In Ubuntu Gutsy Gibbon 7.10, gtkam is able to see the camera, save photos from it and upload photos to it.

It took a little trial and error to find the proper sequence to get the camera's USB interface to show up in Linux.

After plugging in the USB connector, I pressed the "ON/OFF" button on the top of the camera (pressing any of the four leftmost buttons on the top of the camera appears to have the same effect). After that, the screen comes "on" (i.e. the backlight comes on) but doesn't display anything.

After the above sequence, the camera shows up in the lsusb output and the dmesg output looks like this:

[84101.432818] usb 5-6: new high speed USB device using ehci_hcd and address 7
[84101.565396] usb 5-6: configuration #1 chosen from 1 choice

The lsusb output contains the following additional line, indicating that the camera's USB interface is detected:

Bus 005 Device 007: ID 040a:05b6 Kodak Co. 

In gtkam, clicking on the menu item Camera and selecting the Add Camera menu item, I selected Kodak V705 (you can select any of the cameras that use a USB interface rather than a Serial interface, e.g. the first in the list is AEG Snap 300), click on Detect and click OK. After clicking OK, gtkam detected the camera as a USB PTP Class Camera.

Downloading and uploading photos works OK. Downloading videos works OK (and quite fast too, full USB 2.0 speed).

Uploading videos seems to be a little hit-and-miss at the moment. Sometimes it works, but sometimes the transfer appears to go through but hits an error "PTP I/O error" right at the end. After such an error, nothing works, even downloading photos which downloaded successfully before also fails with the same "PTP I/O error". To recover, I have to go through the USB disconnect/reconnect sequence (see below). So I haven't had complete success with videos yet, and would recommend using the SD card approach (see the next section) as it seems to be very reliable.

To disconnect the camera from the USB, pressing the ON/OFF button on the top of the camera does the trick.

If you disconnect the USB cable before pressing the ON/OFF button, the camera powers on and opens up the lens, which is usually not what you want to happen.

The USB disconnection should look something like this in the dmesg output (and of course lsusb should no longer list the camera).

[84863.752847] usb 5-6: USB disconnect, address 7

After pressing the ON/OFF button on the top of the camera, the little blue "heart" button will usually begin to flash (after a short time). This means that the camera is disconnected. You can then press the SCN button to connect it again. This is all without unplugging or plugging in the USB connector (just leave it attached and plugged in).

Sometimes, gtkam gets stuck starting up, so I found that removing the $HOME/.gphoto/settings file, unplugging the camera, plugging it back in and re-doing the camera detection steps helped get it going again.

Getting the captures out using an SD card

To get the photos (and videos) out of the camera, I used an additional SD card (not included).

The camera has one SD card slot (which is SDHC compatible).

I tried the camera with a SanDisk 4GB (SDSDRH-4096-AC11) card (this SD card comes with a USB card reader, making it very convenient for use on older Linux machines). Using a USB 2.0 interface is preferable if you're using the camera to capture video: the transfer rate with USB 2.0 is around ten megabytes per second. Using USB 2.0, it still takes around three full minutes to transfer the largest video files that the camera can record from the SD card to the computer. Using USB 1.0, it takes about half an hour for the largest files.

The camera accepts SDHC cards up to 8 GB, although the packaging and manuals make no mention of this. Update: I tried it with an 8GB Patriot Memory card PSF8GSDHC6, and it works fine.

The camera's menus have a feature to allow the images (and small videos) to be copied from the internal flash to the SD card. When the SD card is installed, if you choose "auto" it becomes the default location for all captures.

Photo Capture (JPG)

The camera captures still images in a variety of aspect ratios. The camera uses JPEG/EXIF v 2.21. This table lists them in order of decreasing size. The lens unit has "Schneider - KREUZNACH" and "VARIOGON 37-111mm (Equiv.) AF 3X Opt." written on it. The aperture can vary from f/3.4 to f/5.3. The shutter speed can vary from 8s to 1/2000s. It uses TTL autofocus, there's no manual focus control.

Megapixels Aspect Ratio Dimensions
12 4:3 4000 x 3000
10.7 3:2 4000 x 2664
9 16:9 4000 x 2256
6 4:3 2832 x 2128
3.1 4:3 2048 x 1536
2.2 3:2 1800 x 1200
2.1 16:9 1920 x 1080
1.2 4:3 1280 x 960

It has a clear bright 3.1" LCD screen with a 16:9 aspect ratio, but no viewfinder.

It can capture 9 megapixel images in the 16:9 aspect ratio, and up to 12 megapixel images in the 4:3 aspect ratio, perhaps useful if you're planning on printing the pictures. Most computer monitors and HDTVs nowadays are only be able to display around 2 megapixels (1920 x 1080). The still images the Kodak V1253 captures look comparable to a 4 megapixel camera (not noticeably clearer, despite the much higher "12 megapixel" number).

It has a convenient sensor (which can be switched off for either video or photos or for both) to detect when you have rotated the camera vertically.

Video Capture - MPEG-4 Part 2 at 1280x720 (720p)

The Kodak V1253 can capture video. The codecs is uses are:

  • video: MPEG-4 Part 2 (ffodivx).
  • audio: uLaw, 16kHz, 2-channel.

A raw sample direct from the camera can be found here. It can capture in these resolutions:

Resolution Name Bitrate
1280 x 720 1280 x 720 (HD720p) HQ 13mbps
1280 x 720 1280 x 720 (HD720p) 10mbps
640 x 480 640 x 480 (VGA) HQ todo
640 x 480 640 x 480 (VGA) todo
320 x 240 320 x 240 (QVGA) todo

The camera has two microphones, so it's able to record in stereo mode. Audio quality is fine.

When recording video, a bright green LED light shines out from the front of the camera. Perhaps this is needed by the autofocus? Remember that it will show up in the recording, if you're taking video of reflective surfaces.

The video files will be cut off at around 1.894 GB (max file size seems to be around 2033760614 bytes) perhaps as a way to ensure compatibility with the FAT16 filesystem (FAT16 has a 2GB filesize limitation). The card is formatted as FAT32 (vfat) by the camera, and filesize is limited to 4GB minus 2 bytes in FAT32. A video file of size 1.894 GB can comtain about 16 minutes of 720p HQ video, or as much as 19 minutes worth if there's not much changing in the scene.

The codec Kodak used is ffodivx, not the more efficient H.264 (AVC).

Video Playback

The ffodivx ".mov" video files play back at 1280x720 resolution using vlc, totem, xine or mplayer.

Ubuntu Gutsy Gibbon 7.10, the default video player (totem) does a very good job (both audio and video work fine by default).

The audio runs too fast and breaks up in xine, on both the 3.4GHz P4 box and the iMac. Not sure why, yet.

Playback with mplayer and the -vo xv flag tends to jam up after playing back for a little while. When playing back using mplayer with the -vo x11 , the video doesn't jam, but of course the video can't go full-screen when using the -vo x11 flag. An alternative, if you have OpenGL support on your graphics card, is to use the -vo gl2 flag, which works quite smoothly. The audio is OK in mplayer.

You can try video playback on your system using this sample video from the review article.

To get the video playback to look as smooth as real 720p from ATSC sources, you have to hold the camera very steady. If you are doing any "panning", you have to do it quite slowly, to avoid slight jagged jitters during playback.

  mplayer  -framedrop -monitoraspect 16:9 -cache 8192 -ao alsa  v1253.MOV

The output from mplayer in Ubuntu Gutsy Gibbon 7.10 looks like this:

MPlayer 2:1.0~rc1-0ubuntu13.1 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 3.40GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing 100_0120.mov.
Cache fill:  0.00% (0 bytes)   
Quicktime/MOV file format detected.
VIDEO:  [mp4v]  1280x720  24bpp  30.006 fps    0.0 kbps ( 0.0 kbyte/s)
xscreensaver_disable: Could not find XScreenSaver window.
GNOME screensaver disabled
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
==========================================================================
Forced audio codec: mad
Opening audio decoder: [alaw] aLaw/uLaw audio decoder
AUDIO: 16000 Hz, 2 ch, s16le, 256.0 kbit/50.00% (ratio: 32000->64000)
Selected audio codec: [ulaw] afm: alaw (uLaw)
==========================================================================
AO: [alsa] 16000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 1280 x 720 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 1280x720 => 1280x720 Planar YV12 
A:  25.8 V:  25.8 A-V:  0.000 ct:  0.000 776/776 33%  0%  0.1% 5 0 49% 

Using the nVidia 5200 graphics card, you can playback using mplayer's OpenGL support with a command line as follows:

mplayer -vo gl2 -framedrop -monitoraspect 16:9 -cache 8192 -ao alsa  v1253.MOV

This gives much smoother playback, with no jams.

MPlayer 2:1.0~rc1-0ubuntu13.1 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Pentium(R) 4 CPU 3.40GHz (Family: 15, Model: 3, Stepping: 4)
CPUflags:  MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled with runtime CPU detection.
Can't open joystick device /dev/input/js0: No such file or directory
Can't init input joystick
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing 100_0120.mov.
Cache fill:  0.00% (0 bytes)   
Quicktime/MOV file format detected.
VIDEO:  [mp4v]  1280x720  24bpp  30.006 fps    0.0 kbps ( 0.0 kbyte/s)
xscreensaver_disable: Could not find XScreenSaver window.
GNOME screensaver disabled
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffodivx] vfm: ffmpeg (FFmpeg MPEG-4)
==========================================================================
==========================================================================
Forced audio codec: mad
Opening audio decoder: [alaw] aLaw/uLaw audio decoder
AUDIO: 16000 Hz, 2 ch, s16le, 256.0 kbit/50.00% (ratio: 32000->64000)
Selected audio codec: [ulaw] afm: alaw (uLaw)
==========================================================================
AO: [alsa] 16000Hz 2ch s16le (2 bytes per sample)
Starting playback...
VDec: vo config request - 1280 x 720 (preferred colorspace: Planar YV12)
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
SwScaler: using unscaled yuv420p -> bgr24 special converter
VO: [gl2] 1280x720 => 1280x720 BGR 24-bit 
[gl2] You have OpenGL >= 1.2 capable drivers, GOOD (16bpp and BGR is ok!)
[gl2] antialiasing off
[gl2] bilinear linear
gnome_screensaver_control()53 ct:  0.125  81/ 81 41% 57%  0.5% 54 0 49% 
Exiting... (Quit)

Using the provided RCA cable, you can playback (at NTSC resolution) to a TV or VCR.

To playback 720p from the camera directly to a 720p HDTV, a separate "dock" would be needed. But of course, you don't need a HDTV if you already have a computer running Linux, and the playback of 720p in Linux is quite smooth (not as smooth as playing back 720p ATSC captures using XVmc, but close).

Converting to MPEG2 using mencoder

To be able to playback video on most DVD players, as well as being able to playback using XVmc, we'd need to be able to convert the video into MPEG2. One way to do this is to use mencoder as follows (see here for a guide to all the options). The resulting file is about 70% smaller, but the process takes a lot of CPU resources to preserve the high quality, and runs at only around 6fps on a 2GHz iMac. It takes around one minute for an 11 second video. Let's try it with the sample here:

wget http://www.osnews.com/img/19052/v1253.MOV

mencoder -oac lavc -ovc lavc \
-of mpeg -mpegopts format=dvd:tsaf \
-vf harddup -srate 48000 -af lavcresample=48000 \
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\
keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\
vqmin=1:lmin=1:dc=10:vstrict=0:acodec=ac3:abitrate=192 \
-ofps 30 -o output.m2v v1253.MOV

Converting to MPEG2 using transcode

The transcode input works OK, but audio is lost. Remember to use -g to specify the video stream frame size, otherwise transcode crashes. Here, we'll just use the default ffmpeg encoding settings, which are lower quality but quicker to encode. This sample takes only about 4.5s to encode, and the resulting file is only about one seventh of the size of the original (3MB compared to 21MB).

  wget http://www.osnews.com/img/19052/v1253.MOV
  transcode -i v1253.MOV -g 1280x720 -x mov  -y ffmpeg -F mpeg2video -o output

Using mplayer as the input to transcode works OK, but audio is lost. Again, remember to use -g to specify the video stream frame size, otherwise the resulting video is just a blur of colors. For example, we can use ffmpeg to encode to mpeg2 using this command:

  wget http://www.osnews.com/img/19052/v1253.MOV
  transcode -x mplayer -i v1253.MOV -g 1280x720  -y ffmpeg -F mpeg2video -o output

lsusb -v

This is the output of sudo lsusb -v.

Note: your camera's serial number shows up in the iSerial field of the Device Descriptor section:

Bus 005 Device 021: ID 040a:05b6 Kodak Co. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x040a Kodak Co.
  idProduct          0x05b6 
  bcdDevice            1.00
  iManufacturer           1 Eastman Kodak Company
  iProduct                2 KODAK EasyShare V1253 Zoom Digital Camera
  iSerial                 3 ____________
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           39
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower                2mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass         6 Imaging
      bInterfaceSubClass      1 Still Image Capture
      bInterfaceProtocol      1 Picture Transfer Protocol (PIMA 15470)
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              16
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0001
  Self Powered

Conclusion

Given the lowish price, the large bright screen and well thought out user-interface, it's a useful camera.

The video quality is surprisingly good, although ffodivx does fill up the precious flash memory more quickly than H.264 would.

Kodak also make an even lower-priced camera (model number Z1275) which also records 720p, albiet at "medium" quality 10mbps instead of 13mbps.

Back to LinuxHardwareInfo

Back to LinuxHints - Everything GNU ever wanted to know about Linux
to top


You are here: Main > TWikiUsers > PeterKnaggs > LinuxHints > LinuxHardwareInfo > HardwareInfoKodakV1253

to top

Copyright © 1999-2008 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback