ripping vhs

I don’t think I’ve ever written about how to rip a VHS tape before, so I figured I’d write up a quick guide since it looks like that’s part of what I’m gonna be doing this weekend.  Yet another item I’ve long had on my todo list was to get a digital copy of some really old tapes put out by my church, since they were never released on DVD.  Fortunately, it’s really easy if you have a TV tuner card.

I’m using a Hauppauage PVR-500 card, which has composite inputs on the rear, and that’s how I’m capturing the feed.  That good old analog hole.  Although, ideally, the Macrovision DRM shouldn’t allow that, so don’t ask me how it’s working.

Anyway, it’s simply a matter of switching your input to the component input, and then using ffmpeg to capture the stream.

To change the input, you’ll need the IVTV utitiles.  In my case, the command is:

$ v4l2-ctl -i 2

Then, with ffmpeg, you can capture the stream, just copying it and saving it in its native format.  My PVR card does hardware encoding to MPEG2 video and audio, so I can just save it directly.

$ ffmpeg -i /dev/video0 -vcodec copy -acodec copy -t <hours:minutes> vhs.mpg

And thar ya go.  Pretty simple.

Here’s a screenshot from an old church video.  As you can see, its slightly grainy, but that’s because of the source, not because of the transfer.  It would look just as good / bad on the VCR player itself, so the conversion actually works really well.

Edit: I thought I’d add a bit more technical details as far as the MPEG encoder goes.

The video is MPEG-2, and the bitrate is 8000 kb/s.  The framerate is NTSC, of course.  The picture is 720×480 in size (my snapshot above is scaled down for presentation).

The audio is encoded to MP2, and it keeps the stereo stream.  The bitrate is 224 kb/s.

5 comments on “ripping vhs

  1. James Le Cuirot

    Oh cool. I never really understood how those hardware encoders worked exactly. That’s really simple.

    Reply
  2. Ridgeland

    I’m using a Hauppauge WinTV-HVR 1600 and Mythbuntu 9.10 alpha 6 with S-Video. It works great for pumping the VHS to the PC and of course Mythbuntu is saving it as an mpg. Mythbuntu 9.04 dropped frames but 9.10 doesn’t. The dropped frames showed up when watching the text crawler at the bottom of the Bloomberg channel feed, dish not VHS.

    Reply
    1. Steve

      Yah, I actually originally used MythTV to record them, until I realized how much unnecessary overhead I was using, so I tried recording it directly from the device, and that’s what I’ve been doing since then.

      Reply
  3. Stephanie

    “$ ffmpeg -i /dev/video0 -vcodec copy -acodec copy -t vhs.mpg

    And thar ya go. Pretty simple.”

    I obviously live on another planet where a bunch of garbly gibberish is not simple. You might as well have written that in chinese characters.

    Reply

Leave a Reply to StephanieCancel reply