Video frame/VANC extraction with capture card and FFmpeg?


Nov 29, 1999
This is a long-winded question, but maybe some who has some experience with video processing/decoding can at least correct my terminology and assumptions.

I have SMPTE-292M formatted data coming out of a video port. In this data stream are obviously frame images (1280x720x30p) and some KLV-encoded data in the VANC lines. No audio data.

What I ultimately want is a simple binary file of just individual frames and another binary file of just the KLV data.

Previously, I had a hardware device that attached to the SMPTE output stream, saved it to disk in some proprietary format. Then a software tool (provided by the hardware manufacturer) to read that proprietary format and eventually output 2 binary files, as described above. From there I could understand the structure and seek to any frame of image or VANC data for down-stream processing.

Now what I have is an off-the-shelf video capture card, FFmpeg, GCC and a LOT of questions..

I understand the SMPTE-292M format to an extent, with 10bit luminance and chrominance datum, etc. But what I guess I don't understand is what the capture card and FFmpeg (or any other encoder/decoder) can do for me? Will it take care of the funky 10-bit words with parity bits, etc and give me a 'real' binary structure (8-bit words, etc.) Is it just an encapsulator that packetizes the stream and attaches some metadata around it?

What output options do I want? What is the closest to "raw"? That is, no compression, etc. Just data that looks as identical to the frame buffer that was encoded and sent across the SMPTE channel?

Once I get into H.264, MPEG-TS, MP4, containers, codecs, etc, I seem to get lost. At a minimum, I just need to save the SMPTE stream in a lossless format on this side of the wire, with the VANC data intact.

The source data was a series of static 8-bit, grayscale, 1280x720 pictures (several thousand), with some accompanying data structures for each "frame." These were encoded into SMPTE and sent across a wire. I want to record that stream and (ultimately) get back to that original series of static images (frames) as well as the accompanying data, as effortlessly as possible.

Ken g6

Programming Moderator, Elite Member
Dec 11, 1999
Tried Virtualdub? Are you sure you want this thread in Programming?