One of the perks of being a teacher is that I get two and a half months off of work. After spending the last couple of summers teaching summer school, I decided that I wanted to spend this summer with my parents. I once was told by a colleague of mine that “when growing up, you spend 100% of time with your parents, then when you go to school that drops down to 10%, and when you are an adult, it’s less than 1%”. After losing most of my grandparents within my time out of college, I decided that I wanted to spend more time with my parents while they are alive.
While I am with my parents out of town at their house, I made it my goal to backup all of our old family pictures and videos. After all, I want to learn from them, and there is no better person to ask than the people who took them. If you know me, I took a lot of pictures. A lot. Roughly 1,300 pictures for an hour and half basketball game. And this is all hereditary – from my mother’s side. Needless to say, this was no easy task.
In the last three weeks, I have spent each and every day converting pictures and videos to digital. Here’s the breakdown:
- 320 Physical Photo Albums
- There were about 300 pictures per album
- That is 96,000 pictures total.
- 212 CDs
- Each holding roughly 100 pictures each
- That is 21,200 pictures total.
- Thousands of physical pictures loosely stored around.
- My Mom’s Facebook Backup
- As of June 6th, 2024 she had 128,851 photos and 4,742 videos uploaded.
- 261 Physical VHS, VHS-C, MiniDV, and 8MM MP Tapes
- I backed up…
- 26 VHS tapes which are 6 hours each.
- 116 VHS-C tapes lasted 2 hours each
- 100 MiniDV tapes lasted 90 minutes each
- 19 8MM Mp Tapes were 3 hour each
- 12,600 minutes = 210 hours of video
- That’s 595 hours of video! That’s 24 DAYS!
- I backed up…
In total, I have processed 121,942 photos (on top of 177,664 photos I have from my own life) which totals 299,606 photos on my server along with 595 hours of video. I have 1 TB of photos and 797.3GB of videos.
I took a look at services that offer conversion of physical media (pictures and videos) to digital (.jpg, .mp4, etc). Here are some of the services I found
- Physical Photos
- Examples include
- Prints in various sizes such as 2″ x 2″, 2″ x 3″, 4″ x 6″, 5″ x 7″, 8″ x 8″, 8″ x 10″, 8″ x 12″, etc
- Slides
- Negatives
- Walmart charges $15.96 for the first 35 images, and $0.45 afterwards.
- That would cost me $54,874.11
- Costco charges $24.99 for the first 62 photos and $0.323 per photo afterwards.
- That would cost me $39,285.39
- Legacybox charges $1099.99 for a “Trunk” (their bulk option) which is 40 Tapes, 40 Films, or 40 sets of 25 Pictures
- That would costs me $133,198.78
- Scanmyphotos costs $145 for 1,800 photos
- That would costs me $9,720
- Examples include
- Physical Videos
- Examples include:
- Physical VHS, VHS-C, MiniDV, 8MM MP
- Legacybox charges $1099.99 for a “Trunk” which is 40 Tapes, 40 Films, or 40 sets of 25 Pictures.
- That would cost me $7,699.93.
- Examples include:
- Physical Photo Albums
- I found no services that would do this. You would have to take all of the photos out and send them.
No matter what option I chose, it was going to be astronomical in cost. And besides, do I really trust these random companies with my family photos and videos? Do I trust the postal service to not lose them?
So I decided that I was going to have to do this manually by myself. I didn’t want crappy or low quality solutions such as scanning photos with my phone, or using a slow flatbed scanner. So I did some research and these are things I chose. The total cost for me to do this was $1,200 with the hardware I bought, and of course, my time.
Software and Hardware I Used For Video Converting
- Roxio Easy VHS to DVD (or other similar hardware)
- I purchased this device in high school.
- It connects any component (yellow, white, red cables) to my computer.
- Dirt cheap – Any VHS Player and Cameras Needed
- Connect it to the Roxio Easy VHS to DVD
- Free – OBS Software
- Had to change to 480p (640×480) resolution – the original resolution.
- Records in .mkv
- Will also use the File→Remux Recordings feature to convert to mp4
- Free – Shutter Encoder
- Use this to shorten videos without reencoding the video. Used when I am away from the keyboard when a recording ends.
- Cost Various – Various cameras which read your media.
- You will need cameras that read your media such as MiniDV, and 8MM MP tapes.
- $40 – VHS-C Converter
- If you have any VHS-C tapes, you will need to this converter to play in a VHS player.
Software and Hardware I Used For Picture Convering
- Hardware
- $649.00 – For Photo Albums I Used CZUR ET24 Pro Professional Book Scanner, 24MP Document Camera, 3rd Gen Auto-Flatten & Deskew Tech, A3 Document Scanner, 180+ Languages OCR, Support HDMI, for Windows/MacOS/Linux. This allowed me to scan pages of photo albums as is. I wanted to preserve any writings and documents that were in them that aren’t necessarily pictures.
- I will warn anyone taking this option, the quality of individual photographs will be lower due to small amounts of glare from the plastic, and the camera being further away from the media.
- $500 – For individual pictures I used Epson FastFoto FF-680W Wireless High-Speed Photo and Document Scanning System, Black
- For individual pictures, this piece of hardware was perfect. It could scan the front and back of photos to preserve any writing on the back. However, if you only went with this option, you would have to 1) take all the photos out of albums and 2) lose the state of the albums in which they are in.
- However, there were many pictures that were not in albums, which this was perfect for. And they were very high quality pictures.
- $649.00 – For Photo Albums I Used CZUR ET24 Pro Professional Book Scanner, 24MP Document Camera, 3rd Gen Auto-Flatten & Deskew Tech, A3 Document Scanner, 180+ Languages OCR, Support HDMI, for Windows/MacOS/Linux. This allowed me to scan pages of photo albums as is. I wanted to preserve any writings and documents that were in them that aren’t necessarily pictures.
- Software
- I used CZUR Scanner software which comes with the CZUR ET24 Pro Professional Book Scanner.
- I used Epson FastFoto (comes with EpsonFastFoto FF-680W). Described later on.
- I used Adobe Bridge to adjust dates in the metadata for pictures before uploading. This is free with my employer Adobe account.
Convert DVDs to .mp4
- On Linux I used the app called Handbrake to convert to mepg4 (mp4)
Storage Solutions
I stored our photos and videos each twice. Once on my own server and once on Google Drive or Photos. You can read more about my solution in my other blog post by clicking here. Photos went to Immich and Google Photos and videos went to Nextcloud and Google Drive.
I also kept a spreadsheet of public links of each album and video that I shared with my family. Moreover, if I ever need a picture of certain people, with the power of machine learning, I can do that in seconds!
A word of warning, the biggest issue with personal storage is having to back it up. You can’t just buy one large harddrive. You need a minimum of 4 in my opinion (2 always in RAID 1 – exact copies of each other, 1 that is a weekly backup, and 1 that is swapped with the weekly backup every month and kept off site). You need to absolutely keep one harddrive away from the others in case of fire, flood, etc.
Moreover, you do not want to only store your data on the “cloud”. For one, “the cloud” is a fancy word for “a strangers computer”. What happens if your cloud provider such as Microsoft or Google no longer want to support it? Or they delete it on accident? You’re screwed. And yes, they have and will delete things and don’t tell you.
Steps for converting media
For your convenience, I will outline the steps I have taken to convert all of my media. Again, I personally have kept this data twice, once internally and once externally. I will not detail the process of how to upload photos and video. This guide is about how I scanned and processed the media.
Steps For Converting Photo Albums
These are the steps I did to convert photo albums.
1) Pick a photo album to scan
2) Open Czur scanner app.
3) Scan each page in the book
4) Hit “back” to go back to the main screen and hit “Select All” to select all the pages and then hit “PDF”
5) Change quality to “HIGH” and hit “Confirm”
6) Now pick a name for the album. In this situation, the name I choose was “19900617-19900715 Fiala Photo Album”. I sometimes am more descriptive, but I always start was “beginYearMonthDay-endYearMonthDay Description”. This allows the PDF to be in order. You can’t use characters such as / because it is a part of a file path and the hyphen is used to show range so I just opted to do dates this way.
7) Close out of the Czur software
8) See below for an example of two screens of my workflow.
9) In the first screenshot, you will see that I have a Windows Explorer window that is smaller than the rest. I do this so it is easier to access the browser window behind it which holds all of the links to the albums.
10) I will now find the scan of the file and drag it to Nextcloud and Google Drive.
11) I will then find the folder of the raw .jpg files and drag it to new Immich and Google Photos albums.
12) Once the photos are uploaded, I will adjust the dates to the starting date of the album. Doing individual dates will take too long and is not my goal to be exact for each photo. Having it in the rough time period is good enough for me.
13) Within Immich, I will also add the photos to the “All Family Photos” album, which is another album I share so people can just browse all the photos at once. You cannot do this on Google Photos because there is a 20,000 photo limit in an album for whatever reason.
13) Afterwards, I hit the “share” button to get a public link and put it on my Google Sheet which has the Photo Album Title, Immich Link, Google Photos Link, Nextcloud Link, Google Drive Link for each album. The Immich and Google Photos links are both raw .jpg files. The Nextcloud and Google Drive links are PDFs. Immich and Google Photos most of the time do not keep the order of the albums intact, but the PDF obviously will. I will repeat this process for all share links.
14) Put the album to the side and make sure you closed out of the Czur software and have reopened it to process the next one. You have to close out of the Czur program because you have to close it for it to start a new “book” or “album” for all the files to be placed in a different folder.
Converting Single Photos
When converting single photos such as 4×6 and other sizes, I used the Epson FastFoto FF-680W Wireless High-Speed Photo and Document Scanning System, Black. As mentioned earlier, the pictures scanned were very high quality.
Here is an example of just one box which I had to work with:
There are a total of 1,267 pictures found in just this box alone which had dates between 2001/12/19 to 2002/05/12. There are some Panoramic photos, but most of them are 4×6 and all of them came with negatives, which I chose not to scan.
Example of the settings in Epson FastFoto for quality.
Here are the sizes that the 4×6 were:
- 300dpi: 341KB
- 600dpi: 5.75MB
- 1200dpi: 13.9MB
I could not personally tell the difference between the three options. But I chose the 600dpi option for most of my pictures.
There were also Enhancements options
Results varied between them. I found the “Auto Enhance” typically watered the photos with too much brightness so I disabled it. When needed, I would play around with these, otherwise, I never touched them.
Here is an example of just the “Restore Faded Colors” option.
Before
After
It works better with actual people in it, but since I was not alive for photos that would be faded, I’m not comfortable sharing photos with the people who are not in them.
I also ran (asked ChatGPT to code) a Python script which would take the enhanced photo and combine it with the back side of a photo (in case there was handwriting) on it which you can find below.
Python Script
import os
from PIL import Image
#This script is meant to run after Epson FastFoto takes photos and does colorization and red eye detection. If there is a back, it will combine the enhanced photo and back of it and remove the back photo. It will keep the original photo and enhanced photo as is.
#Ran with “python combine_images.py”
#Needs “pip install pillow” to run first
def combine_images(image1_path, image2_path, output_path):
try:
# Open the images
image1 = Image.open(image1_path)
image2 = Image.open(image2_path)
# Get the width and height of the images
width1, height1 = image1.size
width2, height2 = image2.size
# Create a new image with the combined height of both images and the width of the widest image
combined_image = Image.new(‘RGB’, (max(width1, width2), height1 + height2))
# Paste the first image on top
combined_image.paste(image1, (0, 0))
# Paste the second image at the bottom
combined_image.paste(image2, (0, height1))
# Save the combined image
combined_image.save(output_path)
print(f”Successfully combined {image1_path} and {image2_path} into {output_path}”)
except Exception as e:
print(f”Error combining {image1_path} and {image2_path}: {e}”)
def main():
# Get the current directory
current_directory = os.getcwd()
print(f”Current directory: {current_directory}”)
# Scan the directory for images
files = os.listdir(current_directory)
print(f”Files in directory: {files}”)
# Create a dictionary to hold file pairs
file_pairs = {}
for file in files:
if file.endswith(‘_a.jpg’) or file.endswith(‘_a.png’):
base_name = file[:-6]
file_pairs[base_name] = file_pairs.get(base_name, {})
file_pairs[base_name][‘a’] = file
print(f”Found _a file: {file}”)
elif file.endswith(‘_b.jpg’) or file.endswith(‘_b.png’):
base_name = file[:-6]
file_pairs[base_name] = file_pairs.get(base_name, {})
file_pairs[base_name][‘b’] = file
print(f”Found _b file: {file}”)
# Combine the images and save them
for base_name, pair in file_pairs.items():
if ‘a’ in pair and ‘b’ in pair:
image1_path = os.path.join(current_directory, pair[‘a’])
image2_path = os.path.join(current_directory, pair[‘b’])
output_path = os.path.join(current_directory, f”{base_name}_c.jpg”)
print(f”Combining {pair[‘a’]} and {pair[‘b’]} into {base_name}_c.jpg”)
combine_images(image1_path, image2_path, output_path)
# Remove the original images
#os.remove(image1_path) #This would have removed the file with _a which is the enchanced photo.
os.remove(image2_path)
print(f”Removed original files: {pair[‘a’]} and {pair[‘b’]}”)
else:
print(f”Pair for {base_name} is incomplete: {pair}”)
if __name__ == “__main__”:
main()
Steps For Converting Single Photos
- Take them out of each box and paper bag.
- Rotate any photos that are sideways (it’s more of a pain to do it later in the software)
- Rotate all photos to be upside down (the scanner needs faceup, top edge first).. Otherwise you can Ctrl+A and rotate them all, which takes more time
- Scan.
- When scanning, I would choose a new “subject” (album title) which just makes a new folder. It’s easier to go through these in Windows Explorer or Adobe Bridge when there aren’t 1,000+ photos to go through or load.
- When scanning, I would choose a new “subject” (album title) which just makes a new folder. It’s easier to go through these in Windows Explorer or Adobe Bridge when there aren’t 1,000+ photos to go through or load.
- Once done, I would open up Adobe Bridge and highlight all the pictures with the same date and change the “Camera Date (Exif)” with “Date Time Original” to the right date. Thank the heavens that most of the pictures have a date on them. If they didn’t, I guessed. It looks nicer when navigating pictures in a web interface later on like Immich to have them by date, rather than have a bunch of old photos appear in 2024.
- Upload the picture as albums to my server and add them to a Google Sheet.
Steps for ripping CDs
Unlike my mom who printed all of our photos, my grandmother got them burned (written) to CDs after 2005. As far as I am aware, they were not stored in a hard drive.
In order to copy CDs, you will need a CD player. Most likely, you’ll need an external CD player. Once you have one:
- Put in a CD
- Make a folder for the contents of the CD
- Copy and paste the contents of the CD
- Wait. CDs are VERY slow
- Upload them to Immich and Google Drive as albums and edit the spreadsheet accordingly.
I chose to do rip (copy) the CDs on a separate computer than my other methods I had going on. At least for my external CD drive, I had to have two open USB ports (one for data and one for power) and each CD took forever to copy from. It’s something I would glance at every one in a while and swap out the CD as needed. This was not my priority. A second computer was perfect for this task.
Steps For Converting Videos
1. Ensure everything is connected
2. On a third screen, I have the following apps open, Windows Explorer, OBS, Shutter Encoder, and a Web Browser.
Hit “advanced audio properties” and click the Audio Monitoring to be “Monitor and Output” on the “Mic/Aux” if you want to listen to it
3. Rewind tape
4. I hit “Start Recording” and then start the video from the VHS player or camera and wait until it is done.
5) When the tape is done hit “Stop Recording”
6) In OBS, click “File→Remux Recordings” and navigate to the .mkv file you just recorded and pick it and hit “Remux”. This will make it a .mp4 file which is more recognizable by other programs to play it.
7) After it is finished, find it in your file explorer, and skip to the end. If you need to shorten the video, open up Shutter Encoder and drag the file in and hit “Cut Without re-encoding” and type in the timestamp that you want to stop it at. This is useful if you were not there when the video ended. Note: having a minute or two of a blank screen (such as my blue screen) takes very little to no space, but you might not want your video to be 8 hours long or whatever.
8) Once I have my shortened video, I rename it to be something like: “20041215-20041224 Krista Choir Concert and Christmas.mp4”
9) I then move it to a separate folder called “To Upload”. This is where all final videos are stored. I will delete them after verifying that they are uploaded to both Nextcloud and Google Drive. A 90 minute video typically takes about 3-4GB of space.
10) I add an entry in my spreadsheet for the video.
11) I upload them to Nextcloud and Google Drive. I have found uploading directly to Google Drive in a web browser works great. But uploading with the Nextcloud Windows app has worked better for me.
12) After the videos are uploaded, I add share links to the Spreadsheet I have and then delete them from my computer to save space for more.
Issues
Old Video Cameras Not Working
You need the original video cameras to play special tapes such as MiniDV and 8MM MP tapes. There are no tape players made for consumer use for these like a VHS player. The only ones I can find costs $1,200+. And if you have the original camera, it might not even work anymore.
In order for us to play a MiniDV tape, we had to first track down and eventually order a power cable. The camera worked for about 2 tapes and jammed the third tape and has been inoperable since. We then bought a second MiniDV camera which played one tape and then broke and then ordered a third MiniDV camera which turned out to play all of our tapes just fine. Expect that if you still have your camera, that it won’t work. You will spend a lot of time on Facebook Marketplace and Ebay.
Shift Dates
When using the “shift dates” feature, Google Photos sometimes will not shift the dates for all of the photos.And because you can’t change the order of which the album is displayed (sort by date???), it will take ages to find that few photos that are out of order. And no, I can’t select all and change the dates, it doesn’t work.
I recommend using something like Adobe Bridge to set the dates prior to uploading.
Special Thanks
In the last four weeks, I want to give a special thanks to my mother who always insisted on taking video and pictures of everything we ever did. I was able to relive these special moments in my life, and even see some things I wasn’t alive for. There is something special about watching yourself grow up.