Screenshot is of me tunneling into my headless analog video capture server I put together out of an old Thinkserver and a Magewell 1080p capture card, both of which were ebay gambles.
Here’s the flow:
- VCR and Hi8 decks -->
- Kramer VPC-23 AV Switcher -->
- RetroTINK 4k, upscaled to 1080p HDMI -->
- Magewell Pro Capture card -->
- Thinkserver RS140
AntiX headless install on the server. I ssh in to kick off the capture script I wrote, which also publishes a preview video stream to my LAN. I then just kick back and tune in via mpv.
I went as far as setting up an nfs share on the server, so after a capture I can pull it onto my workstation, to trim, edit, etc.
A VCR…wow! I haven’t seen one of those even at a yard sale in decades. Friend of mine and his family went out to a yard sale way back in the day, found a box of Disney videos, thought ‘A nice entertainment value watching Disney movies on movie night.’ Well, most of them had been taped over with some of that boomer porn of the 70’s. Somebody wanted a bit more spicy Disney experience. Luckily they had the presence of mind to review said box of VHS tapes before deploying them on movie night.
You must do a lot of VHS digitizing for a set up like that. Or was this just a ‘Wonder how hard it would be to…’? kind of project.
Have you thought about https://github.com/oyvindln/vhs-decode for your capture method? The results from direct signal capture look damn good
I did something similar for digitizing old camcorder family videos. I hooked up a VCR through a cheap elgato RCA -> USB capture card to my home server, and did something similar to you with a preview feed available on my LAN.
I even built a (really ugly) web UI which lets me pick an audio and video source, start the preview stream and display it in the browser without actually starting the capture, then start/stop the capture, edit the ffmpeg flags, and set the output file name. I can share it with you if you are interested
A couple of questions: Why are you capturing the VHS footage at 16:9 and at 60 FPS? Seems like it’s just a waste of space?
I also looked at the cost of the hardware, the Magewell Capture Card and the RetroTink in particular seem exorbitantly expensive for the advertised features? I don’t see much of an advantage of going this route vs using a mid-tier 100$ USB capture card and doing a pass with a software-based upscaler afterwards?
Not hating or anything, I’d genuinely like to see your perspective.
Not op but in my case I’ve seen huge differences between USB cards and high quality cards. 20 years ago I used to use bt878 capture cards. A few years ago I bought a Viewcast Osprey on eBay.
In particular I use a svhs tape player with built in time base corrector. The reason for svhs is because the hardware supports actual svhs output. Vhs tapes are store with luminous and chroma as separate signals. With regular composite output, that data is mixed into one signal. This causes interference patterns like dot crawl and color fringing.
The other big advantage over USB dongles is all the ones I’ve seen don’t let you capture the raw data- it’s pre compressed with lossy like mjpeg or mpeg which is another huge quality drop because you’ll usually want to post process the video with avisynth before compressing it to mpeg4.
My target is for the captured video to look just as good as it originally did on a VHS player on a crt. So the interlaced to progressive conversion is always tricky. I don’t personally do it but one trick to keep resolution is to capture at 60fps and play each 30i field doubled. That way no detail is lost in the source and it uses your eyes to motion blur the fields together.
I paid $50 on ebay for the Magewell, because the seller had a huge lot of them to liquidate.
The TINK 4k is indeed expensive, but it was one I had laying around collecting dust. I have a museum of gaming consoles and for a while was upscaling them with the TINK, before moving on to a different solution.
The 16:9@60 is simply my not yet having implemented conditions in my script for variable capture settings. I am fortunate to have an 8TB HDD in the server, and an additional 140TB data server, so file size footprint isn’t currently high on my priorities.
Solid kit!
I do something similar, but slightly different hardware. My VCR is a fun Panasonic that has VHS, DVD, and FireWire for minidv (I still have my minidv camcorder, though I may give it to my oldest who is interested in movie making).
DVD and FireWire inputs come out HDMI and component, but anything from VHS sources is composite or s-video only. So that output goes to an AJA D5D for SDI out, which goes to a black magic decklink for capture. HDMI goes to an Inogeni 4KXUSB3 for reference, I still rip DVD’s here and there, usually oddballs I’ve picked up at garage sales that are worth keeping around on my NAS.
Its mostly a manual operation though, would love to see (an appropriately redacted version of) your capture script! Right now I switch my (not really, but kind of) KVM for my servers over to that machine, and start things off through the GUI.
The script is nothing to write home about at the moment, with most of my time being spent just dialing it in for performance given the age of the Thinkserver. I feel that’s pretty squared away, so the next step is updating it to accept args for things like fps, resolution, etc.
#!/bin/sh AUDIO_DEV="hw:CARD=HDMI,DEV=0" FPS=60 OUTDIR="/home/wesker/capture" PREVIEW_URL="udp://netsphere.lab:5000?pkt_size=1316" exec ffmpeg -hide_banner \ -thread_queue_size 2048 -f v4l2 -input_format yuyv422 \ -video_size 1920x1080 -framerate "$FPS" -i /dev/video0 \ -thread_queue_size 2048 -f alsa -i "$AUDIO_DEV" \ -map 0:v -map 1:a \ -c:v dnxhd -profile:v dnxhr_sq -c:a pcm_s16le \ "$OUTDIR/$(date +%F-%H%M%S).mov" \ -map 0:v -map 1:a \ -c:v libx264 -preset ultrafast -tune zerolatency -g 20 \ -c:a aac -b:a 128k \ -f mpegts "$PREVIEW_URL"
Magewell Pro Capture card
I’ve been kind of shifting towards use of USB devices over internal cards.
All of the USB devices that I have still can be connected to computers. Ditto for DE-9 serial ports, though I might need a USB adapter.
But I’ve seen ISA->PCI/AGP->PCIe obsolete a lot of old hardware that I’ve had sitting around, and that’s just on the PC. That includes my video capture hardware.
I settled on the Magewell card because I found one super cheap, their Linux drivers seem pretty well supported and maintained, and I wanted a bolted-in solution since everything is rackmount.
Also includes my also includes my M-Audio Delta1010… Which I kept in an older PC up until the day the motherboard died.
Agreed on USB, but I sometimes get hardware provided to me, so I definitely still make use of those regardless 😀
Awesome.
Reminds me of the pain setting up mythtv, but thr rewards were worth it.





