Digitize a VHS tape with FFmpeg and EasyCAP on Linux

I would like to digitize some old VHS tapes before the time is reducing the quality more and more. My current operating system is Debian 9.3, but the following instructions should work mostly on every Linux distribution. Some of the stuff has been taken from the german Wiki of ubuntuusers.de about Videograbbing.

videograbber and videocassette recorder

Hardware requirements

The following hardware has been used.

I hope it is clear which way the hardware should be combined. The video grabber on the computer and the cable combines the video grabber with the output of the videocassette recorder.

Testing the input with V4L2 Test Bench

Very helpful is the graphical V4L2 Test Bench qv4l2 by LinuxTV.org. I guess it is sadly not possible to record with this tool and save to an avi file or so, but we can check if it is possible.

Install qv4l2

You can install the tool on Debian based distributions with the following command and super suer permissions.

apt-get install qv4l2

Start qv4l2

Just run qv4l2 and configure it to capture the usbtv. As a test run we can start the videocassette recorder and push the Start Capturing button.

V4L2 Test Bench

We can go on, if see the video and hear the sound.

Detecting the audio input

The following command will detect the audio input.

cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xd8420000 irq 36
 1 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xd6000000 irq 17
 2 [usbtv          ]: usbtv - usbtv
                      USBTV Audio at bus 1 device 2

Important for me is usbtv at number 2.

Recording VHS cassette with FFmpeg

We need to start the videocassette recorder and execute the following command afterwards. Please note that I have used hw:2,0, because the audio detection had as result 2 for usbtv. My parameters are for a european PAL record.

ffmpeg -f v4l2 -standard PAL -thread_queue_size 512 -i /dev/video0 -f alsa -thread_queue_size 512 -i hw:2,0 -vcodec libx264 -preset superfast -crf 25 -s 720x576 -r 25 -aspect 4:3 -acodec libmp3lame -b:a 128k -channels 2 -ar 48000 out.avi

We can stop the process by pressing the q button on our keyboard and the video should be available as out.avi.

Next Previous