Files
Lee Hanken 7c8efd2228 Initial commit: HPR Knowledge Base MCP Server
- MCP server with stdio transport for local use
- Search episodes, transcripts, hosts, and series
- 4,511 episodes with metadata and transcripts
- Data loader with in-memory JSON storage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-26 10:54:13 +00:00

184 lines
14 KiB
Plaintext

Episode: 4185
Title: HPR4185: Archiving VCR or any other RCA media
Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr4185/hpr4185.mp3
Transcribed: 2025-10-25 20:59:15
---
This is Hacker Public Radio Episode 4185 for Friday the 16th of August 2024.
Today's show is entitled Archiving the CR or any other RCA media.
It is hosted by Ken Fallon and is about 17 minutes long.
It carries a clean flag.
The summary is, we see our players are starting to get expensive so now is the time to archive.
Hi everybody, my name is Ken Fallon and you're listening to another episode of Hacker Public Radio.
Today I am going to talk to you about archiving video cassette record tapes to disk and
this is something I had already done myself, but my father passed away.
I volunteered to do the family there, so I ended up bringing 113 video cassettes on
a Ryanair flight in addition to the tip recorder itself, because although we use PAL in the Netherlands,
it's a different version to what's in Ireland, so I needed to bring that over here in the
U.S. uses NTSC and CECA.
In order to do this, you get an output via an RCA cable that orange, white and red one.
The orange has the video signal and the red and white has the left and right audio channel.
You can get cheap RSA to HDMI adapter cards and that allows you to watch video cassettes
and DVDs and stuff like that that don't have a HDMI connector on your HDMI playing device on
your own.
In this case, what I got was a HDMI to USB capture card and as the tape was playing, it
got converted from RSA to HDMI and then the HDMI captured the video into the computer and
then the computer was able to play it.
So I have some links to where I bought them in the show notes, but just more for reference
for you, you can probably get them locally cheaper and I think they're mass-produced and
rebranded by other people.
They're not recommendations, those links are more for guidance then.
So once you have the physical hardware connections all together, you can do a LS USB, we'll show
you the device and I'm going to be using a trick here that I use quite a lot which is
I run a command, don't put to a text file, add the device, run the command again, run
it to another text file and then do a different loss to and then you can see what changed.
So on the first case, what we need to do is check and see if our USB capture device
is actually captured.
Well, the first thing you actually do would be plug in the HDMI cable into a TV and see
does the video cassette actually play?
So does the EVI-2 HDMI adapter actually work?
So if you know that's working, then you can plug in the HDMI cable into your USB adapter
and that's step two.
So we're already at that point, we're at the point where you are getting pictures out
of the HDMI cable, it is speaking of the VCR and on the device itself, I set it to
the 720nose resolution because there's no way upscaling will work on this.
So just keep it at the close to the native variable solution as possible.
So what I do is I nullify USB and then I t that into a text file called before.text
and then I connect everything up, wait a few seconds, plug in the USB, wait a few seconds
and then do another USB, LSUSP into a file called after.text and then I'm going to do the
difference, the two, I guess a device ID that's been added and for Delta, call on to one macro
silicon USB video and that ID is kind of useful because what it will do is allow us to go
to the search engine of choice, type in that and see, do anybody else has anybody else
can have any other issues with that device.
And at the bottom of the show notes, there's a whole series of links that I got related
to that device, some of them were extremely helpful.
So now we know what device ID we have, we need to be able to, we know at least it's coming
up as a USB device and we need to see now if video for Linux is picking up the device
again.
So what we're going to do is that plug on, plug thing and t the following command into
a before.text and then compare it to an after.text.
So what I'm doing here is there's a sys class video for Linux forward slash video asterix
for such devices, for such you event.
So I do for I in all of that, do and then I can't allow to the for the text and then I plug
in the usb device and I do the same thing only to after.text and then I get a diff and
it has you events which has got a, I don't know, stuff like DevType is usb interface, driver
is uvc video and the product and that's the important one I'm looking for in my case
is 534 delta forward slash 2109 forward slash 2100, which is remarkably similar to some
of the device IDs, but anyway, so that's that product ID and the reason we need to know
this is because every time you plug it in, it might get different slash sys slash slash
sys video for links slash video number, which you'll see a slash dev video one or video
zero or video four.
So you don't know bending depending on boot time is your camera you're going to have
a video card or is it you plug in something or your phone connects and then suddenly you
got additional video cards.
So you need to be able to know which one of these mapped to on your Linux subsystem.
In the same way, we need to know what audio device it's going to be.
I use a record space dash L and I put that into the four text, plug it in again, a record
dash L to after that text.
After it's been plugged in, do a diff on the two and then I see that card two is a MS 2109
and it's coming in on device zero USB audio, which sounds all kind of cool.
So then this should help me open up a VLC for example and then you go into capture devices
and then underneath that we will see video camera capture mode and then device selection
video device name forward slash dev forward slash video four, so in my case there are four
options.
So from the previous checks, I knew it was video four and the audio device name I had
to type this in was hw colon two comma zero, which is card two device zero and the recipe
that should be enough to play by pressing the play button it should capture that stream
and display it on the screen and if that works, great, you're sorted.
For me, it meant taking that the USB device ID searching why it wasn't playing and I found
a excellent GitHub article describing that even though it says that we record 60 frames
per second it doesn't and the video input format needs to be specified.
So the way you can do that in VLC is go to the advanced section and then under video input
chroma, I put in mjpeg from the drop down and I changed the frame rate from 60 down to
30 and then when I did that is played fine and I was able to essentially hear and hear
everything that was on the tape.
Top tip, make sure that the video cassette that you're playing actually has audio coming
through on it and not that you spend four hours trying to debug an audio issue which
turns out to bet the tape you're trying yourself doesn't actually have audio.
So it's handy to have a TV with a HDMI connection in it that confirms your test setup is
working or HDMI play out.
So now once I had a video on the screen and an image on, I now knew my hardware setup
was correct and working for shadowing from later.
So I built a script and as I say in the show notes attached to this, there's show notes
attached to this and this is very much a me script.
So I feel free to modify and change it and there are two basic sections to one is it checks
for the audio device using grep for that you event file and then it I done device which
video device it is and it gives you a video device part of slash dev slash mic is video
four and then it does equally the same for the audio device and if they're not found
in the deserts saying that it hasn't been plugged in usually when that happens just plug
it out with 10 seconds plug it back in again and then it's good to go.
So then I use ffmpeg which is like the workhorse of media to take the files in as close to
the road don't possible and just don't put on to a disc I'm not going to do any transcording
or anything at the stage my goal here is to pull it in as quickly as possible without
doing any work on this machine.
So they commands is ffmpeg-f which is the format and that's video for Linux 2 then I have
three minutes of 30 which is basically hard coded into the hardware device that I purchased.
So that's going to mean that I'm not going to do frame have to do a frame rate turns translation
in ffmpeg the video size is 72480 which will just give a standard video format.
The input format is mjpeg which is what's coming from the device and then they thread
Q size it was complaining about that so that's the maximum number of packets when reading
from a file or device and I needed to set that to 512 in order to get enough 3Qs available
and then carrying on the dashi input file name is slash dev video and that's from that's
the variable that I had earlier and then the next input is in the format of also this
the audio channel and the input device is hardware and it's the audio device from above
and then we tell ffmpeg-c which is codec which is copy so basically what you get on the
input, copy it out to the output what you get on the input from audio, copy it out, copy
it out but instead of copying the audio, put it into a flag format so I thought that was
the best and I put it into an mkv container just as a way to hold it so we basically
spoke about the thread Qs and spoke about how I did it and the flag so nothing really
more to do than for vCR in 0 to 133 do basically every morning I'll put in a tape, go to work,
come home, put in the next tape and then before going to bed put in another tape and then
over the weekend so I might have been able to get two or three tapes done on the one day.
Some of them were just 90 minute tapes and then some of them were 8 hour tapes so you
know all kind of dependent in order to kind of work that out what I would do is rewind
the tape to the beginning and then fast forward it to the very end then I'd know how long
the tape was and then I used a timeout command which is a time that will run a command with
a time limit so if you put in I don't know if you have something that runs in an infinite
loop for a period of time which is what this would be doing the timeout command will send
a signal like a control C signal to kill it and then after a particular period of time so
that's a record that script that I was being run and I said to preserve status which means
the error message coming from the script was preserved. If it didn't stop I would kill
it five minutes after the timeout and the timeout I gave dependent on the length of the
movie so if the movie was three hours I put in three multiply by 60 and plus 10 minutes
just to have some sort of buffer at the end and then I would run that script I press play on
the video recorder see that the thing starts working and then after a while I was here
as rewinding and then I could go down and write their timeout or I could control C and I would
be left with a output that FLV file which I would then rename to you know whatever it was
Ken's wedding whatever happens to be the name of the video cassette and then I'd start doing
the other one then the key here was to keep do pumping them through as quickly as possible because
the thing that took the most time was the recording of video cassettes. One problem that I ran into
after a particular period of time was that the laptop that was doing it on froze and completely
on responsive also on responsive to that's a hemic of Linux thing if you left it long enough
it would come back and I couldn't figure out what I was and did a memory check I did a hardest
check and I suspect that it was you know I tried writing to USB disk I tried writing it to NAS
but I suspect it was writing it to looks encrypted disk that the whole thing was just
the size of the files were just too much for it to handle so every hour produced 6.6 gigabytes
of tapes of disk so 6 or 8 hour tape you could run into anything between a 40 and a 60 gigabyte file
coming up yeah was that so I ended up using my HP T610 flexible thin client which I spoke about
before in home assistant series I have it another one and I had a spare one turbine disk so I put
that in there installed Debian on it and it had no problems whatsoever so I think straight spinning
disk was the thing just don't do so that was that was right so the issue with the mgpeg format was
and the way I captured this was probably not ideal the whole time base was incorrect so you couldn't
scrub forward or back it the LC and MPV struggled to play the files so I ended up just converting them
with ffmpeg so ffmpeg dashi kind of adding that mgpeg space kinds of adding that in p4
and that results in a file size reduction of 50% and once I had that captured I could delete the
original and then I pulled it into lossless cost which is an excellent tool I'm going to do a
separate episode and that just allows you to take the mpeg for file and split it up so I could
scrub through and see if it was a movie or if it was a wedding video if there were five minutes of
content and then nothing and then at the area in five minutes of content I could cut those two out
or those two movies just split them and divide them into two and it also gave me confidence as
there was a blank tape that there was nothing on the except six hours of static so no need to
to do anything without a man move on so that was it the process of doing this recording was more
as a reference for myself and I inevitably have to do this for somebody else so if you have any
of this archiving stuff to do as I said the video cassette reporters are becoming more expensive
harder to find so if you have these old tips now is a good time to do your archiving
get them off probably no harm to keep your cassette player around if you've got space somewhere
because senior leisure somebody will come with a tape that needs to be converted so
so that is pretty much that tune in tomorrow for another exciting episode of Hacker Public Radio.
You have been listening to Hacker Public Radio at Hacker Public Radio does work.
Today's show was contributed by a HBR listener like yourself if you ever thought of recording
broadcast and click on our contribute link to find out how easy it really is. Hosting for HBR has
been kindly provided by an honesthost.com the internet archive and our sync.net. On the Sadois
stages today's show is released under a Creative Commons Attribution 4.0 International License.