Digitizing VCR

At some point it became time to convert old family videos on VHS/VCR to digital, and well, it turned out to be a rabbit hole that can go as deep as you want it to. I was looking for a low-cost, ultra-simple, good enough solution because lets be honest, the extra 1% in details isn’t worth the extra hundreds you could spend building a professional studio or hiring a professinal studio for a lot of this content. (By all means, get your wedding tape done professinally!)


USB Stick


In terms of low-cost hardware, I used this 10$ usb stick from Amazon because it was cheap, could be primed, and because I think a lot of these adapters are really the exact same model from 2005. In terms of software, well, I started out with Windows but grew sick of it so I compiled a dead simple, easy modifiable, single bash file to run when capturing.


PSA: From my testing, this script records VCR footage at a little more than 1 GB an hour.

ffmpeg Script

sudo apt install ffmpeg

Save the following script as capture.sh

chmod +x capture.sh

./capture.sh to begin capture, q to stop

ffmpeg \                                                                        
-f v4l2 \
-standard NTSC \
-thread_queue_size 512 \
-i /dev/video0 \
-f alsa \
-thread_queue_size 512 \
-i default \
-c:v libx264 \
-crf 18 \
-r 29.97 \
-s 720x480 \
-vf "yadif=1" \
-pixel_format yuyv422 \
-pix_fmt yuv420p \
-b:a 392k \
-channels 2 \ 
-c:a aac \
movie.mp4

Results Comparison

This is a quick side by side showing the stock windows capture program that comes with the stick on the left, and my custom ffmpeg script on the right.

- Oldskool PC Youtube Video

The best place to start, he explains what hardware to use, how to use Virtual Dub, and how video compression/interlacing works. Excellent tool for learning, but when I tried and subsequently used Virtual Dub 2, I couldn’t get the video to look cleanly and compression formats were missing, which is why I switched to Linux.

- Technology Connections Youtube Video

Great video discussing a fairly simple way to capture analog video, I think mine is simpler and lower in cost, but I absolutely agree with his points - keep it simple, straightforward, and just go for something good enough or you’ll spend eternity on useless imperceptible details.

- Jessecar96 Github

Awesome Github script that I just couldn’t get to work on Windows, but I pulled a lot of my script from his command. Great job detailing the arguments too, I would follow suite but I don’t really know what I am talking about so…

- Gordon Lesti Article

Another great article on how to use these low cost analog capture devices wtih ffmpeg. I borrowed the arguments that were Linux specific.

- Bionazgul Medium Article

One last article that details ffmpeg on Linux. I think I borrowed most everything from here except the set duration versus pressing q to stop capture.