photo booth, again

Ok, this time for sure. A year ago I posted about how I want to build a photo booth, and I think it's time to actually build it.

(Well actually, first I mailed the Photoboof guy saying "hey I want to give you money" but he ignored me. Oh well.)

Anyway, I see three possible approaches:

  1. Use a Mac Mini.
    Pro: Hardware and software are trivially easy.
    Con: Costs at least $600.
    Con: Will last four months, due to heat and dust... and then cost another $600.
  2. Linux netboot, with a video webcam of some kind, grabbing stills.
    Pro: Costs around $200.
    Pro: Can show live video before taking picture.
    Con: Software will be a monumental pain in the ass.
    Con: Firing a flash is a bit more work.

  3. Linux netboot, with a real digital photo camera plugged into USB, with "take a picture" under computer control.
    Pro: Costs around $200.
    Pro: Higher quality images.
    Con: Software will be a monumental pain in the ass.
    Con: No live video.

So my question for you, dear Lazyweb, is this: do any of these conditions apply to you?

  1. You are running a recent-ish Fedora; and
  2. You have a USB webcam on it that takes reasonable pictures.


  1. You are running a recent-ish Fedora; and
  2. You have a cheap-ish digital photo camera; and
  3. You are able to tell that camera to take and return a picture via USB (perhaps with an incantation like:
    gphoto --capture-image; gphoto --get-all-files)

If so, tell me all about it: what model camera, what software, what resolution, how crappy is it in low light. No rumors or third-hand anecdotes, please.

Update, 2 days later: Wow, none of you have webcams on Fedora?

Tags: , , , , ,

47 Responses:

  1. brianenigma says:

    I can't say that "no live video" is *that* much of a con. The analog/chemical photobooths have operated in that capacity for years.

    On the other hand, I guess I can see live video being important if you want to, say, have a motion-activated recording feature that grabs pictures of the drunken dude carving his initials into the plexiglass that protects the camera being tampered with. Of course, that's a fancy software feature and I wish you the best of luck in finding/creating a basic Linux-based photobooth software package, much less one with such a fancy feature as that.

    • baconmonkey says:

      live video is for self-positioning of the subject.

      • brianenigma says:

        Yeah--I was just saying that people have been positioning themselves in photo booths quite adequately before they had video screens, so not having live video isn't that much of a con. (Then I realized that a bonus feature of live video is security footage.)

        • carus_erus says:

          Or combo up #2 and #3. Get a *really* crummy USB camera, and position it such that the frame is nearly identical to the camera itself.

          This is practically what the photo center does here. Combo up a cheap digital camera with a true photograph. All the cropping, tone changes are done to the digital pic after the pictures are taken, then those changes are later applied to the photographic print when it's developed.

        • netik says:

          Use a mirror! Low-tech! :)

      • cetan says:

        If one went the higher-end digital camera route any one of the Canon A-series with the rotating LCD might be an option. Might. :)

  2. boggyb says:

    Suggestion for live video with #3: capture the AV output from the camera. Most digital cameras have an AV composite output which shows the same thing as the LCD screen.

  3. vxo says:

    Kinda off topic, sorry.. but... you could get a computer to put up with the environment better if you put it in a box with a 120mm fan and filter pressurizing it. The filter hardware is available from a good variety of electronics places and stores that sell the same thing for a 1000% markup to case modders.

  4. harryh says:

    You should talk to <lj user="endquote">.

  5. sc00ter says:

    I would go with number two, and rather than use a flash just have something turn on a series of lights around the preview screen to light up the subject(s).

  6. baconmonkey says:

    While not direct experience, I got to thinking that a laptop drive should have appreciably higher survivability in club environment than a desktop drive.

    Hell, do the oil-bath trick, and survivability should increase immensely. Dust and heat problems go away completely.

    Alternatively, a completely sealed case with a liquid cooling rig (which aren't that much) could also increase survivability. Though I think in that case, the power supply would probably have to be outside the sealed box.

    • carus_erus says:

      Use Flash Media instead of hard drives. It's easy enough to boot off of nowadays, and should be large enough to hold a few pics.

      I can combo up a SD card reader and media and build a 1GB solid state drive for about $30CDN.

      • usufructer says:

        Except that flash has a limited read/write life, shorter than that of any hard drive. Then he can replace the flash every month, instead of every four months.

        • magicpacket says:

          Flash has a much shorter write life than read life, and clearly the photobooth shouldn't be the main storage repository because of its precarious existence. Boot off the flash, but leave it mounted ro and save the pictures to a ramdisk before shipping them out over the network.

    • kfringe says:

      You're my new hero. Seriously. I was just trying to picture jwz doing that, and I haven't been so entertained all day. The best part is that there still won't be a camera attached.

      You, sir, are a god among men. A twisted, evil, malignant god.

    • bodyfour says:

      It doesn't even really need a hard drive at all, just do network booting.

      Unfortunately the easy way of doing OS X netboot requires OS X server which is expensive. However, it's possible to do it with free tools. It used to require that you run a patched version of dhcpd to work around some bugs in Apple's NetBoot DHCP client but with recent DHCP distributions (3.0.mumble or later, I think) you can apply the workarounds in dhcpd.conf (example here)

      The survivability of the rest of the mac mini is still unknown, but how much processing power does this app really need? Probably it can just be run on old macs that can be sourced for free.

  7. buckminster says:

    I don't have a better solution, but surely you could build something like they use for Dance Dance Immolation to filter and ventilate the mac mini. Put it in a closed box with forced air and big fans.

  8. codenazi says:

    Slightly OT question for the peanut gallery here: having not looked into video hardware in like 10 years, and being one of those crazy linux fanbois, does anybody have suggestions for the current "good, geek approved" Cheap USB Webcam? As in, something that can fetch still and/or live video with a simple incantation like JWZ's one above?

    Quality is not the question here, really... it would just be for some goofing around - hence the not wanting to do the usual linux-dance with kernels, patches, waving dead chickens, etc...

  9. jabberwokky says:

    I give you this link only because you have gotten very little information thus far. Here's a very nice roundup of webcams, complete with very good real world lighting examples:

    If you continue to have little information put forward, I can pass along the exact specifics of what I have done with an Ubuntu setup if you would like. That's assuming nobody comes forward with a Fedora specific solution; if you're not interested, no worries.

  10. this uses the mac mini solution:
    but the rest of the info on building a booth, lighting,
    etc, might be handy.

  11. dasht_brk says:

    no, i'm not *recommending* anything but just to the factual question:

    i'm running a recent-ish Fedora.

    i have a *very* cheap (junky) digital camera -- a few years old and presumbably replaced by a later, cheap, junky, fancier model. the brand name is "hawking".

    curious, i tried it out. turns out you have to type gphoto2, not gphoto. got random error messages a few times. then everything worked. would you like to see what i'm wearing?


  12. beepboopbomp says:

    I've had some good luck using the Apple iSight over linux with the libdc1394 libs. I had it going for a little while using some scripts to grab a image from the v4l device and upload it using ftp.
    I think the cool advantage of using v4l rather than a real camera is that it'll probably be a little bit cheaper, and people can position themselves correctly. But above all that is the possibility of doing some motion sensing and putting the photobooth video stream into the webcam rotation :)

    This year for Halloween, I also had some fun using a crumby old Kingston 640x480 USB 1.0 camera built into a foam LEGO head that uploaded pictures using my GPRS phone live from the Castro.

    If you'd be interested in collaborating, I've got some hardware you could have in the Mission.

  13. ciphergoth says:

    I don't meet your criteria but it looks like I'm closer than any of the other respondants. I have driven a digital camera to take photos, and then fetched the photos, over a USB cable onto a Linux box. This was Debian, and probably five or six years ago, but I used gphoto and it was pretty easy.

    Don't worry about the lack of live video for positioning. If you want to know if your position is right, take a photo!

  14. endquote says:

    I'm making a similar thing, but I doubt you'd be into the way I'm going about it. You might also head over to Shine, as they've had one for a while.

  15. aris1234 says:

    USB cab's suck - and I suspect you will want a flash too - and i've never seen a USB cam with a flash. Your best bet is to use this software:

    You will need an old digicam based on the sierra imaging chipset (i.e. cheaply available on eBay) that supports a serial interface. The first gen Olympus cameras are ideal like the D320L or the D500 or D600.

    From this you should be able to take a snapshot, and download it to a JPEG from the linux (or DOS) command line. Using a digicam, you will get excellent quality photo, and a flash too!

  16. baconmonkey says:

    I have two cannon cameras here.
    I plugged the video out to a TV, and the USB out to the computer.
    in camera mode, I get realtime video out, but no computer control.
    in image view mode, I can see photos already shot on the screen, but no realtime. I have computer control in this mode, but no preview anywhere, not even the camera's screen. I click "take a picture", and it pops out the lense and shoots, fully automatically.

    with different camera, and different OS, things *might* work a little differently.

  17. baconmonkey says:

    I think the more productive questions to ask are:

    1. "does anyone have a webcam that works under linux and pca that I could borrow?"

    2. "does anyone have a cheap digital camera and USB cable that I could borrow?"

    3. "does anyone have full plans to a working computer photo booth system?" - ask at your own risk

  18. baconmonkey says:

    the photoboof folks let you give them money.

    however, the anwers are incompadable with the JWZ Operating System.

    Fairly low system requirements, should work on any computer running Windows 2000 or XP (might work with previous Windows versions), on anything from a Pentium III on up.


    One Important Note: We rent out photobooths in the San Francisco Bay Area, and we'd rather not enable our competition with what we think is a fantastic tool, so the license for Photoboof forbids you from using it commercially within 50 miles of San Francisco. Sorry about that. Aside from that one restriction, you're free to make as much money as you'd like with Photoboof, both Commercial and Home.

  19. cerrus says:

    Hmm, didn't see this before. I wrote a crappy interface to the Sony PS2 USB camera that can pull jpegs of low quality, lighting, I dunno, put an LED next to it? You could pretty easily convert the code to use a different driver/chipset. I did have it working from home for a while (server/client model) so you could just click on 'update' on a web page and it would display a new image. This might be the approach you want, a web-browser in the booth with the camera above it, button on wall to 'update' or 'print'.

    I'll find tar of my last attempts and put it up for download if you are interested (code is awfully ugly).

    • jwz says:

      Um, thanks? But your comment should have been titled "why it's better to shoot yourself in the head than use Linux."

      • cerrus says:

        Ha, well, I don't have any other OS I do stuff on (other than play games on Windows with my son).

        I suppose I should have said "If gphoto doesn't support your camera you can..." but I guess you have a much fancier program on OS X that will support whatever cam you choose.

        Sounds like other people run various scripts that hook up to flickr. I did like the fact there was a jpeg encoder in the hardware (although the eyetoy is 640x480, but hey, it was just lying around the house). Probably not be a big deal to your box (I was working on a 200 Mhz ARM processor, not exactly what you want to encode/decode video with). Personally, I have my regular digital camera on 1 or so megapixels for normal photos anyways, as I don't print big photos, so I don't think you'd need that huge of a resolution.

        Good luck.

  20. willonthemta says:

    if you wanted to go the mini route but cost was an issue couldn't you just use a refurbished previous model mac mini and get it for $120 cheaper ()or ebay?

    do you also think 6 months life is realistic? seems a bit short....

  21. quotation says:

    I did it somewhat successfully with RedHat 6.2, which I don't think counts as a recent-ish Fedora.

    I also didn't use a usb webcam, I used a WinTV PCI card (bttv v4l). Capturing a still from a CGI script was easy, streaming to an X window was easy. Firing a flash would have been hard.

    Another oddball suggestion would be to consider an Axis network camera. It's a camera that plugs in to ethernet and streams out the pr0n. It's got its own Linux and webserver in flash, and you can write your own apps for its flash.

  22. erorus says:

    I didn't reply because I have neither a USB webcam on Fedora, nor a cheap digital photo camera on Fedora. But since you asked, incredulously, in your update...

    I've run Fedora for a little over a year. I thought about getting two different webcams to work in Linux. I'm a linux noob, so unless the steps to patching a kernel are written out in detail, I'll probably miss a step and get confused. Long story short, when I saw the woeful state of various USB webcam chipsets and the hoops you have to jump through to get it to work, I threw it all the hell away, and bought a $60 lan-based camera. I only need it for still images anyway. I just wget directly to the image's URL on the camera's built-in HTTP server. It's not bad quality, either.

    I'd suggest getting a TV and put a small/cheap video camera on top. You can probably find one on eBay that can't record anymore but still works otherwise. Then put the network camera right next to it. They press the button, it tells any computer to wget the image.

  23. chrismasto says: made the one at Shine and it seems to be using unixy tools. He's more likely to have useful operational experience than us bozos.

  24. ncongrunt says:

    Update, 2 days later: Wow, none of you have webcams on Fedora?

    I think it mostly that not so many people run Fedora in the first place. In my circle of acquaintances, which includes a fairly large number of linux users, I don't know a single person running Fedora. It's mainly Debian variants (Debian and Ubuntu), and the occasional Gentoo. The only Fedora boxes I ever encounter are servers.