Post-processing example programs to play with the imv buffer: ============================================================= Compile: -------- gcc imv2pgm.c -o imv2pgm -lm gcc imv2txt.c -o imv2txt Record and split buffer: ------------------------ raspivid -x test.imv -o test.h264 We need to split the buffer first using split: split -a 4 -d -b $(((120+1)\*68\*4)) test.imv frame- Play: ----- Now we can transform the velocity magnitues to a pgm image ./imv2pgm frame-0001 120 68 frame-0001.pgm Or loop over all frames and create a movie for i in frame-????; do ./imv2pgm $i 120 68 $i.pgm;convert $i.pgm $i.png; rm $i.pgm; done avconv -i frame-%04d.png motion.avi And we can create a text file for easy plotting ./imv2txt frame-0001 120 68 frame-0001.dat This textfile has in each line the center position x y of the macro block and the velocities u and v and the sum of differences sad. These can be plot with xmgrace xmgrace -autoscale none -settype xyvmap frame-0001.dat -param plot.par