I'm working with my home-brew modified "raspivid" command that accepts the "!" parameter value to the -x argument, and if this is supplied, directs motion vectors to the standard error data stream.
I'm also using the -o argument to send raw video to various locations, for example serve it via TCP for a telemetry display program, or log it into a file named "/root/dump". Or to send it to "/dev/null" if I want nothing of it...
...and I find that motion vector content seems affected by where I'm sending the video output with -o. When I'm sending -o to TCP, my motion plotting program works fine, when I'm dumping -o to /dev/null, suddenly, the program "sees less motion". To make it even more interesting, when I try to record the video into "/root/dump", the file appears nonsensically small for multiple seconds of 30fps video.
The ways I'm calling Raspivid are as follows:
Code: Select all
raspivid --colfx 128:128 -awb off -awbg 0.0,0.0 -ex off -sh 0 -br 70 -co 10 -f -rot 90 -n -t 0 \
-w $1 -h $2 -b 400000 -fps 30 -pf high -fli 50hz -l -o /root/dump -x !
#raspivid --colfx 128:128 -awb off -awbg 0.0,0.0 -ex off -sh 0 -br 70 -co 10 -f -rot 90 -n -t 0 \
#-w $1 -h $2 -b 400000 -fps 30 -pf high -fli 50hz -l -o tcp://0.0.0.0:3333 -x !The first one produces problematic motion vectors and nonsensically small video output, the second one works beautifully. :)
Any ideas or suggestions are quite welcome, and of course I'll mention when I've found the bug. :)
