I recently bought
- a PCIe expansion card for FireWire (1394a and 1394b) capture
- a PCIe expansion card for component video, composite video, VGA and DVI-I capture
- an nvidia GT 220 GPU to make room in my chassi for the other two cards, because my ASUS TUF Gaming GeForce RTX 3080 OC Edition 12GB GDDR6X’s big butt was in the way.
The goal is to help mom and dad to digitize old VHS, VHS-C, Mini DV and audio cassette tapes. The above expansion cards will arrive sometime next week and meanwhile, I have been doing some research on ffmpeg and v4l2-ctl. It’s absolutely amazing how much you can do - or could do - with ffmpeg if you had about two-three lifetimes to learn. 🤣
Anyway, using a cheap HDMI to USB video capture dongle, I have successfully captured some video with v4l2-ctl -d /dev/video0 --stream-mmap --stream-to=video.raw --stream-count=100 and then converted it using ffmpeg -i video.raw video.mkv.
I am really interested in what this .raw file is, but all I could find was this, which seems to pertain to raw image files, rather than what v4l2-ctl outputs.
I tried to do some Ctrl+f searches on Video for Linux API, but this was far beyond what I was able to comprehend. On the other hand, the manual is far too “shallow” and doesn’t explain much. Do you have any recommendations on what to read in order to understand a little bit more about the inner workings without having to take a PhD in how Linux does video? Why are these .raw files so big? What is the difference between them and the standard containers (.mkv, .mpeg, .avi etc.)?
Also, a huge bonus if you can find the time and will to point out any rookie mistakes in the digitizing project itself.


What does
v4l2-ctl -d /dev/video0 --alltell you?Uhm, well, my analog capture cards haven’t arrived yet and I have put away the little dongle, so I won’t be able to answer that today/tonight. 🙏