There is a treasure trove of history locked away in closets and attics, where old shoeboxes hold reels of movie film shot by amateur cinematographers. They captured children’s first steps, family vacations, and parties where [Uncle Bill] was getting up to his usual antics. Little of what was captured on thousands of miles of 8-mm and Super 8 film is consequential, but giving a family the means to see long lost loved ones again can be a powerful thing indeed.
That was the goal of [Anton Gutscher]’s automated 8-mm film scanner. Yes, commercial services exist that will digitize movies, slides, and snapshots, but where’s the challenge in that? And a challenge is what it ended up being. Aside from designing and printing something like 27 custom parts, [Anton] also had a custom PCB fabricated for the control electronics. Film handling is done with a stepper motor that moves one frame into the scanner at a time for scanning and cropping. An LCD display allows the archivist to move the cropping window around manually, and individual images are strung together with ffmpeg running on the embedded Raspberry Pi. There’s a brief clip of film from a 1976 trip to Singapore in the video below; we find the quality of the digitized film remarkably good.
Hats off to [Anton] for stepping up as the family historian with this build. We’ve seen ad hoc 8-mm digitizers before, but few this polished looking. We’ve also featured other archival attempts before, like this high-speed slide scanner.
It’s cold outside! So grab a copy of the Hackaday Podcast, and catch up on what you missed this week.
Highlights include a dip into audio processing with sox and FFMPEG, scripting for Gmail, weaving your own carbon fiber tubes, staring into the sharpest color CRT ever, and unlocking the secrets of cheap 433 MHz devices. Plus Elliot talks about his follies in building an igloo while Mike marvels at what’s coming out of passive RFID sensor research.
And what’s that strange noise at the end of the podcast?
The GOES-R series of Earth observation satellites are the latest and greatest NASA has to offer. As you might expect, part of the GOES-R job description is imaging Earth at high-resolution, but they also feature real-time lighting monitoring as well as enhanced solar flare and space weather capabilities. Four of these brand new birds will be helping us keep an eye on our planet’s condition into the 2030s. Not a bad way to spend around 11 billion bucks.
To encourage innovation, NASA is making the images collected by the GOES-R satellites available to the public through a collaboration with Google Cloud Platform. [Ben Nitkin] decided to play around with this data, and came up with an interactive website that let’s you visualize the Earth from the perspective of GOES-R. But don’t let those slick visuals fool you, the site is powered by a couple cron jobs and some static HTML. Just as Sir Tim Berners-Lee intended it.
But it’s not quite as easy as scheduling a wget command; the images GOES-R collects are separated into different wavelengths and need to be combined to create a false-color image. A cron job fires off every five minutes which downloads and merges the raw GOES-R images, and then another cron job starts a Python script that creates WebM time-lapse videos out of the images using ffmpeg. All of the Python scripts and the crontab file are available on GitHub.
Finally, with the images merged and the videos created, the static HTML website is served out to the world courtesy of a quick and dirty Python web server. The site could be served via something more conventional, but [Ben] likes to keep overhead as low as possible.
Skywatching is a fascinating hobby, but does have the rather large drawback of needing to be outside staring at the sky for extended periods of time. Then there’s the weather to contend with, even if you’ve got yourself a nice blanket and it isn’t miserably cold, there might be nothing to see if cloud cover or light pollution is blocking your view.
The software side is fairly straightforward: 10 second exposures are taken all night long, which can then be stitched together with ffmpeg into a timelapse video. [Jason] was concerned that the constant writing of images to the Pi’s SD card would cause a premature failure, so he set it up to write to a server in the house over SSHFS. Adding a USB flash drive would have accomplished the same thing, but as he wanted to do the image processing on a more powerful machine anyway this saved the trouble of having to retrieve the storage device every morning.
Some people will tell you that YouTube has become a vast wasteland of entertainment like the boob tube before it. Live streaming doesn’t help the situation much, and this entry level webcam live-stream server isn’t poised to advance the art.
We jest, but only a little. [Mike Haldas] runs a video surveillance company that sells all manner of web-enabled cameras and wondered what it would take to get a low-end camera set up for live streaming. The first step was converting the Zavio webcam stream from RTSP (real-time streaming protocol) to the standard that YouTube uses, RTMP (real-time messaging protocol). Luckily, FFmpeg handles that conversion, so he compiled it for his MacBook Pro and set up a proof of concept. It worked, but he needed a compact solution that would free up his laptop. Raspberry Pi to the rescue – after loading a bunch of libraries and a four-hour build and install of FFmpeg, the webcam was streaming 1080p video of [Mike]’s sales office. He was worried that the Pi wouldn’t have the power needed for the job, and that it would be unstable. But as of this writing, the stream below has been active for six days, and it’s riveting stuff.
While on the hunt for some hardware that would let him stream video throughout his LAN [danman] got a tip to try the €69 Tronsmart Pavo M9 (which he points out is a re-branded Zidoo X9). With some handy Linux terminal work and a few key pieces of software [danman] was able to get this going.
The Android box was able to record video from the HDMI input with pre-installed software found in the main menu as [danman] explains on his blog. File format options are available in the record menu, however none of them were suitable for streaming the video (which was the goal, remember?).
[danman] was able to poke around the system easily since these boxes come factory rooted (or at least the Tronsmart variant that [danman] uses in his demo did). Can anyone with a Zidoo X9 verify access to the root directory?
Long story short, [danman] was able to get the stream working over the network. Although he did have to make some changes to the stream command he was issuing over ssh. He finds the fix in the ffmpeg documentation which saves you the trouble of reading through it but you’ll have to check out his blog post for that (pro tip: he links to a sweet little .apk reverse engineering tool as well).
We’ve seen set top box hacks before, however, streaming and recording HDMI at this price is a rare find. If you’ve been hacking up the same tree let us know in the comments, and don’t forget to send in those tips!
[Zitt] has a security camera which will send him messages any time it detects motion. However annoying this might seem, we’re sure he has his reasons for needing this much immediate feedback. The real problem comes when he goes to view the feed on his iPhone. His solution is to turn the camera’s notifications off, and use his own script to transcode a clip and shoot off an email.
As you can see above, the end result is a concise email that includes the recently captured clip, as well as links to the live feed. He has been storing the clips on an LG N4B2 Network Storage Server (NAS) and since he’s got root access to the Linux system on the device it was an easy starting point for the new system. After he compiled FFmpeg from source (which handles the transcoding) he started work on the script which backs up the recordings and sends the email messages.
One thing he wants to add is a method to clear out the old backup videos. Having encountered a similar issue ourselves we decided to share our one-liner which solves the problem. Find it after the break.